diff --git a/DEPS b/DEPS
index 326903c..3e86f74 100644
--- a/DEPS
+++ b/DEPS
@@ -297,15 +297,15 @@
   # 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': 'fbd9c4d0584285fa5bbb033f291b65c7b73ef1ae',
+  'skia_revision': 'c169ddd9e4f094006847ff2c631b5f4d7af63b9f',
   # 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': '7d56b1895931100d4f378cf62fa0201fd07940b7',
+  'v8_revision': '5f989c3ab2d3835ba49a3504e40aba63e12c77d2',
   # 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': 'e6fcb2a9a9a46928fbcfbfb43b0e50554327c625',
+  'angle_revision': '861149c7ace5f21c88148ce90120a2690c467557',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -376,7 +376,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling devtools-frontend
   # and whatever else without interference from each other.
-  'devtools_frontend_revision': '453aa9a9b11b4dcd612a807993de8d59efb41d86',
+  'devtools_frontend_revision': '1fc4112ee1679f1f0f05762c95558f0ff2c2e38a',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libprotobuf-mutator
   # and whatever else without interference from each other.
@@ -777,7 +777,7 @@
   },
 
   'src/ios/third_party/earl_grey2/src': {
-      'url': Var('chromium_git') + '/external/github.com/google/EarlGrey.git' + '@' + '00a9de0fd18b0499e7c8c00639e8df3c8c0635f4',
+      'url': Var('chromium_git') + '/external/github.com/google/EarlGrey.git' + '@' + '3f7adfcde11bddd935cf54f87131f4e0c7eab93e',
       'condition': 'checkout_ios',
   },
 
@@ -862,7 +862,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/linux-amd64',
-          'version': 'Vqb_w6bs_f3h4FzuNZAI2gBGdUZnnlPImIgtxQjCJlwC',
+          'version': 'TRb09hRUmejOEu3Gq8POdvtLWNFoYEIAOPSSW1PKSKUC',
         },
       ],
       'dep_type': 'cipd',
@@ -873,7 +873,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/mac-amd64',
-          'version': '6icXykpJfu_jnJHIAoAEjzE8GjNrMMAby4NAqRIS0A8C',
+          'version': 'ucgJaIVpPd53Z5AbVVIJn4QRzV3UPEyR6f-IKZxPtVYC',
         },
       ],
       'dep_type': 'cipd',
@@ -884,7 +884,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/windows-amd64',
-          'version': 'Ngz0cH1Z5mUfpP6bQ1wNaL2vo0WXmdvuRBIrgw8ZN5UC',
+          'version': '2nti71TXjWDOL2reC4jEhI3gNN63imORXcOFCnp_sVMC',
         },
       ],
       'dep_type': 'cipd',
@@ -1573,7 +1573,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '28de3d8549eb54301b4becd765d405874c857db3',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + 'cb46e0562e45803eddda778f2b9b9ebd84cc7243',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1613,7 +1613,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/r8',
-              'version': '8RiUzjctgueOdfuqGNeXwdR_7AGlMwPM9A01M3uKD88C',
+              'version': 'MQolCMavu5-KSAcEH_GUHAmKTQ1g5ydGaNBmKfh7czkC',
           },
       ],
       'condition': 'checkout_android',
@@ -1693,7 +1693,7 @@
       'dep_type': 'cipd',
   },
 
-  'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@dc166c4dddfd94cdad391b6d8540f998d6cab518',
+  'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@70d9544c14548742685bd47ea88c1881ce3aba38',
 
   'src/third_party/vulkan_memory_allocator':
     Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git' + '@' + 'ebe84bec02c041d28f902da0214bf442743fc907',
@@ -1729,10 +1729,10 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '44e4c8770158c505b03ee7feafa4859d083b0912',
 
   'src/third_party/webgpu-cts/src':
-    Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '94fd83896c67bb1a995337c501bbed02bd63361f',
+    Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + 'ed11c6ba35570aea10ca3fb5245bbee362915f36',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'cc76c567abe59203b28501370ab43f967e1b98b5',
+    Var('webrtc_git') + '/src.git' + '@' + 'b0a57d8e616213a6b8aa1efdd8681343acf12848',
 
   'src/third_party/libgifcodec':
      Var('skia_git') + '/libgifcodec' + '@'+  Var('libgifcodec_revision'),
@@ -1805,7 +1805,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@4eeb63331fa4156d67fa99b7dd6d2b0c775dad42',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@f280c52684f270ebf38940db7e993c585a707b4f',
     'condition': 'checkout_src_internal',
   },
 
@@ -1835,7 +1835,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': '9N-G9hCCYtnfw5ebK3nEQkoHqnItAtjAtyj2pOCKJ1kC',
+        'version': 'XdMahsclKEDVke2jW_KD9ME6Xb4JKI34dJpUd3Zsbk8C',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 9465ee1..28b72d8 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -2202,6 +2202,26 @@
                 'Contact oshima@chromium.org if you have questions.', errors))
     return results
 
+def CheckNoProductIconsAddedToPublicRepo(input_api, output_api):
+    """Heuristically identifies product icons based on their file name and reminds
+    contributors not to add them to the Chromium repository.
+    """
+    errors = []
+    files_to_check = [r'.*google.*\.png$|.*google.*\.svg$|.*google.*\.icon$']
+    file_filter = lambda f: input_api.FilterSourceFile(
+        f, files_to_check=files_to_check)
+    for f in input_api.AffectedFiles(include_deletes=False,
+                                     file_filter=file_filter):
+        errors.append('    %s' % f.LocalPath())
+
+    results = []
+    if errors:
+        results.append(
+            output_api.PresubmitError(
+                'Trademarked images should not be added to the public repo. '
+                'See crbug.com/944754', errors))
+    return results
+
 
 def _ExtractAddRulesFromParsedDeps(parsed_deps):
     """Extract the rules that add dependencies from a parsed DEPS file.
diff --git a/PRESUBMIT_test.py b/PRESUBMIT_test.py
index 27a2261..77052c8 100755
--- a/PRESUBMIT_test.py
+++ b/PRESUBMIT_test.py
@@ -2963,6 +2963,18 @@
     results = PRESUBMIT._CheckNewImagesWarning(mock_input_api, MockOutputApi())
     self.assertEqual(0, len(results))
 
+class ProductIconsTest(unittest.TestCase):
+  def test(self):
+    mock_input_api = MockInputApi()
+    mock_input_api.files = [
+      MockFile('components/vector_icons/google_jetpack.icon', []),
+      MockFile('components/vector_icons/generic_jetpack.icon', []),
+    ]
+
+    results = PRESUBMIT.CheckNoProductIconsAddedToPublicRepo(mock_input_api, MockOutputApi())
+    self.assertEqual(1, len(results))
+    self.assertEqual(1, len(results[0].items))
+    self.assertTrue('google_jetpack.icon' in results[0].items[0])
 
 class CheckUniquePtrTest(unittest.TestCase):
   def testTruePositivesNullptr(self):
diff --git a/android_webview/README.md b/android_webview/README.md
index 8642283..106b54e 100644
--- a/android_webview/README.md
+++ b/android_webview/README.md
@@ -24,5 +24,13 @@
 
 See our [Chromium developer documentation](docs/README.md).
 
+## Public mailing lists
+
+* [android-webview-dev@chromium.org](https://groups.google.com/a/chromium.org/g/android-webview-dev):
+  external discussion group for WebView developers and interested community
+  members.
+* [android-webview-reviews@chromium.org](https://groups.google.com/a/chromium.org/g/android-webview-reviews):
+  subscribe to code reviews affecting Android WebView code.
+
 [1]: https://developer.android.com/reference/android/webkit/package-summary
 [2]: https://developer.android.com/reference/androidx/webkit/package-summary
diff --git a/android_webview/browser/safe_browsing/aw_safe_browsing_allowlist_manager.cc b/android_webview/browser/safe_browsing/aw_safe_browsing_allowlist_manager.cc
index 4e872101..e740527 100644
--- a/android_webview/browser/safe_browsing/aw_safe_browsing_allowlist_manager.cc
+++ b/android_webview/browser/safe_browsing/aw_safe_browsing_allowlist_manager.cc
@@ -66,10 +66,9 @@
                       TrieNode* root,
                       bool match_prefix) {
   TrieNode* node = root;
-  for (auto hostcomp = components.rbegin(); hostcomp != components.rend();
-       ++hostcomp) {
+  for (const auto& hostcomp : base::Reversed(components)) {
     DCHECK(!node->match_prefix);
-    std::string component(*hostcomp);
+    std::string component(hostcomp);
     auto child_node = node->children.find(component);
     if (child_node == node->children.end()) {
       std::unique_ptr<TrieNode> temp = std::make_unique<TrieNode>();
diff --git a/apps/load_and_launch_browsertest.cc b/apps/load_and_launch_browsertest.cc
index 7bd08b9..73a53c1 100644
--- a/apps/load_and_launch_browsertest.cc
+++ b/apps/load_and_launch_browsertest.cc
@@ -146,16 +146,24 @@
     base::FilePath app_path =
         test_data_dir_.AppendASCII("platform_apps").AppendASCII("minimal");
     command_line->AppendSwitchNative(apps::kLoadAndLaunchApp, app_path.value());
+
+    // |launched_listener_| needs to be instantiated before the app process is
+    // launched to ensure the test api observer is registered.
+    launched_listener_ =
+        std::make_unique<ExtensionTestMessageListener>("Launched");
   }
 
+  void TearDownOnMainThread() override { launched_listener_.reset(); }
+
   void LoadAndLaunchApp() {
-    ExtensionTestMessageListener launched_listener("Launched");
-    ASSERT_TRUE(launched_listener.WaitUntilSatisfied());
+    ASSERT_TRUE(launched_listener_->WaitUntilSatisfied());
 
     // Start an actual browser because we can't shut down with just an app
     // window.
     CreateBrowser(profile());
   }
+
+  std::unique_ptr<ExtensionTestMessageListener> launched_listener_;
 };
 
 // TestFixture that appends --load-and-launch-app with an extension before
@@ -193,14 +201,8 @@
   LoadAndLaunchApp();
 }
 
-// TODO(https://crbug.com/988160): Test is flaky on Windows.
-#if BUILDFLAG(IS_WIN)
-#define MAYBE_LoadAndLaunchExtension DISABLED_LoadAndLaunchExtension
-#else
-#define MAYBE_LoadAndLaunchExtension LoadAndLaunchExtension
-#endif
 IN_PROC_BROWSER_TEST_F(LoadAndLaunchExtensionBrowserTest,
-                       MAYBE_LoadAndLaunchExtension) {
+                       LoadAndLaunchExtension) {
   const std::vector<std::u16string>* errors =
       extensions::LoadErrorReporter::GetInstance()->GetErrors();
 
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index cbe1049..b1334e7 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -159,6 +159,8 @@
     "ambient/ambient_weather_controller.cc",
     "ambient/ambient_weather_controller.h",
     "ambient/autotest_ambient_api.cc",
+    "ambient/metrics/ambient_multi_screen_metrics_recorder.cc",
+    "ambient/metrics/ambient_multi_screen_metrics_recorder.h",
     "ambient/model/ambient_animation_attribution_provider.cc",
     "ambient/model/ambient_animation_attribution_provider.h",
     "ambient/model/ambient_animation_photo_config.cc",
@@ -2515,6 +2517,7 @@
     "ambient/ambient_photo_cache_unittest.cc",
     "ambient/ambient_photo_controller_unittest.cc",
     "ambient/autotest_ambient_api_unittest.cc",
+    "ambient/metrics/ambient_multi_screen_metrics_recorder_unittest.cc",
     "ambient/model/ambient_animation_attribution_provider_unittest.cc",
     "ambient/model/ambient_animation_photo_config_unittest.cc",
     "ambient/model/ambient_animation_photo_provider_unittest.cc",
@@ -3406,6 +3409,7 @@
     "system/status_area_widget_test_helper.cc",
     "system/status_area_widget_test_helper.h",
     "system/unified/system_tray_test_api.cc",
+    "test/ash_pixel_test_init_params.h",
     "test/ash_test_base.cc",
     "test/ash_test_base.h",
     "test/ash_test_helper.cc",
@@ -3545,6 +3549,7 @@
     "//ui/aura",
     "//ui/aura:test_support",
     "//ui/base:test_support",
+    "//ui/color:mixers",
     "//ui/compositor:test_support",
     "//ui/display",
     "//ui/display/types",
diff --git a/ash/accessibility/accessibility_controller_impl.h b/ash/accessibility/accessibility_controller_impl.h
index 638038d..b785d786 100644
--- a/ash/accessibility/accessibility_controller_impl.h
+++ b/ash/accessibility/accessibility_controller_impl.h
@@ -354,9 +354,6 @@
   // Toggle dictation.
   void ToggleDictation();
 
-  // Cancels all current and queued speech immediately.
-  void SilenceSpokenFeedback();
-
   // Called when we first detect two fingers are held down, which can be used to
   // toggle spoken feedback on some touch-only devices.
   void OnTwoFingerTouchStart();
@@ -462,6 +459,7 @@
       const absl::optional<std::u16string>& text,
       const absl::optional<std::vector<DictationBubbleHintType>>& hints)
       override;
+  void SilenceSpokenFeedback() override;
 
   // SessionObserver:
   void OnSigninScreenPrefServiceInitialized(PrefService* prefs) override;
diff --git a/ash/ambient/ambient_controller.cc b/ash/ambient/ambient_controller.cc
index f65c871..1390dcf 100644
--- a/ash/ambient/ambient_controller.cc
+++ b/ash/ambient/ambient_controller.cc
@@ -10,6 +10,7 @@
 #include <vector>
 
 #include "ash/ambient/ambient_weather_controller.h"
+#include "ash/ambient/metrics/ambient_multi_screen_metrics_recorder.h"
 #include "ash/ambient/model/ambient_animation_photo_config.h"
 #include "ash/ambient/model/ambient_backend_model_observer.h"
 #include "ash/ambient/model/ambient_slideshow_photo_config.h"
@@ -213,6 +214,10 @@
       DCHECK(!start_time_);
       start_time_ = base::Time::Now();
 
+      multi_screen_metrics_recorder_ =
+          std::make_unique<AmbientMultiScreenMetricsRecorder>(
+              GetCurrentTheme());
+
       // Cancels the timer upon shown.
       inactivity_timer_.Stop();
 
@@ -255,6 +260,8 @@
       // not shown.
       AssistantInteractionController::Get()->GetModel()->RemoveObserver(this);
 
+      multi_screen_metrics_recorder_.reset();
+
       // |start_time_| may be empty in case of |AmbientUiVisibility::kHidden| if
       // ambient mode has just started.
       if (start_time_) {
@@ -790,8 +797,10 @@
     aura::Window* container) {
   AmbientAnimationTheme current_theme = GetCurrentTheme();
   auto container_view = std::make_unique<AmbientContainerView>(
-      &delegate_, AmbientAnimationStaticResources::Create(
-                      current_theme, /*serializable=*/true));
+      &delegate_,
+      AmbientAnimationStaticResources::Create(current_theme,
+                                              /*serializable=*/true),
+      multi_screen_metrics_recorder_.get());
   auto* widget_delegate = new AmbientWidgetDelegate();
   widget_delegate->SetInitiallyFocusedView(container_view.get());
 
diff --git a/ash/ambient/ambient_controller.h b/ash/ambient/ambient_controller.h
index 86c9441a..6d033c8 100644
--- a/ash/ambient/ambient_controller.h
+++ b/ash/ambient/ambient_controller.h
@@ -46,6 +46,7 @@
 
 class AmbientBackendController;
 class AmbientContainerView;
+class AmbientMultiScreenMetricsRecorder;
 class AmbientPhotoController;
 class AmbientWeatherController;
 
@@ -248,6 +249,9 @@
   // storage when ambient mode is enabled.
   absl::optional<AmbientAnimationTheme> current_theme_from_pref_;
 
+  std::unique_ptr<AmbientMultiScreenMetricsRecorder>
+      multi_screen_metrics_recorder_;
+
   base::WeakPtrFactory<AmbientController> weak_ptr_factory_{this};
 };
 
diff --git a/ash/ambient/ambient_photo_controller.cc b/ash/ambient/ambient_photo_controller.cc
index 3fe82ee..74251475 100644
--- a/ash/ambient/ambient_photo_controller.cc
+++ b/ash/ambient/ambient_photo_controller.cc
@@ -265,7 +265,7 @@
   ResetImageData();
   DVLOG(3) << "Downloading topic photos";
   AmbientModeTopic topic = ambient_topic_queue_->Pop();
-  ambient::Photo* photo = cache_entry_.mutable_primary_photo();
+  ::ambient::Photo* photo = cache_entry_.mutable_primary_photo();
   photo->set_details(topic.details);
   photo->set_is_portrait(topic.is_portrait);
   photo->set_type(topic.topic_type);
@@ -283,7 +283,7 @@
                      /*is_related_image=*/false, on_done));
 
   if (!topic.related_image_url.empty()) {
-    ambient::Photo* photo = cache_entry_.mutable_related_photo();
+    ::ambient::Photo* photo = cache_entry_.mutable_related_photo();
     photo->set_details(topic.related_details);
     photo->set_is_portrait(topic.is_portrait);
     photo->set_type(topic.topic_type);
diff --git a/ash/ambient/ambient_photo_controller_unittest.cc b/ash/ambient/ambient_photo_controller_unittest.cc
index f53800b..55b08a83 100644
--- a/ash/ambient/ambient_photo_controller_unittest.cc
+++ b/ash/ambient/ambient_photo_controller_unittest.cc
@@ -93,8 +93,8 @@
     return result;
   }
 
-  const ambient::PhotoCacheEntry* GetCacheEntryAtIndex(int cache_index,
-                                                       bool backup = false) {
+  const ::ambient::PhotoCacheEntry* GetCacheEntryAtIndex(int cache_index,
+                                                         bool backup = false) {
     const auto& files = backup ? GetBackupCachedFiles() : GetCachedFiles();
     auto it = files.find(cache_index);
     if (it == files.end())
@@ -109,7 +109,7 @@
                               const std::string* related_image = nullptr,
                               const std::string* related_details = nullptr,
                               bool is_portrait = false) {
-    ambient::PhotoCacheEntry cache_entry;
+    ::ambient::PhotoCacheEntry cache_entry;
     cache_entry.mutable_primary_photo()->set_image(*image);
 
     if (details)
diff --git a/ash/ambient/metrics/ambient_multi_screen_metrics_recorder.cc b/ash/ambient/metrics/ambient_multi_screen_metrics_recorder.cc
new file mode 100644
index 0000000..9fdf6b34ca
--- /dev/null
+++ b/ash/ambient/metrics/ambient_multi_screen_metrics_recorder.cc
@@ -0,0 +1,168 @@
+// Copyright 2022 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/ambient/metrics/ambient_multi_screen_metrics_recorder.h"
+
+#include <algorithm>
+
+#include "base/check.h"
+#include "base/logging.h"
+#include "base/metrics/histogram_functions.h"
+#include "base/metrics/histogram_macros.h"
+#include "base/strings/strcat.h"
+
+namespace ash {
+
+AmbientMultiScreenMetricsRecorder::AmbientMultiScreenMetricsRecorder(
+    AmbientAnimationTheme theme)
+    : theme_(theme) {}
+
+AmbientMultiScreenMetricsRecorder::~AmbientMultiScreenMetricsRecorder() {
+  base::UmaHistogramCounts100(
+      base::StrCat({"Ash.AmbientMode.ScreenCount.", ToString(theme_)}),
+      num_registered_screens_);
+}
+
+void AmbientMultiScreenMetricsRecorder::RegisterScreen(
+    lottie::Animation* animation) {
+  ++num_registered_screens_;
+  if (!animation)
+    return;
+
+  DCHECK(!animation_observations_.IsObservingSource(animation));
+  registered_animations_.insert(animation);
+  animation_observations_.AddObservation(animation);
+}
+
+void AmbientMultiScreenMetricsRecorder::AnimationFramePainted(
+    const lottie::Animation* animation,
+    float t) {
+  if (registered_animations_.size() <= 1u) {
+    DVLOG(4) << "Not computing mean timestamp offset for single screen";
+    return;
+  }
+
+  // Out of the N animations, find the pair with the largest timestamp offset.
+  // The below does it brute force in N^2 time because it's simplest and N
+  // (the number of screens present) is realistically going to be very small.
+  // It's not worth optimizing.
+  absl::optional<base::TimeDelta> largest_timestamp_offset;
+  for (auto animation_l = registered_animations_.begin();
+       animation_l != registered_animations_.end(); ++animation_l) {
+    for (auto animation_r = animation_l + 1;
+         animation_r != registered_animations_.end(); ++animation_r) {
+      absl::optional<base::TimeDelta> offset =
+          GetOffsetBetweenAnimations(**animation_l, **animation_r);
+      if (!offset) {
+        DVLOG(4)
+            << "One or both animations are inactive. Cannot compute offset";
+        continue;
+      }
+
+      if (!largest_timestamp_offset || *offset > *largest_timestamp_offset) {
+        largest_timestamp_offset = offset;
+      }
+    }
+  }
+
+  if (!largest_timestamp_offset) {
+    DVLOG(4) << "At least 2 animations need to be active to compute an offset";
+    return;
+  }
+
+  // Since this metric is recorded on every single animation frame, the UMA
+  // histogram macros are used for performance reasons. They require a static
+  // compile-time metric name as an argument though.
+#define MUTLISCREEN_OFFSET_NAME(theme) \
+  "Ash.AmbientMode.MultiScreenOffset." theme
+  switch (theme_) {
+    case AmbientAnimationTheme::kFeelTheBreeze:
+      UMA_HISTOGRAM_TIMES(MUTLISCREEN_OFFSET_NAME("FeelTheBreeze"),
+                          *largest_timestamp_offset);
+      break;
+    case AmbientAnimationTheme::kFloatOnBy:
+      UMA_HISTOGRAM_TIMES(MUTLISCREEN_OFFSET_NAME("FloatOnBy"),
+                          *largest_timestamp_offset);
+      break;
+    case AmbientAnimationTheme::kSlideshow:
+      LOG(DFATAL) << "Should not be recording animation metrics for slideshow";
+      break;
+  }
+#undef MUTLISCREEN_OFFSET_NAME
+}
+
+void AmbientMultiScreenMetricsRecorder::AnimationIsDeleting(
+    const lottie::Animation* animation) {
+  animation_observations_.RemoveObservation(
+      const_cast<lottie::Animation*>(animation));
+  // Remove from |registered_animations_| here to prevent any possibility of
+  // use-after-free if AnimationFramePainted() happens to be called for a
+  // remaining animation.
+  registered_animations_.erase(animation);
+}
+
+absl::optional<base::TimeDelta>
+AmbientMultiScreenMetricsRecorder::GetOffsetBetweenAnimations(
+    const lottie::Animation& animation_l,
+    const lottie::Animation& animation_r) const {
+  absl::optional<float> current_progress_l = animation_l.GetCurrentProgress();
+  absl::optional<float> current_progress_r = animation_r.GetCurrentProgress();
+  if (!current_progress_l || !current_progress_r) {
+    DVLOG(4) << "Both animations must be active (playing and painted at least "
+                "1 frame) to compute an offset";
+    return absl::nullopt;
+  }
+
+  const lottie::Animation* animation_with_smaller_t = nullptr;
+  const lottie::Animation* animation_with_larger_t = nullptr;
+  base::TimeDelta smaller_timestamp;
+  base::TimeDelta larger_timestamp;
+  if (*current_progress_l < *current_progress_r) {
+    animation_with_smaller_t = &animation_l;
+    animation_with_larger_t = &animation_r;
+    smaller_timestamp =
+        *current_progress_l * animation_l.GetAnimationDuration();
+    larger_timestamp = *current_progress_r * animation_r.GetAnimationDuration();
+  } else {
+    animation_with_smaller_t = &animation_r;
+    animation_with_larger_t = &animation_l;
+    smaller_timestamp =
+        *current_progress_r * animation_r.GetAnimationDuration();
+    larger_timestamp = *current_progress_l * animation_l.GetAnimationDuration();
+  }
+  // Take the smaller of incremental (a normal forward animation step) and
+  // loopback progress. Ex:
+  // * Incremental: .5 -> .52 = .02
+  // * Loopback: .98 -> .02 = .04 (whereas the incremental would be .96, which
+  //   does not make sense).
+  base::TimeDelta incremental_progress = larger_timestamp - smaller_timestamp;
+  DCHECK(IsPlaybackConfigValid(animation_with_larger_t->GetPlaybackConfig()));
+  DCHECK(IsPlaybackConfigValid(animation_with_smaller_t->GetPlaybackConfig()));
+  absl::optional<lottie::Animation::CycleBoundaries> larger_t_cycle =
+      animation_with_larger_t->GetCurrentCycleBoundaries();
+  absl::optional<lottie::Animation::CycleBoundaries> smaller_t_cycle =
+      animation_with_smaller_t->GetCurrentCycleBoundaries();
+  DCHECK(larger_t_cycle);
+  DCHECK(smaller_t_cycle);
+
+  // Note the animations may not loop from [0, 1]. They may start and end their
+  // loops at arbitrary points in the middle. For example, if the start/end
+  // points are [.25, .75], and the 2 timestamps are 0.73 and 0.26, the
+  // offset would be (.75 - .73) + (.26 - .25) = .03.
+  base::TimeDelta looped_progress =
+      (larger_t_cycle->end_offset - larger_timestamp) +
+      (smaller_timestamp - smaller_t_cycle->start_offset);
+  return std::min(incremental_progress, looped_progress);
+}
+
+// static
+bool AmbientMultiScreenMetricsRecorder::IsPlaybackConfigValid(
+    const absl::optional<lottie::Animation::PlaybackConfig>& playback_config) {
+  return playback_config &&
+         // The logic in GetOffsetBetweenAnimations() assumes animation time
+         // always ticks forward.
+         playback_config->style != lottie::Animation::Style::kThrobbing;
+}
+
+}  // namespace ash
diff --git a/ash/ambient/metrics/ambient_multi_screen_metrics_recorder.h b/ash/ambient/metrics/ambient_multi_screen_metrics_recorder.h
new file mode 100644
index 0000000..42f2c0d6
--- /dev/null
+++ b/ash/ambient/metrics/ambient_multi_screen_metrics_recorder.h
@@ -0,0 +1,73 @@
+// Copyright 2022 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_AMBIENT_METRICS_AMBIENT_MULTI_SCREEN_METRICS_RECORDER_H_
+#define ASH_AMBIENT_METRICS_AMBIENT_MULTI_SCREEN_METRICS_RECORDER_H_
+
+#include "ash/ash_export.h"
+#include "ash/constants/ambient_animation_theme.h"
+#include "base/containers/flat_set.h"
+#include "base/scoped_multi_source_observation.h"
+#include "base/time/time.h"
+#include "base/timer/timer.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
+#include "ui/lottie/animation.h"
+#include "ui/lottie/animation_observer.h"
+
+namespace ash {
+
+// Records metrics for multi-screen usage in ambient mode:
+// * The number of screens active during ambient mode.
+// * The average instantaneous offset in timestamp between the animations
+//   playing on each screen. This metric is not recorded for single-screen
+//   ambient mode sessions.
+// AmbientMultiScreenMetricsRecorder's lifetime is meant to match that of a
+// single ambient mode session. Per-session metrics are recorded in its
+// destructor.
+class ASH_EXPORT AmbientMultiScreenMetricsRecorder
+    : public lottie::AnimationObserver {
+ public:
+  explicit AmbientMultiScreenMetricsRecorder(AmbientAnimationTheme theme);
+  AmbientMultiScreenMetricsRecorder(const AmbientMultiScreenMetricsRecorder&) =
+      delete;
+  AmbientMultiScreenMetricsRecorder& operator=(
+      const AmbientMultiScreenMetricsRecorder&) = delete;
+  ~AmbientMultiScreenMetricsRecorder() override;
+
+  // Registers a screen and its corresponding |animation|. |animation| may be
+  // null if the ambient UI does not have an associated animation (ex: slideshow
+  // mode). AmbientMultiScreenMetricsRecorder may outlive the incoming
+  // |animation| if desired.
+  void RegisterScreen(lottie::Animation* animation);
+
+ private:
+  // Period at which we calculate the mean animation timestamp offset and
+  // record it. All samples are cleared for the next recording.
+  static constexpr base::TimeDelta kMeanTimestampOffsetFlushPeriod =
+      base::Minutes(1);
+
+  static bool IsPlaybackConfigValid(
+      const absl::optional<lottie::Animation::PlaybackConfig>& playback_config);
+
+  // lottie::AnimationObserver implementation:
+  void AnimationFramePainted(const lottie::Animation* animation,
+                             float t) override;
+  void AnimationIsDeleting(const lottie::Animation* animation) override;
+
+  absl::optional<base::TimeDelta> GetOffsetBetweenAnimations(
+      const lottie::Animation& animation_l,
+      const lottie::Animation& animation_r) const;
+
+  const AmbientAnimationTheme theme_;
+
+  int num_registered_screens_ = 0;
+  base::flat_set<const lottie::Animation*> registered_animations_;
+  base::ScopedMultiSourceObservation<lottie::Animation,
+                                     lottie::AnimationObserver>
+      animation_observations_{this};
+};
+
+}  // namespace ash
+
+#endif  // ASH_AMBIENT_METRICS_AMBIENT_MULTI_SCREEN_METRICS_RECORDER_H_
diff --git a/ash/ambient/metrics/ambient_multi_screen_metrics_recorder_unittest.cc b/ash/ambient/metrics/ambient_multi_screen_metrics_recorder_unittest.cc
new file mode 100644
index 0000000..e81a40a4
--- /dev/null
+++ b/ash/ambient/metrics/ambient_multi_screen_metrics_recorder_unittest.cc
@@ -0,0 +1,218 @@
+
+// Copyright 2022 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/ambient/metrics/ambient_multi_screen_metrics_recorder.h"
+
+#include <string>
+
+#include "ash/constants/ambient_animation_theme.h"
+#include "base/strings/strcat.h"
+#include "base/strings/string_piece.h"
+#include "base/test/metrics/histogram_tester.h"
+#include "base/test/task_environment.h"
+#include "base/time/time.h"
+#include "cc/test/skia_common.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/gfx/canvas.h"
+#include "ui/gfx/geometry/size.h"
+#include "ui/lottie/animation.h"
+
+namespace ash {
+namespace {
+using ::testing::Eq;
+}  // namespace
+
+class AmbientMultiScreenMetricsRecorderTest : public ::testing::Test {
+ protected:
+  struct Harness {
+    static constexpr gfx::Size kTestSize = gfx::Size(100, 100);
+    static constexpr base::TimeDelta kTotalAnimationDuration =
+        base::Seconds(10);
+
+    explicit Harness(AmbientAnimationTheme theme)
+        : recorder(theme),
+          animation_1(cc::CreateSkottie(kTestSize,
+                                        kTotalAnimationDuration.InSecondsF())),
+          animation_2(cc::CreateSkottie(kTestSize,
+                                        kTotalAnimationDuration.InSecondsF())) {
+    }
+
+    // In the real code, AmbientMultiScreenMetricsRecorder outlives the
+    // animations, so simulate that in tests here.
+    AmbientMultiScreenMetricsRecorder recorder;
+    lottie::Animation animation_1;
+    lottie::Animation animation_2;
+    gfx::Canvas canvas;
+  };
+
+  base::test::TaskEnvironment task_environment_{
+      base::test::TaskEnvironment::TimeSource::MOCK_TIME};
+};
+
+class AmbientMultiScreenMetricsRecorderTestForAllThemes
+    : public AmbientMultiScreenMetricsRecorderTest,
+      public ::testing::WithParamInterface<AmbientAnimationTheme> {
+ protected:
+  std::string GetMetricNameForTheme(base::StringPiece prefix) {
+    return base::StrCat({prefix, ToString(GetParam())});
+  }
+};
+
+INSTANTIATE_TEST_SUITE_P(AllAnimationThemes,
+                         AmbientMultiScreenMetricsRecorderTestForAllThemes,
+                         testing::Values(AmbientAnimationTheme::kFeelTheBreeze,
+                                         AmbientAnimationTheme::kFloatOnBy));
+
+TEST_P(AmbientMultiScreenMetricsRecorderTestForAllThemes, RecordsScreenCount) {
+  base::HistogramTester histogram_tester;
+  {
+    Harness harness(GetParam());
+    harness.recorder.RegisterScreen(&harness.animation_1);
+    harness.animation_1.Start();
+    harness.animation_1.Paint(&harness.canvas, task_environment_.NowTicks(),
+                              Harness::kTestSize);
+  }
+  histogram_tester.ExpectUniqueSample(
+      GetMetricNameForTheme("Ash.AmbientMode.ScreenCount."), /*sample=*/1,
+      /*expected_bucket_count=*/1);
+  {
+    Harness harness(GetParam());
+    harness.recorder.RegisterScreen(&harness.animation_1);
+    harness.recorder.RegisterScreen(&harness.animation_2);
+    harness.animation_1.Start();
+    harness.animation_1.Paint(&harness.canvas, task_environment_.NowTicks(),
+                              Harness::kTestSize);
+    harness.animation_2.Start();
+    harness.animation_2.Paint(&harness.canvas, task_environment_.NowTicks(),
+                              Harness::kTestSize);
+  }
+  histogram_tester.ExpectBucketCount(
+      GetMetricNameForTheme("Ash.AmbientMode.ScreenCount."), /*sample=*/2,
+      /*expected_count=*/1);
+}
+
+TEST_P(AmbientMultiScreenMetricsRecorderTestForAllThemes,
+       RecordsTimestampOffset) {
+  static constexpr base::TimeDelta kFrameInterval = base::Milliseconds(100);
+  base::HistogramTester histogram_tester;
+
+  Harness harness(GetParam());
+  harness.recorder.RegisterScreen(&harness.animation_1);
+  harness.recorder.RegisterScreen(&harness.animation_2);
+  harness.animation_1.Start();
+  harness.animation_2.Start();
+  harness.animation_1.Paint(&harness.canvas, task_environment_.NowTicks(),
+                            Harness::kTestSize);
+  // Offset of 0.
+  harness.animation_2.Paint(&harness.canvas, task_environment_.NowTicks(),
+                            Harness::kTestSize);
+  task_environment_.FastForwardBy(kFrameInterval);
+  // Offset of |kFrameInterval|.
+  harness.animation_1.Paint(&harness.canvas, task_environment_.NowTicks(),
+                            Harness::kTestSize);
+  // Offset of 0.
+  harness.animation_2.Paint(&harness.canvas, task_environment_.NowTicks(),
+                            Harness::kTestSize);
+
+  histogram_tester.ExpectTimeBucketCount(
+      GetMetricNameForTheme("Ash.AmbientMode.MultiScreenOffset."),
+      base::TimeDelta(), 2);
+  histogram_tester.ExpectTimeBucketCount(
+      GetMetricNameForTheme("Ash.AmbientMode.MultiScreenOffset."),
+      kFrameInterval, 1);
+}
+
+TEST_P(AmbientMultiScreenMetricsRecorderTestForAllThemes,
+       RecordsMeanTimestampOffsetWithDifferentCycleStartOffsets) {
+  base::HistogramTester histogram_tester;
+
+  Harness harness(GetParam());
+  harness.recorder.RegisterScreen(&harness.animation_1);
+  harness.recorder.RegisterScreen(&harness.animation_2);
+  lottie::Animation::PlaybackConfig playback_config(
+      {{base::TimeDelta(), Harness::kTotalAnimationDuration},
+       {Harness::kTotalAnimationDuration * .25f,
+        Harness::kTotalAnimationDuration * .75f}},
+      /*initial_offset=*/base::TimeDelta(), /*initial_completed_cycles=*/0,
+      lottie::Animation::Style::kLoop);
+  harness.animation_1.Start(playback_config);
+  harness.animation_2.Start(playback_config);
+  harness.animation_1.Paint(&harness.canvas, task_environment_.NowTicks(),
+                            Harness::kTestSize);
+  // Offset of 0.
+  harness.animation_2.Paint(&harness.canvas, task_environment_.NowTicks(),
+                            Harness::kTestSize);
+
+  task_environment_.FastForwardBy(Harness::kTotalAnimationDuration / 2);
+  // Offset of kTotalAnimationDuration / 2.
+  harness.animation_1.Paint(&harness.canvas, task_environment_.NowTicks(),
+                            Harness::kTestSize);
+  // Offset of 0.
+  harness.animation_2.Paint(&harness.canvas, task_environment_.NowTicks(),
+                            Harness::kTestSize);
+
+  // Fast forward to just before end of first cycle.
+  task_environment_.FastForwardBy((Harness::kTotalAnimationDuration / 2) -
+                                  base::Milliseconds(100));
+  // Offset of kTotalAnimationDuration / 2) - 100ms
+  harness.animation_1.Paint(&harness.canvas, task_environment_.NowTicks(),
+                            Harness::kTestSize);
+  task_environment_.FastForwardBy(base::Milliseconds(200));
+  // Fast forward to just after start of second cycle.
+  // Offset of 200 ms (100 ms before end of first cycle to 100 ms past start of
+  // second cycle).
+  harness.animation_2.Paint(&harness.canvas, task_environment_.NowTicks(),
+                            Harness::kTestSize);
+  // Offset of 0.
+  harness.animation_1.Paint(&harness.canvas, task_environment_.NowTicks(),
+                            Harness::kTestSize);
+
+  histogram_tester.ExpectTimeBucketCount(
+      GetMetricNameForTheme("Ash.AmbientMode.MultiScreenOffset."),
+      base::TimeDelta(), 3);
+  histogram_tester.ExpectTimeBucketCount(
+      GetMetricNameForTheme("Ash.AmbientMode.MultiScreenOffset."),
+      Harness::kTotalAnimationDuration / 2, 2);
+  histogram_tester.ExpectTimeBucketCount(
+      GetMetricNameForTheme("Ash.AmbientMode.MultiScreenOffset."),
+      base::Milliseconds(200), 1);
+  histogram_tester.ExpectTotalCount(
+      GetMetricNameForTheme("Ash.AmbientMode.MultiScreenOffset."), 6);
+}
+
+TEST_P(AmbientMultiScreenMetricsRecorderTestForAllThemes,
+       DoesNotRecordMeanTimestampOffsetForSingleScreen) {
+  static constexpr base::TimeDelta kFrameInterval = base::Milliseconds(100);
+  base::HistogramTester histogram_tester;
+
+  Harness harness(GetParam());
+  harness.recorder.RegisterScreen(&harness.animation_1);
+  harness.animation_1.Start();
+  harness.animation_1.Paint(&harness.canvas, task_environment_.NowTicks(),
+                            Harness::kTestSize);
+  task_environment_.FastForwardBy(kFrameInterval);
+  harness.animation_1.Paint(&harness.canvas, task_environment_.NowTicks(),
+                            Harness::kTestSize);
+  histogram_tester.ExpectTotalCount(
+      "Ash.AmbientMode.MultiScreenOffset.FeelTheBreeze", 0);
+}
+
+TEST_F(AmbientMultiScreenMetricsRecorderTest, HandlesNullAnimations) {
+  base::HistogramTester histogram_tester;
+  {
+    AmbientMultiScreenMetricsRecorder recorder(
+        AmbientAnimationTheme::kSlideshow);
+    recorder.RegisterScreen(nullptr);
+    recorder.RegisterScreen(nullptr);
+  }
+  histogram_tester.ExpectUniqueSample("Ash.AmbientMode.ScreenCount.SlideShow",
+                                      /*sample=*/2,
+                                      /*expected_bucket_count=*/1);
+  histogram_tester.ExpectTotalCount(
+      "Ash.AmbientMode.MultiScreenOffset.SlideShow", 0);
+}
+
+}  // namespace ash
diff --git a/ash/ambient/ui/ambient_animation_view.cc b/ash/ambient/ui/ambient_animation_view.cc
index db4cecb..6bb7f63 100644
--- a/ash/ambient/ui/ambient_animation_view.cc
+++ b/ash/ambient/ui/ambient_animation_view.cc
@@ -9,6 +9,7 @@
 #include <utility>
 
 #include "ash/ambient/ambient_view_delegate_impl.h"
+#include "ash/ambient/metrics/ambient_multi_screen_metrics_recorder.h"
 #include "ash/ambient/model/ambient_animation_attribution_provider.h"
 #include "ash/ambient/model/ambient_backend_model.h"
 #include "ash/ambient/model/ambient_photo_config.h"
@@ -174,7 +175,8 @@
 
 AmbientAnimationView::AmbientAnimationView(
     AmbientViewDelegateImpl* view_delegate,
-    std::unique_ptr<const AmbientAnimationStaticResources> static_resources)
+    std::unique_ptr<const AmbientAnimationStaticResources> static_resources,
+    AmbientMultiScreenMetricsRecorder* multi_screen_metrics_recorder)
     : view_delegate_(view_delegate),
       static_resources_(std::move(static_resources)),
       animation_photo_provider_(static_resources_.get(),
@@ -182,12 +184,13 @@
       animation_jitter_calculator_(kAnimationJitterConfig) {
   DCHECK(view_delegate_);
   SetID(AmbientViewID::kAmbientAnimationView);
-  Init();
+  Init(multi_screen_metrics_recorder);
 }
 
 AmbientAnimationView::~AmbientAnimationView() = default;
 
-void AmbientAnimationView::Init() {
+void AmbientAnimationView::Init(
+    AmbientMultiScreenMetricsRecorder* multi_screen_metrics_recorder) {
   SetUseDefaultFillLayout(true);
 
   views::View* animation_container_view =
@@ -210,6 +213,8 @@
       static_resources_->GetSkottieWrapper(), cc::SkottieColorMap(),
       &animation_photo_provider_);
   animation_observer_.Observe(animation.get());
+  DCHECK(multi_screen_metrics_recorder);
+  multi_screen_metrics_recorder->RegisterScreen(animation.get());
   animated_image_view_->SetAnimatedImage(std::move(animation));
   animated_image_view_observer_.Observe(animated_image_view_);
   animation_attribution_provider_ =
diff --git a/ash/ambient/ui/ambient_animation_view.h b/ash/ambient/ui/ambient_animation_view.h
index f4760c2..7fbe307 100644
--- a/ash/ambient/ui/ambient_animation_view.h
+++ b/ash/ambient/ui/ambient_animation_view.h
@@ -32,6 +32,7 @@
 class AmbientAnimationPlayer;
 class AmbientAnimationStaticResources;
 class AmbientAnimationShieldController;
+class AmbientMultiScreenMetricsRecorder;
 class AmbientViewDelegateImpl;
 
 class ASH_EXPORT AmbientAnimationView : public views::View,
@@ -42,13 +43,14 @@
 
   AmbientAnimationView(
       AmbientViewDelegateImpl* view_delegate,
-      std::unique_ptr<const AmbientAnimationStaticResources> static_resources);
+      std::unique_ptr<const AmbientAnimationStaticResources> static_resources,
+      AmbientMultiScreenMetricsRecorder* multi_screen_metrics_recorder);
   AmbientAnimationView(const AmbientAnimationView&) = delete;
   AmbientAnimationView& operator=(AmbientAnimationView&) = delete;
   ~AmbientAnimationView() override;
 
  private:
-  void Init();
+  void Init(AmbientMultiScreenMetricsRecorder* multi_screen_metrics_recorder);
 
   void AnimationCycleEnded(const lottie::Animation* animation) override;
 
diff --git a/ash/ambient/ui/ambient_container_view.cc b/ash/ambient/ui/ambient_container_view.cc
index 7dd61d26..d7821f0 100644
--- a/ash/ambient/ui/ambient_container_view.cc
+++ b/ash/ambient/ui/ambient_container_view.cc
@@ -7,6 +7,7 @@
 #include <memory>
 #include <utility>
 
+#include "ash/ambient/metrics/ambient_multi_screen_metrics_recorder.h"
 #include "ash/ambient/resources/ambient_animation_static_resources.h"
 #include "ash/ambient/ui/ambient_animation_view.h"
 #include "ash/ambient/ui/ambient_view_delegate.h"
@@ -28,9 +29,10 @@
 
 AmbientContainerView::AmbientContainerView(
     AmbientViewDelegateImpl* delegate,
-    std::unique_ptr<AmbientAnimationStaticResources>
-        animation_static_resources) {
+    std::unique_ptr<AmbientAnimationStaticResources> animation_static_resources,
+    AmbientMultiScreenMetricsRecorder* multi_screen_metrics_recorder) {
   DCHECK(delegate);
+  DCHECK(multi_screen_metrics_recorder);
   // TODO(crbug.com/1218186): Remove this, this is in place temporarily to be
   // able to submit accessibility checks, but this focusable View needs to
   // add a name so that the screen reader knows what to announce.
@@ -48,9 +50,11 @@
           : AmbientAnimationTheme::kSlideshow;
   if (animation_static_resources) {
     main_rendering_view = AddChildView(std::make_unique<AmbientAnimationView>(
-        delegate, std::move(animation_static_resources)));
+        delegate, std::move(animation_static_resources),
+        multi_screen_metrics_recorder));
   } else {
     main_rendering_view = AddChildView(std::make_unique<PhotoView>(delegate));
+    multi_screen_metrics_recorder->RegisterScreen(/*animation=*/nullptr);
   }
   orientation_metrics_recorder_ =
       std::make_unique<ambient::AmbientOrientationMetricsRecorder>(
diff --git a/ash/ambient/ui/ambient_container_view.h b/ash/ambient/ui/ambient_container_view.h
index aeaa1df7..767bb33 100644
--- a/ash/ambient/ui/ambient_container_view.h
+++ b/ash/ambient/ui/ambient_container_view.h
@@ -13,6 +13,7 @@
 namespace ash {
 
 class AmbientAnimationStaticResources;
+class AmbientMultiScreenMetricsRecorder;
 class AmbientViewDelegateImpl;
 
 namespace ambient {
@@ -28,9 +29,11 @@
   // |animation_static_resources| contains the Lottie animation file to render
   // along with its accompanying static image assets. If null, that means the
   // slideshow UI should be rendered instead.
-  AmbientContainerView(AmbientViewDelegateImpl* delegate,
-                       std::unique_ptr<AmbientAnimationStaticResources>
-                           animation_static_resources);
+  AmbientContainerView(
+      AmbientViewDelegateImpl* delegate,
+      std::unique_ptr<AmbientAnimationStaticResources>
+          animation_static_resources,
+      AmbientMultiScreenMetricsRecorder* multi_screen_metrics_recorder);
   ~AmbientContainerView() override;
 
  private:
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd
index 2151519..6b3e113 100644
--- a/ash/ash_strings.grd
+++ b/ash/ash_strings.grd
@@ -2280,10 +2280,10 @@
         Tap to complete set up
       </message>
       <message name="IDS_ASH_NETWORK_MANAGED_SIM_LOCK_NOTIFICATION_TITLE" desc="Title used for the system notification shown when the active SIM is locked when it is enterprise policy restricted.">
-        Disable your SIM Lock setting
+        Turn off "Lock SIM" setting
       </message>
       <message name="IDS_ASH_NETWORK_MANAGED_SIM_LOCK_NOTIFICATION_MESSAGE" desc="Message displayed in the system notification shown when the active SIM is locked when it is enterprise policy restricted.">
-        Your administrator is requesting that you turn off the Lock SIM setting
+        Your administrator has requested this change
       </message>
       <message name="IDS_ASH_NETWORK_RESET_EUICC_NOTIFICATION_TITLE" desc="Title used for the system notification shown when the reset euicc operation is initiated.">
         eSIM connection unavailable
diff --git a/ash/ash_strings_grd/IDS_ASH_NETWORK_MANAGED_SIM_LOCK_NOTIFICATION_MESSAGE.png.sha1 b/ash/ash_strings_grd/IDS_ASH_NETWORK_MANAGED_SIM_LOCK_NOTIFICATION_MESSAGE.png.sha1
index 4c49874..023809e 100644
--- a/ash/ash_strings_grd/IDS_ASH_NETWORK_MANAGED_SIM_LOCK_NOTIFICATION_MESSAGE.png.sha1
+++ b/ash/ash_strings_grd/IDS_ASH_NETWORK_MANAGED_SIM_LOCK_NOTIFICATION_MESSAGE.png.sha1
@@ -1 +1 @@
-8fce7c8dc73c864e67e443d38abc6bff79b01533
\ No newline at end of file
+9a89fd00780d0d983e7863e9a09863605c873800
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_NETWORK_MANAGED_SIM_LOCK_NOTIFICATION_TITLE.png.sha1 b/ash/ash_strings_grd/IDS_ASH_NETWORK_MANAGED_SIM_LOCK_NOTIFICATION_TITLE.png.sha1
index 4c49874..023809e 100644
--- a/ash/ash_strings_grd/IDS_ASH_NETWORK_MANAGED_SIM_LOCK_NOTIFICATION_TITLE.png.sha1
+++ b/ash/ash_strings_grd/IDS_ASH_NETWORK_MANAGED_SIM_LOCK_NOTIFICATION_TITLE.png.sha1
@@ -1 +1 @@
-8fce7c8dc73c864e67e443d38abc6bff79b01533
\ No newline at end of file
+9a89fd00780d0d983e7863e9a09863605c873800
\ No newline at end of file
diff --git a/ash/assistant/ui/logo_view/logo_view_impl.cc b/ash/assistant/ui/logo_view/logo_view_impl.cc
index b25a3664..d01a86a 100644
--- a/ash/assistant/ui/logo_view/logo_view_impl.cc
+++ b/ash/assistant/ui/logo_view/logo_view_impl.cc
@@ -8,6 +8,7 @@
 
 #include "ash/assistant/ui/logo_view/shape/shape.h"
 #include "base/check.h"
+#include "base/containers/adapters.h"
 #include "base/notreached.h"
 #include "chromeos/assistant/internal/logo_view/logo_model/dot.h"
 #include "chromeos/assistant/internal/logo_view/logo_view_constants.h"
@@ -110,8 +111,8 @@
   // TODO: The Green Mic parts seems overlapped on the Red Mic part. Draw dots
   // in reverse order so that the Red Mic part is on top of Green Mic parts. But
   // we need to find out why the Mic parts are overlapping in the first place.
-  for (auto iter = logo_.dots().rbegin(); iter != logo_.dots().rend(); ++iter)
-    DrawDot(canvas, (*iter).get());
+  for (const auto& dot : base::Reversed(logo_.dots()))
+    DrawDot(canvas, dot.get());
 }
 
 void LogoViewImpl::DrawDot(gfx::Canvas* canvas, Dot* dot) {
diff --git a/ash/components/BUILD.gn b/ash/components/BUILD.gn
index 3055ca79..45967b0 100644
--- a/ash/components/BUILD.gn
+++ b/ash/components/BUILD.gn
@@ -33,6 +33,7 @@
     "//ash/components/geolocation:unit_tests",
     "//ash/components/hid_detection:unit_tests",
     "//ash/components/login/auth:unit_tests",
+    "//ash/components/login/hibernate:unit_tests",
     "//ash/components/login/session:unit_tests",
     "//ash/components/multidevice:unit_tests",
     "//ash/components/peripheral_notification:unit_tests",
diff --git a/ash/components/cryptohome/BUILD.gn b/ash/components/cryptohome/BUILD.gn
index b882108b..8a949f83 100644
--- a/ash/components/cryptohome/BUILD.gn
+++ b/ash/components/cryptohome/BUILD.gn
@@ -22,6 +22,7 @@
     "//components/user_manager",
   ]
   sources = [
+    "common_types.h",
     "cryptohome_parameters.cc",
     "cryptohome_parameters.h",
     "cryptohome_util.cc",
diff --git a/ash/components/cryptohome/common_types.h b/ash/components/cryptohome/common_types.h
new file mode 100644
index 0000000..4737c12
--- /dev/null
+++ b/ash/components/cryptohome/common_types.h
@@ -0,0 +1,22 @@
+// Copyright 2022 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_COMPONENTS_CRYPTOHOME_COMMON_TYPES_H_
+#define ASH_COMPONENTS_CRYPTOHOME_COMMON_TYPES_H_
+
+#include <string>
+
+#include "base/types/strong_alias.h"
+
+namespace cryptohome {
+
+// The label that uniquely identifies a key among all keys configured for a
+// user.
+// We use a strong alias to avoid accidentally mixing up key labels with other
+// variables of type `std::string`.
+using KeyLabel = base::StrongAlias<class KeyLabelTag, std::string>;
+
+}  // namespace cryptohome
+
+#endif  // ASH_COMPONENTS_CRYPTOHOME_COMMON_TYPES_H_
diff --git a/ash/components/cryptohome/cryptohome_parameters.cc b/ash/components/cryptohome/cryptohome_parameters.cc
index 0d1f37fb..8615ff35 100644
--- a/ash/components/cryptohome/cryptohome_parameters.cc
+++ b/ash/components/cryptohome/cryptohome_parameters.cc
@@ -9,6 +9,7 @@
 
 #include <memory>
 
+#include "ash/components/cryptohome/common_types.h"
 #include "base/memory/values_equivalent.h"
 #include "base/notreached.h"
 #include "chromeos/dbus/cryptohome/key.pb.h"
@@ -150,7 +151,7 @@
 
 KeyDefinition KeyDefinition::CreateForPassword(
     const std::string& secret,
-    const std::string& label,
+    const KeyLabel& label,
     int /*AuthKeyPrivileges*/ privileges) {
   KeyDefinition key_def;
   key_def.type = TYPE_PASSWORD;
@@ -162,7 +163,7 @@
 
 KeyDefinition KeyDefinition::CreateForChallengeResponse(
     const std::vector<ChallengeResponseKey>& challenge_response_keys,
-    const std::string& label,
+    const KeyLabel& label,
     int /*AuthKeyPrivileges*/ privileges) {
   KeyDefinition key_def;
   key_def.type = TYPE_CHALLENGE_RESPONSE;
@@ -194,7 +195,7 @@
   return true;
 }
 
-Authorization::Authorization(const std::string& key, const std::string& label)
+Authorization::Authorization(const std::string& key, const KeyLabel& label)
     : key(key), label(label) {}
 
 Authorization::Authorization(const KeyDefinition& key_def)
@@ -204,4 +205,6 @@
   return key == other.key && label == other.label;
 }
 
+Authorization::~Authorization() = default;
+
 }  // namespace cryptohome
diff --git a/ash/components/cryptohome/cryptohome_parameters.h b/ash/components/cryptohome/cryptohome_parameters.h
index f41f9151..b1bc683 100644
--- a/ash/components/cryptohome/cryptohome_parameters.h
+++ b/ash/components/cryptohome/cryptohome_parameters.h
@@ -11,6 +11,7 @@
 #include <string>
 #include <vector>
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/login/auth/public/challenge_response_key.h"
 #include "base/component_export.h"
 #include "chromeos/dbus/cryptohome/rpc.pb.h"
@@ -120,13 +121,13 @@
 
   // Creates an instance with the TYPE_PASSWORD type.
   static KeyDefinition CreateForPassword(const std::string& secret,
-                                         const std::string& label,
+                                         const KeyLabel& label,
                                          int privileges);
   // Creates an instance with the TYPE_CHALLENGE_RESPONSE type.
   static KeyDefinition CreateForChallengeResponse(
       const std::vector<chromeos::ChallengeResponseKey>&
           challenge_response_keys,
-      const std::string& label,
+      const KeyLabel& label,
       int privileges);
 
   KeyDefinition();
@@ -136,7 +137,7 @@
   bool operator==(const KeyDefinition& other) const;
 
   Type type = TYPE_PASSWORD;
-  std::string label;
+  KeyLabel label;
   // Privileges associated with key. Combination of |AuthKeyPrivileges| values.
   int privileges = 0;
   Policy policy;
@@ -149,13 +150,14 @@
 
 // Authorization attempt data for user.
 struct COMPONENT_EXPORT(ASH_COMPONENTS_CRYPTOHOME) Authorization {
-  Authorization(const std::string& key, const std::string& label);
+  Authorization(const std::string& key, const KeyLabel& label);
   explicit Authorization(const KeyDefinition& key);
+  ~Authorization();
 
   bool operator==(const Authorization& other) const;
 
   std::string key;
-  std::string label;
+  KeyLabel label;
 };
 
 }  // namespace cryptohome
diff --git a/ash/components/cryptohome/cryptohome_util.cc b/ash/components/cryptohome/cryptohome_util.cc
index d4b600f..226f026 100644
--- a/ash/components/cryptohome/cryptohome_util.cc
+++ b/ash/components/cryptohome/cryptohome_util.cc
@@ -9,6 +9,7 @@
 #include <utility>
 #include <vector>
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/cryptohome/cryptohome_parameters.h"
 #include "ash/components/cryptohome/userdataauth_util.h"
 #include "base/logging.h"
@@ -96,7 +97,7 @@
       result.type = KeyDefinition::TYPE_PUBLIC_MOUNT;
       break;
   }
-  result.label = key_data.label();
+  result.label = KeyLabel(key_data.label());
   result.revision = key_data.revision();
 
   // Extract |privileges|.
@@ -139,7 +140,7 @@
   return key_definitions;
 }
 
-AuthorizationRequest CreateAuthorizationRequest(const std::string& label,
+AuthorizationRequest CreateAuthorizationRequest(const KeyLabel& label,
                                                 const std::string& secret) {
   return CreateAuthorizationRequestFromKeyDef(
       KeyDefinition::CreateForPassword(secret, label, PRIV_DEFAULT));
@@ -173,8 +174,8 @@
 // TODO(crbug.com/797848): Finish testing this method.
 void KeyDefinitionToKey(const KeyDefinition& key_def, Key* key) {
   KeyData* data = key->mutable_data();
-  if (!key_def.label.empty())
-    data->set_label(key_def.label);
+  if (!key_def.label.value().empty())
+    data->set_label(key_def.label.value());
 
   switch (key_def.type) {
     case KeyDefinition::TYPE_PASSWORD:
diff --git a/ash/components/cryptohome/cryptohome_util.h b/ash/components/cryptohome/cryptohome_util.h
index f53980b..0db1f9a 100644
--- a/ash/components/cryptohome/cryptohome_util.h
+++ b/ash/components/cryptohome/cryptohome_util.h
@@ -7,6 +7,7 @@
 
 #include <string>
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/cryptohome/cryptohome_parameters.h"
 #include "base/component_export.h"
 #include "chromeos/dbus/cryptohome/key.pb.h"
@@ -29,7 +30,7 @@
 
 // Creates an AuthorizationRequest from the given secret and label.
 COMPONENT_EXPORT(ASH_COMPONENTS_CRYPTOHOME)
-AuthorizationRequest CreateAuthorizationRequest(const std::string& label,
+AuthorizationRequest CreateAuthorizationRequest(const KeyLabel& label,
                                                 const std::string& secret);
 
 // Creates an AuthorizationRequest from the given key definition.
diff --git a/ash/components/cryptohome/cryptohome_util_unittest.cc b/ash/components/cryptohome/cryptohome_util_unittest.cc
index 2811f1f..84edf33 100644
--- a/ash/components/cryptohome/cryptohome_util_unittest.cc
+++ b/ash/components/cryptohome/cryptohome_util_unittest.cc
@@ -6,6 +6,7 @@
 
 #include <string>
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/cryptohome/cryptohome_parameters.h"
 #include "ash/components/login/auth/public/challenge_response_key.h"
 #include "chromeos/dbus/cryptohome/key.pb.h"
@@ -17,55 +18,60 @@
 
 using ::chromeos::ChallengeResponseKey;
 
-constexpr char kKeyLabel[] = "key_label";
+constexpr char kKeyLabelStr[] = "key_label";
 
-TEST(CryptohomeUtilTest, CreateAuthorizationRequestEmptyLabel) {
+class CryptohomeUtilTest : public ::testing::Test {
+ protected:
+  const KeyLabel kKeyLabel = KeyLabel(kKeyLabelStr);
+};
+
+TEST_F(CryptohomeUtilTest, CreateAuthorizationRequestEmptyLabel) {
   const std::string kExpectedSecret = "secret";
 
   const AuthorizationRequest auth_request =
-      CreateAuthorizationRequest(std::string(), kExpectedSecret);
+      CreateAuthorizationRequest(KeyLabel(), kExpectedSecret);
 
   EXPECT_FALSE(auth_request.key().data().has_label());
   EXPECT_EQ(auth_request.key().secret(), kExpectedSecret);
 }
 
-TEST(CryptohomeUtilTest, CreateAuthorizationRequestWithLabel) {
+TEST_F(CryptohomeUtilTest, CreateAuthorizationRequestWithLabel) {
   const std::string kExpectedLabel = "some_label";
   const std::string kExpectedSecret = "some_secret";
 
   const AuthorizationRequest auth_request =
-      CreateAuthorizationRequest(kExpectedLabel, kExpectedSecret);
+      CreateAuthorizationRequest(KeyLabel(kExpectedLabel), kExpectedSecret);
 
   EXPECT_EQ(auth_request.key().data().label(), kExpectedLabel);
   EXPECT_EQ(auth_request.key().secret(), kExpectedSecret);
 }
 
-TEST(CryptohomeUtilTest,
-     CreateAuthorizationRequestFromKeyDefPasswordEmptyLabel) {
+TEST_F(CryptohomeUtilTest,
+       CreateAuthorizationRequestFromKeyDefPasswordEmptyLabel) {
   const std::string kExpectedSecret = "secret";
 
   const AuthorizationRequest auth_request =
       CreateAuthorizationRequestFromKeyDef(KeyDefinition::CreateForPassword(
-          kExpectedSecret, std::string() /* label */, PRIV_DEFAULT));
+          kExpectedSecret, KeyLabel(), PRIV_DEFAULT));
 
   EXPECT_FALSE(auth_request.key().data().has_label());
   EXPECT_EQ(auth_request.key().secret(), kExpectedSecret);
 }
 
-TEST(CryptohomeUtilTest,
-     CreateAuthorizationRequestFromKeyDefPasswordWithLabel) {
+TEST_F(CryptohomeUtilTest,
+       CreateAuthorizationRequestFromKeyDefPasswordWithLabel) {
   const std::string kExpectedSecret = "secret";
 
   const AuthorizationRequest auth_request =
       CreateAuthorizationRequestFromKeyDef(KeyDefinition::CreateForPassword(
           kExpectedSecret, kKeyLabel, PRIV_DEFAULT));
 
-  EXPECT_EQ(auth_request.key().data().label(), kKeyLabel);
+  EXPECT_EQ(auth_request.key().data().label(), kKeyLabelStr);
   EXPECT_EQ(auth_request.key().secret(), kExpectedSecret);
 }
 
-TEST(CryptohomeUtilTest,
-     CreateAuthorizationRequestFromKeyDefChallengeResponse) {
+TEST_F(CryptohomeUtilTest,
+       CreateAuthorizationRequestFromKeyDefChallengeResponse) {
   using Algorithm = ChallengeResponseKey::SignatureAlgorithm;
   const std::string kKeySpki = "spki";
   const Algorithm kKeyAlgorithm = Algorithm::kRsassaPkcs1V15Sha1;
@@ -84,7 +90,7 @@
   EXPECT_FALSE(auth_request.key().has_secret());
   EXPECT_EQ(auth_request.key().data().type(),
             KeyData::KEY_TYPE_CHALLENGE_RESPONSE);
-  EXPECT_EQ(auth_request.key().data().label(), kKeyLabel);
+  EXPECT_EQ(auth_request.key().data().label(), kKeyLabelStr);
   ASSERT_EQ(auth_request.key().data().challenge_response_key_size(), 1);
   EXPECT_EQ(
       auth_request.key().data().challenge_response_key(0).public_key_spki_der(),
@@ -100,7 +106,7 @@
       kKeyAlgorithmProto);
 }
 
-TEST(CryptohomeUtilTest, KeyDefinitionToKeyType) {
+TEST_F(CryptohomeUtilTest, KeyDefinitionToKeyType) {
   Key key;
 
   KeyDefinitionToKey(KeyDefinition(), &key);
@@ -108,7 +114,7 @@
   EXPECT_EQ(key.data().type(), KeyData::KEY_TYPE_PASSWORD);
 }
 
-TEST(CryptohomeUtilTest, KeyDefinitionToKeySecret) {
+TEST_F(CryptohomeUtilTest, KeyDefinitionToKeySecret) {
   const std::string kExpectedSecret = "my_dog_ate_my_homework";
   KeyDefinition key_def;
   key_def.secret = kExpectedSecret;
@@ -119,10 +125,10 @@
   EXPECT_EQ(key.secret(), kExpectedSecret);
 }
 
-TEST(CryptohomeUtilTest, KeyDefinitionToKeyLabel) {
+TEST_F(CryptohomeUtilTest, KeyDefinitionToKeyLabel) {
   const std::string kExpectedLabel = "millenials hate labels";
   KeyDefinition key_def;
-  key_def.label = kExpectedLabel;
+  key_def.label = KeyLabel(kExpectedLabel);
   Key key;
 
   KeyDefinitionToKey(key_def, &key);
@@ -130,7 +136,7 @@
   EXPECT_EQ(key.data().label(), kExpectedLabel);
 }
 
-TEST(CryptohomeUtilTest, KeyDefinitionToKeyNonpositiveRevision) {
+TEST_F(CryptohomeUtilTest, KeyDefinitionToKeyNonpositiveRevision) {
   KeyDefinition key_def;
   key_def.revision = -1;
   Key key;
@@ -140,7 +146,7 @@
   EXPECT_EQ(key.data().revision(), 0);
 }
 
-TEST(CryptohomeUtilTest, KeyDefinitionToKeyPositiveRevision) {
+TEST_F(CryptohomeUtilTest, KeyDefinitionToKeyPositiveRevision) {
   constexpr int kExpectedRevision = 10;
   KeyDefinition key_def;
   key_def.revision = kExpectedRevision;
@@ -151,7 +157,7 @@
   EXPECT_EQ(key.data().revision(), kExpectedRevision);
 }
 
-TEST(CryptohomeUtilTest, KeyDefinitionToKeyDefaultPrivileges) {
+TEST_F(CryptohomeUtilTest, KeyDefinitionToKeyDefaultPrivileges) {
   KeyDefinition key_def;
   Key key;
 
@@ -163,7 +169,7 @@
   EXPECT_TRUE(privileges.update());
 }
 
-TEST(CryptohomeUtilTest, KeyDefinitionToKeyAddPrivileges) {
+TEST_F(CryptohomeUtilTest, KeyDefinitionToKeyAddPrivileges) {
   KeyDefinition key_def;
   key_def.privileges = PRIV_ADD;
   Key key;
@@ -176,7 +182,7 @@
   EXPECT_FALSE(privileges.update());
 }
 
-TEST(CryptohomeUtilTest, KeyDefinitionToKeyRemovePrivileges) {
+TEST_F(CryptohomeUtilTest, KeyDefinitionToKeyRemovePrivileges) {
   KeyDefinition key_def;
   key_def.privileges = PRIV_REMOVE;
   Key key;
@@ -189,7 +195,7 @@
   EXPECT_FALSE(privileges.update());
 }
 
-TEST(CryptohomeUtilTest, KeyDefinitionToKeyUpdatePrivileges) {
+TEST_F(CryptohomeUtilTest, KeyDefinitionToKeyUpdatePrivileges) {
   KeyDefinition key_def;
   key_def.privileges = PRIV_MIGRATE;
   Key key;
@@ -202,7 +208,7 @@
   EXPECT_TRUE(privileges.update());
 }
 
-TEST(CryptohomeUtilTest, KeyDefinitionToKeyAllPrivileges) {
+TEST_F(CryptohomeUtilTest, KeyDefinitionToKeyAllPrivileges) {
   KeyDefinition key_def;
   key_def.privileges = PRIV_DEFAULT;
   Key key;
@@ -217,7 +223,7 @@
 
 // Test the KeyDefinitionToKey() function against the KeyDefinition struct of
 // the |TYPE_CHALLENGE_RESPONSE| type.
-TEST(CryptohomeUtilTest, KeyDefinitionToKey_ChallengeResponse) {
+TEST_F(CryptohomeUtilTest, KeyDefinitionToKey_ChallengeResponse) {
   using Algorithm = ChallengeResponseKey::SignatureAlgorithm;
   const int kPrivileges = 0;
   const std::string kKey1Spki = "spki1";
@@ -248,7 +254,7 @@
 
   EXPECT_FALSE(key.has_secret());
   EXPECT_EQ(key.data().type(), KeyData::KEY_TYPE_CHALLENGE_RESPONSE);
-  EXPECT_EQ(key.data().label(), kKeyLabel);
+  EXPECT_EQ(key.data().label(), kKeyLabelStr);
   ASSERT_EQ(key.data().challenge_response_key_size(), 2);
   EXPECT_EQ(key.data().challenge_response_key(0).public_key_spki_der(),
             kKey1Spki);
diff --git a/ash/components/cryptohome/userdataauth_util_unittest.cc b/ash/components/cryptohome/userdataauth_util_unittest.cc
index fea65a1..9010357e 100644
--- a/ash/components/cryptohome/userdataauth_util_unittest.cc
+++ b/ash/components/cryptohome/userdataauth_util_unittest.cc
@@ -4,13 +4,16 @@
 
 #include "ash/components/cryptohome/userdataauth_util.h"
 
+#include "ash/components/cryptohome/common_types.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
+using cryptohome::KeyLabel;
+
 namespace user_data_auth {
 
 namespace {
 
-constexpr char kKeyLabel[] = "key_label";
+constexpr char kKeyLabelStr[] = "key_label";
 
 constexpr int64_t kKeyRevision = 123;
 constexpr char kProviderData1Name[] = "data_1";
@@ -20,26 +23,31 @@
 
 }  // namespace
 
-TEST(UserDataAuthUtilTest, ReplyToMountErrorNullOptional) {
+class UserDataAuthUtilTest : public ::testing::Test {
+ protected:
+  const KeyLabel kKeyLabel = KeyLabel(kKeyLabelStr);
+};
+
+TEST_F(UserDataAuthUtilTest, ReplyToMountErrorNullOptional) {
   const absl::optional<RemoveReply> reply = absl::nullopt;
   EXPECT_EQ(ReplyToMountError(reply), cryptohome::MOUNT_ERROR_FATAL);
 }
 
-TEST(UserDataAuthUtilTest, ReplyToMountErrorNoError) {
+TEST_F(UserDataAuthUtilTest, ReplyToMountErrorNoError) {
   RemoveReply result;
   result.set_error(CRYPTOHOME_ERROR_NOT_SET);
   const absl::optional<RemoveReply> reply = std::move(result);
   EXPECT_EQ(ReplyToMountError(reply), cryptohome::MOUNT_ERROR_NONE);
 }
 
-TEST(UserDataAuthUtilTest, BaseReplyToMountErrorAuthFailure) {
+TEST_F(UserDataAuthUtilTest, BaseReplyToMountErrorAuthFailure) {
   RemoveReply result;
   result.set_error(CRYPTOHOME_ERROR_AUTHORIZATION_KEY_NOT_FOUND);
   const absl::optional<RemoveReply> reply = std::move(result);
   EXPECT_EQ(ReplyToMountError(reply), cryptohome::MOUNT_ERROR_KEY_FAILURE);
 }
 
-TEST(UserDataAuthUtilTest, CryptohomeErrorToMountError) {
+TEST_F(UserDataAuthUtilTest, CryptohomeErrorToMountError) {
   // Test a few commonly seen input output pair.
   EXPECT_EQ(CryptohomeErrorToMountError(CRYPTOHOME_ERROR_NOT_SET),
             cryptohome::MOUNT_ERROR_NONE);
@@ -51,12 +59,12 @@
             cryptohome::MOUNT_ERROR_TPM_NEEDS_REBOOT);
 }
 
-TEST(UserDataAuthUtilTest, GetKeyDataReplyToKeyDefinitionsTwoEntries) {
+TEST_F(UserDataAuthUtilTest, GetKeyDataReplyToKeyDefinitionsTwoEntries) {
   GetKeyDataReply result;
   result.set_error(CryptohomeErrorCode::CRYPTOHOME_ERROR_NOT_SET);
   cryptohome::KeyData* key_data = result.add_key_data();
   key_data->set_type(cryptohome::KeyData::KEY_TYPE_PASSWORD);
-  key_data->set_label(kKeyLabel);
+  key_data->set_label(kKeyLabelStr);
   key_data->mutable_privileges()->set_update(false);
   key_data->set_revision(kKeyRevision);
   cryptohome::KeyProviderData* data = key_data->mutable_provider_data();
@@ -96,12 +104,13 @@
 // Test the GetKeyDataReplyToKeyDefinitions() function against the
 // GetKeyDataReply proto containing the KeyData proto of the
 // |KEY_TYPE_CHALLENGE_RESPONSE| type.
-TEST(UserDataAuthUtilTest, GetKeyDataReplyToKeyDefinitions_ChallengeResponse) {
+TEST_F(UserDataAuthUtilTest,
+       GetKeyDataReplyToKeyDefinitions_ChallengeResponse) {
   GetKeyDataReply result;
   result.set_error(CryptohomeErrorCode::CRYPTOHOME_ERROR_NOT_SET);
   cryptohome::KeyData* key_data = result.add_key_data();
   key_data->set_type(cryptohome::KeyData::KEY_TYPE_CHALLENGE_RESPONSE);
-  key_data->set_label(kKeyLabel);
+  key_data->set_label(kKeyLabelStr);
   const absl::optional<GetKeyDataReply> reply = std::move(result);
 
   const std::vector<cryptohome::KeyDefinition> key_definitions =
@@ -114,13 +123,13 @@
   EXPECT_EQ(kKeyLabel, key_definition.label);
 }
 
-TEST(UserDataAuthUtilTest, AccountDiskUsageReplyToUsageSizeNullOptional) {
+TEST_F(UserDataAuthUtilTest, AccountDiskUsageReplyToUsageSizeNullOptional) {
   const absl::optional<GetAccountDiskUsageReply> reply = absl::nullopt;
 
   ASSERT_EQ(AccountDiskUsageReplyToUsageSize(reply), -1);
 }
 
-TEST(UserDataAuthUtilTest, AccountDiskUsageReplyToUsageSizeErrorInReply) {
+TEST_F(UserDataAuthUtilTest, AccountDiskUsageReplyToUsageSizeErrorInReply) {
   GetAccountDiskUsageReply result;
   result.set_error(CryptohomeErrorCode::CRYPTOHOME_ERROR_NOT_IMPLEMENTED);
   const absl::optional<GetAccountDiskUsageReply> reply = std::move(result);
@@ -128,7 +137,7 @@
   ASSERT_EQ(AccountDiskUsageReplyToUsageSize(reply), -1);
 }
 
-TEST(UserDataAuthUtilTest, AccountDiskUsageReplyToUsageSizeValidity) {
+TEST_F(UserDataAuthUtilTest, AccountDiskUsageReplyToUsageSizeValidity) {
   constexpr int64_t kSize = 0x123456789ABCLL;
   GetAccountDiskUsageReply result;
   result.set_size(kSize);
diff --git a/ash/components/hid_detection/hid_detection_manager_impl.cc b/ash/components/hid_detection/hid_detection_manager_impl.cc
index 007d42f..848b3d1 100644
--- a/ash/components/hid_detection/hid_detection_manager_impl.cc
+++ b/ash/components/hid_detection/hid_detection_manager_impl.cc
@@ -166,6 +166,18 @@
       break;
   }
 
+  hid_detection::HidsMissing hids_missing = hid_detection::HidsMissing::kNone;
+  if (!has_pointer) {
+    if (!has_keyboard) {
+      hids_missing = hid_detection::HidsMissing::kPointerAndKeyboard;
+    } else {
+      hids_missing = hid_detection::HidsMissing::kPointer;
+    }
+  } else if (!has_keyboard) {
+    hids_missing = hid_detection::HidsMissing::kKeyboard;
+  }
+  hid_detection::RecordInitialHidsMissing(hids_missing);
+
   HID_LOG(EVENT)
       << "Fetched " << devices.size()
       << " input devices for GetIsHidDetectionRequired(). Pointer detected: "
diff --git a/ash/components/hid_detection/hid_detection_manager_impl_unittest.cc b/ash/components/hid_detection/hid_detection_manager_impl_unittest.cc
index 86885f0..eded63f 100644
--- a/ash/components/hid_detection/hid_detection_manager_impl_unittest.cc
+++ b/ash/components/hid_detection/hid_detection_manager_impl_unittest.cc
@@ -6,8 +6,10 @@
 
 #include "ash/components/hid_detection/bluetooth_hid_detector.h"
 #include "ash/components/hid_detection/fake_bluetooth_hid_detector.h"
+#include "ash/components/hid_detection/hid_detection_utils.h"
 #include "ash/constants/ash_features.h"
 #include "base/test/bind.h"
+#include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/task_environment.h"
 #include "services/device/public/cpp/hid/fake_input_service_linux.h"
@@ -25,7 +27,7 @@
 
 const char kTestHidName[] = "testName";
 
-enum HidType {
+enum TestHidType {
   kMouse,
   kTouchpad,
   kKeyboard,
@@ -129,14 +131,14 @@
     return delegate_.last_hid_detection_status();
   }
 
-  void AddDevice(HidType hid_type,
+  void AddDevice(TestHidType hid_type,
                  InputDeviceType device_type,
                  std::string* id_out = nullptr,
                  const char* name = NULL) {
     AddDevice(std::vector{hid_type}, device_type, id_out, name);
   }
 
-  void AddDevice(std::vector<HidType> hid_types,
+  void AddDevice(std::vector<TestHidType> hid_types,
                  InputDeviceType device_type,
                  std::string* id_out = nullptr,
                  const char* name = NULL) {
@@ -213,6 +215,13 @@
                   .keyboard_is_missing);
   }
 
+  void AssertInitialHidsMissingCount(HidsMissing hids_missing, int count) {
+    histogram_tester_.ExpectBucketCount(
+        "OOBE.HidDetectionScreen.InitialHidsMissing", hids_missing, count);
+    histogram_tester_.ExpectTotalCount(
+        "OOBE.HidDetectionScreen.InitialHidsMissing", count);
+  }
+
   size_t GetNumSetInputDevicesStatusCalls() {
     return fake_bluetooth_hid_detector_->num_set_input_devices_status_calls();
   }
@@ -220,6 +229,7 @@
  private:
   base::test::TaskEnvironment task_environment_;
   base::test::ScopedFeatureList scoped_feature_list_;
+  base::HistogramTester histogram_tester_;
 
   device::FakeInputServiceLinux fake_input_service_;
 
@@ -234,34 +244,50 @@
 
 TEST_F(HidDetectionManagerImplTest,
        GetIsHidDetectionRequired_NoDevicesConnected) {
-  ASSERT_TRUE(GetIsHidDetectionRequired().has_value());
-  EXPECT_TRUE(GetIsHidDetectionRequired().value());
+  AssertInitialHidsMissingCount(HidsMissing::kPointerAndKeyboard, /*count=*/0);
+
+  absl::optional<bool> is_hid_detection_required = GetIsHidDetectionRequired();
+  ASSERT_TRUE(is_hid_detection_required.has_value());
+  ASSERT_TRUE(is_hid_detection_required.value());
+  AssertInitialHidsMissingCount(HidsMissing::kPointerAndKeyboard, /*count=*/1);
 }
 
 TEST_F(HidDetectionManagerImplTest,
        GetIsHidDetectionRequired_OnlyPointerConnected) {
-  AddDevice(HidType::kMouse, InputDeviceType::TYPE_USB);
-  ASSERT_TRUE(GetIsHidDetectionRequired().has_value());
-  EXPECT_TRUE(GetIsHidDetectionRequired().value());
+  AddDevice(TestHidType::kMouse, InputDeviceType::TYPE_USB);
+  AssertInitialHidsMissingCount(HidsMissing::kKeyboard, /*count=*/0);
+
+  absl::optional<bool> is_hid_detection_required = GetIsHidDetectionRequired();
+  ASSERT_TRUE(is_hid_detection_required.has_value());
+  ASSERT_TRUE(is_hid_detection_required.value());
+  AssertInitialHidsMissingCount(HidsMissing::kKeyboard, /*count=*/1);
 }
 
 TEST_F(HidDetectionManagerImplTest,
        GetIsHidDetectionRequired_OnlyKeyboardConnected) {
-  AddDevice(HidType::kKeyboard, InputDeviceType::TYPE_USB);
-  ASSERT_TRUE(GetIsHidDetectionRequired().has_value());
-  EXPECT_TRUE(GetIsHidDetectionRequired().value());
+  AddDevice(TestHidType::kKeyboard, InputDeviceType::TYPE_USB);
+  AssertInitialHidsMissingCount(HidsMissing::kPointer, /*count=*/0);
+
+  absl::optional<bool> is_hid_detection_required = GetIsHidDetectionRequired();
+  ASSERT_TRUE(is_hid_detection_required.has_value());
+  ASSERT_TRUE(is_hid_detection_required.value());
+  AssertInitialHidsMissingCount(HidsMissing::kPointer, /*count=*/1);
 }
 
 TEST_F(HidDetectionManagerImplTest,
        GetIsHidDetectionRequired_PointerAndKeyboardConnected) {
-  AddDevice(HidType::kTouchpad, InputDeviceType::TYPE_USB);
-  AddDevice(HidType::kKeyboard, InputDeviceType::TYPE_USB);
-  ASSERT_TRUE(GetIsHidDetectionRequired().has_value());
-  EXPECT_FALSE(GetIsHidDetectionRequired().value());
+  AddDevice(TestHidType::kTouchpad, InputDeviceType::TYPE_USB);
+  AddDevice(TestHidType::kKeyboard, InputDeviceType::TYPE_USB);
+  AssertInitialHidsMissingCount(HidsMissing::kPointer, /*count=*/0);
+
+  absl::optional<bool> is_hid_detection_required = GetIsHidDetectionRequired();
+  ASSERT_TRUE(is_hid_detection_required.has_value());
+  ASSERT_FALSE(is_hid_detection_required.value());
+  AssertInitialHidsMissingCount(HidsMissing::kNone, /*count=*/1);
 }
 
 TEST_F(HidDetectionManagerImplTest, StartDetection_TouchscreenPreConnected) {
-  AddDevice(HidType::kTouchscreen, InputDeviceType::TYPE_SERIO);
+  AddDevice(TestHidType::kTouchscreen, InputDeviceType::TYPE_SERIO);
   EXPECT_EQ(0u, GetNumHidDetectionStatusChangedCalls());
 
   StartHidDetection();
@@ -282,7 +308,7 @@
 
 TEST_F(HidDetectionManagerImplTest, StartDetection_PointerPreConnected) {
   std::string device_id;
-  AddDevice(HidType::kMouse, InputDeviceType::TYPE_SERIO, &device_id);
+  AddDevice(TestHidType::kMouse, InputDeviceType::TYPE_SERIO, &device_id);
   EXPECT_EQ(0u, GetNumHidDetectionStatusChangedCalls());
 
   StartHidDetection();
@@ -302,7 +328,7 @@
 
 TEST_F(HidDetectionManagerImplTest, StartDetection_KeyboardPreConnected) {
   std::string device_id;
-  AddDevice(HidType::kKeyboard, InputDeviceType::TYPE_SERIO, &device_id);
+  AddDevice(TestHidType::kKeyboard, InputDeviceType::TYPE_SERIO, &device_id);
   EXPECT_EQ(0u, GetNumHidDetectionStatusChangedCalls());
 
   StartHidDetection();
@@ -336,7 +362,7 @@
       {.pointer_is_missing = true, .keyboard_is_missing = true});
 
   std::string touchscreen_id1;
-  AddDevice(HidType::kTouchscreen, InputDeviceType::TYPE_SERIO,
+  AddDevice(TestHidType::kTouchscreen, InputDeviceType::TYPE_SERIO,
             &touchscreen_id1);
   EXPECT_EQ(2u, GetNumHidDetectionStatusChangedCalls());
   AssertHidDetectionStatus(
@@ -375,7 +401,7 @@
 
   // Add another touchscreen device. This should not inform the delegate.
   std::string touchscreen_id2;
-  AddDevice(HidType::kTouchscreen, InputDeviceType::TYPE_SERIO,
+  AddDevice(TestHidType::kTouchscreen, InputDeviceType::TYPE_SERIO,
             &touchscreen_id2);
   EXPECT_EQ(3u, GetNumHidDetectionStatusChangedCalls());
   AssertHidDetectionStatus(
@@ -418,7 +444,7 @@
       {.pointer_is_missing = true, .keyboard_is_missing = true});
 
   std::string pointer_id1;
-  AddDevice(HidType::kMouse, InputDeviceType::TYPE_BLUETOOTH, &pointer_id1);
+  AddDevice(TestHidType::kMouse, InputDeviceType::TYPE_BLUETOOTH, &pointer_id1);
   EXPECT_EQ(2u, GetNumHidDetectionStatusChangedCalls());
   AssertHidDetectionStatus(
       /*pointer_metadata=*/{InputState::kPairedViaBluetooth, pointer_id1},
@@ -455,7 +481,7 @@
 
   // Add another pointer device. This should not inform the delegate.
   std::string pointer_id2;
-  AddDevice(HidType::kMouse, InputDeviceType::TYPE_USB, &pointer_id2);
+  AddDevice(TestHidType::kMouse, InputDeviceType::TYPE_USB, &pointer_id2);
   EXPECT_EQ(3u, GetNumHidDetectionStatusChangedCalls());
   AssertHidDetectionStatus(
       /*pointer_metadata=*/{InputState::kSearching,
@@ -497,7 +523,7 @@
       {.pointer_is_missing = true, .keyboard_is_missing = true});
 
   std::string keyboard_id1;
-  AddDevice(HidType::kKeyboard, InputDeviceType::TYPE_USB, &keyboard_id1);
+  AddDevice(TestHidType::kKeyboard, InputDeviceType::TYPE_USB, &keyboard_id1);
   EXPECT_EQ(2u, GetNumHidDetectionStatusChangedCalls());
   AssertHidDetectionStatus(
       /*pointer_metadata=*/{InputState::kSearching,
@@ -535,7 +561,7 @@
 
   // Add another keyboard device. This should not inform the delegate.
   std::string keyboard_id2;
-  AddDevice(HidType::kMouse, InputDeviceType::TYPE_USB, &keyboard_id2);
+  AddDevice(TestHidType::kMouse, InputDeviceType::TYPE_USB, &keyboard_id2);
   EXPECT_EQ(3u, GetNumHidDetectionStatusChangedCalls());
   AssertHidDetectionStatus(
       /*pointer_metadata=*/{InputState::kSearching,
@@ -564,9 +590,10 @@
 TEST_F(HidDetectionManagerImplTest,
        StartDetection_MultipleTouchscreensDisconnected) {
   std::string device_id1;
-  AddDevice(HidType::kTablet, InputDeviceType::TYPE_SERIO, &device_id1);
+  AddDevice(TestHidType::kTablet, InputDeviceType::TYPE_SERIO, &device_id1);
   std::string device_id2;
-  AddDevice(HidType::kTouchscreen, InputDeviceType::TYPE_SERIO, &device_id2);
+  AddDevice(TestHidType::kTouchscreen, InputDeviceType::TYPE_SERIO,
+            &device_id2);
   EXPECT_EQ(0u, GetNumHidDetectionStatusChangedCalls());
 
   StartHidDetection();
@@ -602,9 +629,9 @@
 TEST_F(HidDetectionManagerImplTest,
        StartDetection_MultiplePointersDisconnected) {
   std::string device_id1;
-  AddDevice(HidType::kTouchpad, InputDeviceType::TYPE_UNKNOWN, &device_id1);
+  AddDevice(TestHidType::kTouchpad, InputDeviceType::TYPE_UNKNOWN, &device_id1);
   std::string device_id2;
-  AddDevice(HidType::kMouse, InputDeviceType::TYPE_BLUETOOTH, &device_id2);
+  AddDevice(TestHidType::kMouse, InputDeviceType::TYPE_BLUETOOTH, &device_id2);
   EXPECT_EQ(0u, GetNumHidDetectionStatusChangedCalls());
 
   StartHidDetection();
@@ -638,9 +665,10 @@
 TEST_F(HidDetectionManagerImplTest,
        StartDetection_MultipleKeyboardsDisconnected) {
   std::string device_id1;
-  AddDevice(HidType::kKeyboard, InputDeviceType::TYPE_BLUETOOTH, &device_id1);
+  AddDevice(TestHidType::kKeyboard, InputDeviceType::TYPE_BLUETOOTH,
+            &device_id1);
   std::string device_id2;
-  AddDevice(HidType::kKeyboard, InputDeviceType::TYPE_SERIO, &device_id2);
+  AddDevice(TestHidType::kKeyboard, InputDeviceType::TYPE_SERIO, &device_id2);
   EXPECT_EQ(0u, GetNumHidDetectionStatusChangedCalls());
 
   StartHidDetection();
@@ -674,12 +702,13 @@
 TEST_F(HidDetectionManagerImplTest,
        StartDetection_DeviceMultipleHidTypesDisconnected) {
   std::string device_id1;
-  AddDevice(HidType::kTouchpad, InputDeviceType::TYPE_USB, &device_id1);
+  AddDevice(TestHidType::kTouchpad, InputDeviceType::TYPE_USB, &device_id1);
   std::string device_id2;
-  std::vector<HidType> hid_types{HidType::kKeyboard, HidType::kTouchpad};
+  std::vector<TestHidType> hid_types{TestHidType::kKeyboard,
+                                     TestHidType::kTouchpad};
   AddDevice(hid_types, InputDeviceType::TYPE_SERIO, &device_id2);
   std::string device_id3;
-  AddDevice(HidType::kKeyboard, InputDeviceType::TYPE_UNKNOWN, &device_id3);
+  AddDevice(TestHidType::kKeyboard, InputDeviceType::TYPE_UNKNOWN, &device_id3);
   EXPECT_EQ(0u, GetNumHidDetectionStatusChangedCalls());
 
   StartHidDetection();
@@ -747,7 +776,7 @@
       {.pointer_is_missing = true, .keyboard_is_missing = true});
 
   // Simulate the pairing succeeding.
-  AddDevice(HidType::kMouse, InputDeviceType::TYPE_BLUETOOTH,
+  AddDevice(TestHidType::kMouse, InputDeviceType::TYPE_BLUETOOTH,
             /*id_out=*/nullptr, kTestHidName);
   EXPECT_EQ(3u, GetNumHidDetectionStatusChangedCalls());
   AssertHidDetectionStatus(
@@ -841,7 +870,7 @@
       {.pointer_is_missing = true, .keyboard_is_missing = true});
 
   // Simulate the pairing succeeding.
-  AddDevice(HidType::kKeyboard, InputDeviceType::TYPE_BLUETOOTH,
+  AddDevice(TestHidType::kKeyboard, InputDeviceType::TYPE_BLUETOOTH,
             /*id_out=*/nullptr, kTestHidName);
   EXPECT_EQ(3u, GetNumHidDetectionStatusChangedCalls());
   AssertHidDetectionStatus(
@@ -933,7 +962,7 @@
       {.pointer_is_missing = true, .keyboard_is_missing = true});
 
   // Simulate the pairing succeeding.
-  AddDevice(std::vector{HidType::kKeyboard, HidType::kTouchpad},
+  AddDevice(std::vector{TestHidType::kKeyboard, TestHidType::kTouchpad},
             InputDeviceType::TYPE_BLUETOOTH,
             /*id_out=*/nullptr, kTestHidName);
   EXPECT_EQ(3u, GetNumHidDetectionStatusChangedCalls());
@@ -1003,7 +1032,7 @@
 TEST_F(HidDetectionManagerImplTest,
        StartDetection_BluetoothKeyboardPointerComboPointerPreConnected) {
   std::string device_id1;
-  AddDevice(HidType::kTouchpad, InputDeviceType::TYPE_USB, &device_id1);
+  AddDevice(TestHidType::kTouchpad, InputDeviceType::TYPE_USB, &device_id1);
   EXPECT_EQ(0u, GetNumHidDetectionStatusChangedCalls());
 
   StartHidDetection();
@@ -1031,7 +1060,7 @@
 
   // Simulate the pairing succeeding.
   std::string device_id2;
-  AddDevice(std::vector{HidType::kKeyboard, HidType::kTouchpad},
+  AddDevice(std::vector{TestHidType::kKeyboard, TestHidType::kTouchpad},
             InputDeviceType::TYPE_BLUETOOTH, &device_id2, kTestHidName);
   EXPECT_EQ(3u, GetNumHidDetectionStatusChangedCalls());
   AssertHidDetectionStatus(
diff --git a/ash/components/login/auth/BUILD.gn b/ash/components/login/auth/BUILD.gn
index 2770990..6a39c00 100644
--- a/ash/components/login/auth/BUILD.gn
+++ b/ash/components/login/auth/BUILD.gn
@@ -16,6 +16,7 @@
   ]
   deps = [
     "//ash/components/cryptohome",
+    "//ash/components/login/hibernate:hibernate_manager",
     "//ash/constants",
     "//base",
     "//base:i18n",
diff --git a/ash/components/login/auth/DEPS b/ash/components/login/auth/DEPS
index d78ff84..fd181e3 100644
--- a/ash/components/login/auth/DEPS
+++ b/ash/components/login/auth/DEPS
@@ -2,6 +2,7 @@
 
 include_rules = [
   "+ash/components/cryptohome",
+  "+ash/components/login/hibernate",
   "+ash/constants",
   "+base",
   "+crypto",
diff --git a/ash/components/login/auth/auth_factor_editor.cc b/ash/components/login/auth/auth_factor_editor.cc
index 56b79fd..a12041e 100644
--- a/ash/components/login/auth/auth_factor_editor.cc
+++ b/ash/components/login/auth/auth_factor_editor.cc
@@ -4,6 +4,7 @@
 
 #include "ash/components/login/auth/auth_factor_editor.h"
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/cryptohome/cryptohome_util.h"
 #include "ash/components/cryptohome/system_salt_getter.h"
 #include "ash/components/cryptohome/userdataauth_util.h"
@@ -16,6 +17,8 @@
 #include "chromeos/ash/components/dbus/userdataauth/userdataauth_client.h"
 #include "components/device_event_log/device_event_log.h"
 
+using cryptohome::KeyLabel;
+
 namespace ash {
 
 AuthFactorEditor::AuthFactorEditor() = default;
@@ -132,8 +135,9 @@
   request.set_old_credential_label(context->GetKey()->GetLabel());
   const Key* key = context->GetReplacementKey();
   cryptohome::KeyDefinitionToKey(
-      cryptohome::KeyDefinition::CreateForPassword(
-          key->GetSecret(), key->GetLabel(), cryptohome::PRIV_DEFAULT),
+      cryptohome::KeyDefinition::CreateForPassword(key->GetSecret(),
+                                                   KeyLabel(key->GetLabel()),
+                                                   cryptohome::PRIV_DEFAULT),
       request.mutable_authorization()->mutable_key());
 
   UserDataAuthClient::Get()->UpdateCredential(
diff --git a/ash/components/login/auth/auth_performer.cc b/ash/components/login/auth/auth_performer.cc
index 49ffad83..33d2040b 100644
--- a/ash/components/login/auth/auth_performer.cc
+++ b/ash/components/login/auth/auth_performer.cc
@@ -115,7 +115,7 @@
           CryptohomeError{user_data_auth::CRYPTOHOME_ERROR_KEY_NOT_FOUND});
       return;
     }
-    context->GetKey()->SetLabel(key_def->label);
+    context->GetKey()->SetLabel(key_def->label.value());
   }
 
   LOGIN_LOG(EVENT) << "Authenticating using key "
@@ -222,8 +222,8 @@
   }
   // Use Key until proper migration to AuthFactors API.
   Key key(pin);
-  DCHECK_EQ(key_def->label, kCryptohomePinLabel);
-  key.SetLabel(key_def->label);
+  DCHECK_EQ(key_def->label.value(), kCryptohomePinLabel);
+  key.SetLabel(key_def->label.value());
 
   key.Transform(Key::KEY_TYPE_SALTED_PBKDF2_AES256_1234, pin_salt);
   AuthenticateUsingKnowledgeKey(std::move(context), std::move(callback));
@@ -251,7 +251,7 @@
         CryptohomeError{user_data_auth::CRYPTOHOME_ERROR_KEY_NOT_FOUND});
     return;
   }
-  key_data->set_label(key_def->label);
+  key_data->set_label(key_def->label.value());
 
   client_->AuthenticateAuthSession(
       request, base::BindOnce(&AuthPerformer::OnAuthenticateAuthSession,
diff --git a/ash/components/login/auth/auth_performer_unittest.cc b/ash/components/login/auth/auth_performer_unittest.cc
index b240ef2..13167ad 100644
--- a/ash/components/login/auth/auth_performer_unittest.cc
+++ b/ash/components/login/auth/auth_performer_unittest.cc
@@ -6,6 +6,7 @@
 
 #include <memory>
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/cryptohome/cryptohome_parameters.h"
 #include "ash/components/cryptohome/system_salt_getter.h"
 #include "ash/components/login/auth/public/auth_factors_data.h"
@@ -25,6 +26,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
+using ::cryptohome::KeyLabel;
 using ::testing::_;
 
 namespace ash {
@@ -33,7 +35,7 @@
 void SetupUserWithLegacyPassword(UserContext* context) {
   std::vector<cryptohome::KeyDefinition> keys;
   keys.push_back(cryptohome::KeyDefinition::CreateForPassword(
-      "secret", "legacy-0", /*privileges=*/0));
+      "secret", KeyLabel("legacy-0"), /*privileges=*/0));
   AuthFactorsData data(keys);
   context->SetAuthFactorsData(data);
 }
diff --git a/ash/components/login/auth/auth_session_authenticator.cc b/ash/components/login/auth/auth_session_authenticator.cc
index a33ab32..ecb2a24 100644
--- a/ash/components/login/auth/auth_session_authenticator.cc
+++ b/ash/components/login/auth/auth_session_authenticator.cc
@@ -40,6 +40,7 @@
       auth_factor_editor_(std::make_unique<AuthFactorEditor>()),
       auth_performer_(
           std::make_unique<AuthPerformer>(UserDataAuthClient::Get())),
+      hibernate_manager_(std::make_unique<HibernateManager>()),
       mount_performer_(std::make_unique<MountPerformer>()) {
   DCHECK(safe_mode_delegate_);
   DCHECK(!user_recorder_.is_null());
@@ -207,6 +208,9 @@
     } else {  // New persistent user
       steps.push_back(base::BindOnce(&MountPerformer::CreateNewUser,
                                      mount_performer_->AsWeakPtr()));
+      steps.push_back(base::BindOnce(
+          &HibernateManager::PrepareHibernateAndMaybeResumeAuthOp,
+          hibernate_manager_->AsWeakPtr()));
       steps.push_back(base::BindOnce(&MountPerformer::MountPersistentDirectory,
                                      mount_performer_->AsWeakPtr()));
     }
@@ -248,6 +252,11 @@
           base::BindOnce(&AuthPerformer::AuthenticateUsingKnowledgeKey,
                          auth_performer_->AsWeakPtr()));
     }
+    // TODO(b/233103309): Abort resume from hibernate here as the user just went
+    // through online login and may need auth tokens synced.
+    steps.push_back(
+        base::BindOnce(&HibernateManager::PrepareHibernateAndMaybeResumeAuthOp,
+                       hibernate_manager_->AsWeakPtr()));
     steps.push_back(base::BindOnce(&MountPerformer::MountPersistentDirectory,
                                    mount_performer_->AsWeakPtr()));
     if (safe_mode_delegate_->IsSafeMode()) {
@@ -341,6 +350,9 @@
         base::BindOnce(&AuthPerformer::AuthenticateUsingKnowledgeKey,
                        auth_performer_->AsWeakPtr()));
   }
+  steps.push_back(
+      base::BindOnce(&HibernateManager::PrepareHibernateAndMaybeResumeAuthOp,
+                     hibernate_manager_->AsWeakPtr()));
   steps.push_back(base::BindOnce(&MountPerformer::MountPersistentDirectory,
                                  mount_performer_->AsWeakPtr()));
   if (safe_mode_delegate_->IsSafeMode()) {
@@ -545,7 +557,7 @@
   const cryptohome::KeyDefinition* password_key_def =
       context->GetAuthFactorsData().FindOnlinePasswordKey();
   DCHECK(password_key_def);
-  const std::string key_label = password_key_def->label;
+  const std::string key_label = password_key_def->label.value();
 
   if (!context->HasReplacementKey()) {
     // Assume that there was an attempt to use the key, so it is was already
@@ -583,6 +595,12 @@
                                  auth_performer_->AsWeakPtr()));
   steps.push_back(base::BindOnce(&AuthFactorEditor::ReplaceContextKey,
                                  auth_factor_editor_->AsWeakPtr()));
+  // TODO(b/233103309): Abort resume from hibernate here as the user just went
+  // through the recovery flow and online login, so they may have tokens that
+  // need to be synced.
+  steps.push_back(
+      base::BindOnce(&HibernateManager::PrepareHibernateAndMaybeResumeAuthOp,
+                     hibernate_manager_->AsWeakPtr()));
   steps.push_back(base::BindOnce(&MountPerformer::MountPersistentDirectory,
                                  mount_performer_->AsWeakPtr()));
   if (safe_mode_delegate_->IsSafeMode()) {
diff --git a/ash/components/login/auth/auth_session_authenticator.h b/ash/components/login/auth/auth_session_authenticator.h
index d38420a8..65c739c 100644
--- a/ash/components/login/auth/auth_session_authenticator.h
+++ b/ash/components/login/auth/auth_session_authenticator.h
@@ -14,6 +14,7 @@
 #include "ash/components/login/auth/mount_performer.h"
 #include "ash/components/login/auth/public/cryptohome_error.h"
 #include "ash/components/login/auth/safe_mode_delegate.h"
+#include "ash/components/login/hibernate/hibernate_manager.h"
 #include "base/callback.h"
 #include "base/component_export.h"
 #include "base/memory/weak_ptr.h"
@@ -196,6 +197,7 @@
   std::unique_ptr<SafeModeDelegate> safe_mode_delegate_;
   std::unique_ptr<AuthFactorEditor> auth_factor_editor_;
   std::unique_ptr<AuthPerformer> auth_performer_;
+  std::unique_ptr<HibernateManager> hibernate_manager_;
   std::unique_ptr<MountPerformer> mount_performer_;
 
   base::WeakPtrFactory<AuthSessionAuthenticator> weak_factory_{this};
diff --git a/ash/components/login/auth/cryptohome_authenticator.cc b/ash/components/login/auth/cryptohome_authenticator.cc
index 8524820..bda7167 100644
--- a/ash/components/login/auth/cryptohome_authenticator.cc
+++ b/ash/components/login/auth/cryptohome_authenticator.cc
@@ -9,6 +9,7 @@
 #include <memory>
 #include <vector>
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/cryptohome/cryptohome_parameters.h"
 #include "ash/components/cryptohome/cryptohome_util.h"
 #include "ash/components/cryptohome/system_salt_getter.h"
@@ -39,6 +40,8 @@
 #include "components/user_manager/user_type.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
 
+using cryptohome::KeyLabel;
+
 namespace ash {
 
 namespace {
@@ -280,7 +283,7 @@
         user_data_auth::GetKeyDataReplyToKeyDefinitions(reply);
     if (key_definitions.size() == 1) {
       const cryptohome::KeyDefinition& key_definition = key_definitions.front();
-      DCHECK_EQ(kCryptohomeGaiaKeyLabel, key_definition.label);
+      DCHECK_EQ(kCryptohomeGaiaKeyLabel, key_definition.label.value());
 
       // Extract the key type and salt from |key_definition|, if present.
       std::unique_ptr<int64_t> type;
@@ -400,7 +403,8 @@
   // Set the request to create a new homedir when missing.
   cryptohome::KeyDefinitionToKey(
       cryptohome::KeyDefinition::CreateForPassword(
-          std::string(), kCryptohomePublicMountLabel, cryptohome::PRIV_DEFAULT),
+          std::string(), KeyLabel(kCryptohomePublicMountLabel),
+          cryptohome::PRIV_DEFAULT),
       mount.mutable_create()->add_keys());
 
   // For public mounts, authorization secret is filled by cryptohomed, hence it
diff --git a/ash/components/login/auth/cryptohome_parameter_utils.cc b/ash/components/login/auth/cryptohome_parameter_utils.cc
index 8564a5f..90c92bd 100644
--- a/ash/components/login/auth/cryptohome_parameter_utils.cc
+++ b/ash/components/login/auth/cryptohome_parameter_utils.cc
@@ -4,6 +4,7 @@
 
 #include "ash/components/login/auth/cryptohome_parameter_utils.h"
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/cryptohome/cryptohome_parameters.h"
 #include "ash/components/login/auth/challenge_response/key_label_utils.h"
 #include "ash/components/login/auth/public/key.h"
@@ -11,6 +12,7 @@
 #include "base/check_op.h"
 
 using cryptohome::KeyDefinition;
+using cryptohome::KeyLabel;
 
 namespace ash {
 namespace cryptohome_parameter_utils {
@@ -21,8 +23,8 @@
     // information.
     return KeyDefinition::CreateForChallengeResponse(
         user_context.GetChallengeResponseKeys(),
-        GenerateChallengeResponseKeyLabel(
-            user_context.GetChallengeResponseKeys()),
+        KeyLabel(GenerateChallengeResponseKeyLabel(
+            user_context.GetChallengeResponseKeys())),
         cryptohome::PRIV_DEFAULT);
   }
 
@@ -31,8 +33,8 @@
   // If the |key| is a plain text password, crash rather than attempting to
   // mount the cryptohome with a plain text password.
   CHECK_NE(Key::KEY_TYPE_PASSWORD_PLAIN, key->GetKeyType());
-  return KeyDefinition::CreateForPassword(key->GetSecret(), key->GetLabel(),
-                                          cryptohome::PRIV_DEFAULT);
+  return KeyDefinition::CreateForPassword(
+      key->GetSecret(), KeyLabel(key->GetLabel()), cryptohome::PRIV_DEFAULT);
 }
 
 KeyDefinition CreateAuthorizationKeyDefFromUserContext(
@@ -50,7 +52,7 @@
   switch (key_def.type) {
     case KeyDefinition::TYPE_PASSWORD:
       if (!user_context.IsUsingPin())
-        key_def.label.clear();
+        key_def.label.value().clear();
       break;
     case KeyDefinition::TYPE_CHALLENGE_RESPONSE:
       break;
diff --git a/ash/components/login/auth/public/auth_factors_data.cc b/ash/components/login/auth/public/auth_factors_data.cc
index a41997b10..0865557 100644
--- a/ash/components/login/auth/public/auth_factors_data.cc
+++ b/ash/components/login/auth/public/auth_factors_data.cc
@@ -22,12 +22,13 @@
 const cryptohome::KeyDefinition* AuthFactorsData::FindOnlinePasswordKey()
     const {
   for (const cryptohome::KeyDefinition& key_def : keys_) {
-    if (key_def.label == kCryptohomeGaiaKeyLabel)
+    if (key_def.label.value() == kCryptohomeGaiaKeyLabel)
       return &key_def;
   }
   for (const cryptohome::KeyDefinition& key_def : keys_) {
     // Check if label starts with prefix and has required type.
-    if ((key_def.label.find(kCryptohomeGaiaKeyLegacyLabelPrefix) == 0) &&
+    if ((key_def.label.value().find(kCryptohomeGaiaKeyLegacyLabelPrefix) ==
+         0) &&
         key_def.type == cryptohome::KeyDefinition::TYPE_PASSWORD)
       return &key_def;
   }
@@ -47,7 +48,7 @@
 
   for (const cryptohome::KeyDefinition& key_def : keys_) {
     if (key_def.type == cryptohome::KeyDefinition::TYPE_PASSWORD &&
-        key_def.label == label)
+        key_def.label.value() == label)
       return true;
   }
   return false;
@@ -57,7 +58,7 @@
   for (const cryptohome::KeyDefinition& key_def : keys_) {
     if (key_def.type == cryptohome::KeyDefinition::TYPE_PASSWORD &&
         key_def.policy.low_entropy_credential) {
-      DCHECK_EQ(key_def.label, kCryptohomePinLabel);
+      DCHECK_EQ(key_def.label.value(), kCryptohomePinLabel);
       return &key_def;
     }
   }
diff --git a/ash/components/login/auth/public/operation_chain_runner.cc b/ash/components/login/auth/public/operation_chain_runner.cc
index a758154..99ea09a 100644
--- a/ash/components/login/auth/public/operation_chain_runner.cc
+++ b/ash/components/login/auth/public/operation_chain_runner.cc
@@ -10,6 +10,7 @@
 #include "ash/components/login/auth/public/auth_callbacks.h"
 #include "ash/components/login/auth/public/user_context.h"
 #include "base/bind.h"
+#include "base/containers/adapters.h"
 #include "base/containers/stack.h"
 
 namespace ash {
@@ -46,8 +47,8 @@
     return;
   }
   base::stack<AuthOperation> reversed_ops;
-  for (auto rit = operations.rbegin(); rit != operations.rend(); ++rit)
-    reversed_ops.push(std::move(*rit));
+  for (auto& operation : base::Reversed(operations))
+    reversed_ops.push(std::move(operation));
 
   AuthOperation first = std::move(reversed_ops.top());
   reversed_ops.pop();
diff --git a/ash/components/login/hibernate/BUILD.gn b/ash/components/login/hibernate/BUILD.gn
new file mode 100644
index 0000000..2f2ab18
--- /dev/null
+++ b/ash/components/login/hibernate/BUILD.gn
@@ -0,0 +1,40 @@
+# Copyright 2022 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("//build/config/chromeos/ui_mode.gni")
+import("//chromeos/ash/components/hibernate/buildflags.gni")
+import("//testing/test.gni")
+import("//third_party/protobuf/proto_library.gni")
+
+assert(is_chromeos_ash, "Non-Chrome-OS builds must not depend on //ash")
+
+component("hibernate_manager") {
+  defines = [ "IS_ASH_LOGIN_HIBERNATE_IMPL" ]
+  public_deps = [ "//ash/components/login/auth/public:authpublic" ]
+  deps = [
+    "//ash/components/cryptohome:cryptohome",
+    "//base",
+    "//chromeos/ash/components/hibernate:buildflags",
+  ]
+  sources = [
+    "hibernate_manager.cc",
+    "hibernate_manager.h",
+  ]
+
+  if (enable_hibernate) {
+    deps += [ "//chromeos/ash/components/dbus/hiberman" ]
+  }
+}
+
+source_set("unit_tests") {
+  configs += [ "//build/config/linux/dbus" ]
+  testonly = true
+  deps = [
+    ":hibernate_manager",
+    "//base",
+    "//chromeos/ash/components/dbus/hiberman",
+    "//testing/gtest",
+  ]
+  sources = [ "hibernate_manager_unittest.cc" ]
+}
diff --git a/ash/components/login/hibernate/OWNERS b/ash/components/login/hibernate/OWNERS
new file mode 100644
index 0000000..b5506b3
--- /dev/null
+++ b/ash/components/login/hibernate/OWNERS
@@ -0,0 +1,3 @@
+file://chromeos/login/OWNERS
+evgreen@chromium.org
+asavery@chromium.org
diff --git a/ash/components/login/hibernate/hibernate_manager.cc b/ash/components/login/hibernate/hibernate_manager.cc
new file mode 100644
index 0000000..f771cbd1
--- /dev/null
+++ b/ash/components/login/hibernate/hibernate_manager.cc
@@ -0,0 +1,95 @@
+// Copyright 2022 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/components/login/hibernate/hibernate_manager.h"
+
+#include "ash/components/cryptohome/userdataauth_util.h"
+#include "base/bind.h"
+#include "base/logging.h"
+
+#if BUILDFLAG(ENABLE_HIBERNATE)
+#include "chromeos/ash/components/dbus/hiberman/hiberman_client.h"  // nogncheck
+#endif
+
+namespace ash {
+
+namespace {
+
+HibernateManager* g_instance = nullptr;
+
+}  // namespace
+
+HibernateManager::HibernateManager() {
+  DCHECK(!g_instance);
+  g_instance = this;
+}
+
+HibernateManager::~HibernateManager() {
+  g_instance = nullptr;
+}
+
+// static
+HibernateManager* HibernateManager::Get() {
+  return g_instance;
+}
+
+base::WeakPtr<HibernateManager> HibernateManager::AsWeakPtr() {
+  return weak_factory_.GetWeakPtr();
+}
+
+void HibernateManager::PrepareHibernateAndMaybeResumeAuthOp(
+    std::unique_ptr<UserContext> user_context,
+    AuthOperationCallback callback) {
+  PrepareHibernateAndMaybeResume(
+      std::move(user_context),
+      base::BindOnce(&HibernateManager::ResumeFromHibernateAuthOpCallback,
+                     weak_factory_.GetWeakPtr(), std::move(callback)));
+}
+
+#if BUILDFLAG(ENABLE_HIBERNATE)
+void HibernateManager::PrepareHibernateAndMaybeResume(
+    std::unique_ptr<UserContext> user_context,
+    HibernateResumeCallback callback) {
+  HibermanClient::Get()->WaitForServiceToBeAvailable(
+      base::BindOnce(&HibernateManager::OnHibernateServiceAvailable,
+                     weak_factory_.GetWeakPtr(), std::move(user_context),
+                     std::move(callback)));
+}
+
+void HibernateManager::OnHibernateServiceAvailable(
+    std::unique_ptr<UserContext> user_context,
+    HibernateResumeCallback callback,
+    bool service_is_available) {
+  if (!service_is_available) {
+    LOG(ERROR) << "Hibernate service is unavailable";
+    std::move(callback).Run(std::move(user_context), false);
+  } else {
+    // In a successful resume case, this function never returns, as execution
+    // continues in the resumed hibernation image.
+    HibermanClient::Get()->ResumeFromHibernateAS(
+        user_context->GetAuthSessionId(),
+        base::BindOnce(std::move(callback), std::move(user_context)));
+  }
+}
+
+#else  // !ENABLE_HIBERNATE
+
+void HibernateManager::PrepareHibernateAndMaybeResume(
+    std::unique_ptr<UserContext> user_context,
+    HibernateResumeCallback callback) {
+  // If resume from hibernate is not enabled, just immediately turn around and
+  // call the callback.
+  std::move(callback).Run(std::move(user_context), true);
+}
+
+#endif
+
+void HibernateManager::ResumeFromHibernateAuthOpCallback(
+    AuthOperationCallback callback,
+    std::unique_ptr<UserContext> user_context,
+    bool resume_call_successful) {
+  std::move(callback).Run(std::move(user_context), absl::nullopt);
+}
+
+}  // namespace ash
diff --git a/ash/components/login/hibernate/hibernate_manager.h b/ash/components/login/hibernate/hibernate_manager.h
new file mode 100644
index 0000000..aea0fc0
--- /dev/null
+++ b/ash/components/login/hibernate/hibernate_manager.h
@@ -0,0 +1,63 @@
+// Copyright 2022 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_COMPONENTS_LOGIN_HIBERNATE_HIBERNATE_MANAGER_H_
+#define ASH_COMPONENTS_LOGIN_HIBERNATE_HIBERNATE_MANAGER_H_
+
+#include "ash/components/login/auth/public/auth_callbacks.h"
+#include "ash/components/login/auth/public/user_context.h"
+#include "base/callback.h"
+#include "base/component_export.h"
+#include "base/memory/weak_ptr.h"
+#include "chromeos/ash/components/hibernate/buildflags.h"  // ENABLE_HIBERNATE
+
+namespace ash {
+
+using HibernateResumeCallback =
+    base::OnceCallback<void(std::unique_ptr<UserContext> user_context, bool)>;
+
+// HibernateManager is used to initiate resume from hibernation.
+class COMPONENT_EXPORT(ASH_LOGIN_HIBERNATE) HibernateManager {
+ public:
+  HibernateManager();
+
+  // Not copyable or movable.
+  HibernateManager(const HibernateManager&) = delete;
+  HibernateManager& operator=(const HibernateManager&) = delete;
+
+  ~HibernateManager();
+
+  static HibernateManager* Get();
+
+  base::WeakPtr<HibernateManager> AsWeakPtr();
+
+  // Resume from hibernate, in the form of an AuthOperation.
+  void PrepareHibernateAndMaybeResumeAuthOp(
+      std::unique_ptr<UserContext> user_context,
+      AuthOperationCallback callback);
+
+  // Resume from hibernate. On a successful resume from hibernation, this never
+  // returns. On failure, or if no hibernate image is available to resume to,
+  // calls the callback.
+  void PrepareHibernateAndMaybeResume(std::unique_ptr<UserContext> user_context,
+                                      HibernateResumeCallback callback);
+
+ private:
+#if BUILDFLAG(ENABLE_HIBERNATE)
+  void OnHibernateServiceAvailable(std::unique_ptr<UserContext> user_context,
+                                   HibernateResumeCallback callback,
+                                   bool service_is_available);
+#endif
+
+  void ResumeFromHibernateAuthOpCallback(
+      AuthOperationCallback callback,
+      std::unique_ptr<UserContext> user_context,
+      bool resume_call_successful);
+
+  base::WeakPtrFactory<HibernateManager> weak_factory_{this};
+};
+
+}  // namespace ash
+
+#endif  // ASH_COMPONENTS_LOGIN_HIBERNATE_HIBERNATE_MANAGER_H_
diff --git a/ash/components/login/hibernate/hibernate_manager_unittest.cc b/ash/components/login/hibernate/hibernate_manager_unittest.cc
new file mode 100644
index 0000000..29aa643
--- /dev/null
+++ b/ash/components/login/hibernate/hibernate_manager_unittest.cc
@@ -0,0 +1,79 @@
+// Copyright 2022 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/components/login/hibernate/hibernate_manager.h"
+
+#include "ash/components/login/auth/public/auth_callbacks.h"
+#include "base/bind.h"
+#include "chromeos/ash/components/dbus/hiberman/fake_hiberman_client.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace ash {
+
+class HibernateManagerTest : public testing::Test {
+ public:
+  HibernateManagerTest() {
+    HibermanClient::InitializeFake();
+    hiberman_client_ = FakeHibermanClient::Get();
+    user_context_ = std::make_unique<UserContext>();
+    user_context_->SetAccountId(
+        AccountId::FromUserEmail("fake_email@gmail.com"));
+  }
+
+  HibernateManagerTest(const HibernateManagerTest&) = delete;
+  HibernateManagerTest& operator=(const HibernateManagerTest&) = delete;
+
+  ~HibernateManagerTest() override { HibermanClient::Shutdown(); }
+
+  void ResumeCallback(std::unique_ptr<UserContext> user_context,
+                      bool resume_call_success) {
+    if (resume_call_success) {
+      successful_callbacks_++;
+    } else {
+      failed_callbacks_++;
+    }
+  }
+
+  void ResumeAuthOpCallback(std::unique_ptr<UserContext> user_context,
+                            absl::optional<CryptohomeError> error) {
+    if (error == absl::nullopt) {
+      successful_callbacks_++;
+    } else {
+      failed_callbacks_++;
+    }
+  }
+
+ protected:
+  FakeHibermanClient* hiberman_client_;
+  HibernateManager hibernate_manager_;
+  std::unique_ptr<UserContext> user_context_;
+  int successful_callbacks_ = 0;
+  int failed_callbacks_ = 0;
+
+  base::WeakPtrFactory<HibernateManagerTest> weak_factory_{this};
+};
+
+// Test that the callback gets called.
+TEST_F(HibernateManagerTest, BasicResumeCall) {
+  hibernate_manager_.PrepareHibernateAndMaybeResume(
+      std::move(user_context_),
+      base::BindOnce(&HibernateManagerTest::ResumeCallback,
+                     weak_factory_.GetWeakPtr()));
+
+  EXPECT_EQ(successful_callbacks_, 1);
+  EXPECT_EQ(failed_callbacks_, 0);
+}
+
+// Test that ResumeFromHiberateAsAuthOp calls its callback.
+TEST_F(HibernateManagerTest, BasicAuthOpResumeCall) {
+  hibernate_manager_.PrepareHibernateAndMaybeResumeAuthOp(
+      std::move(user_context_),
+      base::BindOnce(&HibernateManagerTest::ResumeAuthOpCallback,
+                     weak_factory_.GetWeakPtr()));
+
+  EXPECT_EQ(successful_callbacks_, 1);
+  EXPECT_EQ(failed_callbacks_, 0);
+}
+
+}  // namespace ash
diff --git a/ash/frame/default_frame_header_unittest.cc b/ash/frame/default_frame_header_unittest.cc
index dc38c094..3470bf3 100644
--- a/ash/frame/default_frame_header_unittest.cc
+++ b/ash/frame/default_frame_header_unittest.cc
@@ -17,9 +17,11 @@
 #include "chromeos/ui/frame/caption_buttons/frame_caption_button_container_view.h"
 #include "chromeos/ui/frame/frame_header.h"
 #include "ui/aura/window.h"
+#include "ui/aura/window_tree_host.h"
 #include "ui/compositor/layer.h"
 #include "ui/compositor/layer_animator.h"
 #include "ui/compositor/scoped_animation_duration_scale_mode.h"
+#include "ui/compositor/test/test_utils.h"
 #include "ui/gfx/animation/animation_test_api.h"
 #include "ui/gfx/color_utils.h"
 #include "ui/views/test/test_views.h"
@@ -175,8 +177,7 @@
   FrameHeader* frame_header_ = nullptr;
 };
 
-// TODO(crbug.com/1349573): Revive this test.
-TEST_F(DefaultFrameHeaderTest, DISABLED_DeleteDuringAnimation) {
+TEST_F(DefaultFrameHeaderTest, DeleteDuringAnimation) {
   const auto bounds = gfx::Rect(100, 100);
   auto win0 = CreateAppWindow(bounds, AppType::BROWSER);
   auto win1 = CreateAppWindow(bounds, AppType::BROWSER);
@@ -186,9 +187,8 @@
 
   EXPECT_TRUE(wm::IsActiveWindow(win1.get()));
 
-  // A frame will not animate until it is painted first.
-  FramePaintWaiter(win0.get()).Wait();
-  FramePaintWaiter(win1.get()).Wait();
+  // Waits until `FrameHeader` gets painted.
+  EXPECT_TRUE(ui::WaitForNextFrameToBePresented(win0->GetHost()->compositor()));
 
   ui::ScopedAnimationDurationScaleMode non_zero_duration_mode(
       ui::ScopedAnimationDurationScaleMode::NON_ZERO_DURATION);
@@ -214,18 +214,17 @@
   EXPECT_TRUE(checker.destroyed());
 }
 
-// TODO(crbug.com/1349633): Revive this test.
 // Make sure that the animation is canceled when resized.
-TEST_F(DefaultFrameHeaderTest, DISABLED_ResizeAndReorderDuringAnimation) {
+TEST_F(DefaultFrameHeaderTest, ResizeAndReorderDuringAnimation) {
   const auto bounds = gfx::Rect(100, 100);
   auto win_0 = CreateAppWindow(bounds, AppType::BROWSER);
   auto win_1 = CreateAppWindow(bounds, AppType::BROWSER);
 
   EXPECT_TRUE(wm::IsActiveWindow(win_1.get()));
 
-  // A frame will not animate until it is painted first.
-  FramePaintWaiter(win_0.get()).Wait();
-  FramePaintWaiter(win_1.get()).Wait();
+  // Waits until `FrameHeader` gets painted.
+  EXPECT_TRUE(
+      ui::WaitForNextFrameToBePresented(win_0->GetHost()->compositor()));
 
   ui::ScopedAnimationDurationScaleMode non_zero_duration_mode(
       ui::ScopedAnimationDurationScaleMode::NON_ZERO_DURATION);
diff --git a/ash/in_session_auth/authentication_dialog.cc b/ash/in_session_auth/authentication_dialog.cc
index 8e00126..b965599 100644
--- a/ash/in_session_auth/authentication_dialog.cc
+++ b/ash/in_session_auth/authentication_dialog.cc
@@ -160,7 +160,9 @@
   // Create a copy of `user_context_` so that we don't lose it to std::move
   // for future auth attempts
   auth_performer_->AuthenticateWithPassword(
-      user_context_->GetAuthFactorsData().FindOnlinePasswordKey()->label,
+      user_context_->GetAuthFactorsData()
+          .FindOnlinePasswordKey()
+          ->label.value(),
       base::UTF16ToUTF8(password_field_->GetText()),
       std::make_unique<UserContext>(*user_context_),
       base::BindOnce(&AuthenticationDialog::OnAuthFactorValidityChecked,
diff --git a/ash/in_session_auth/authentication_dialog_unittest.cc b/ash/in_session_auth/authentication_dialog_unittest.cc
index f6137522..6398436d 100644
--- a/ash/in_session_auth/authentication_dialog_unittest.cc
+++ b/ash/in_session_auth/authentication_dialog_unittest.cc
@@ -6,6 +6,7 @@
 
 #include <cctype>
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/cryptohome/cryptohome_parameters.h"
 #include "ash/components/login/auth/auth_performer.h"
 #include "ash/components/login/auth/mock_auth_performer.h"
@@ -24,6 +25,8 @@
 #include "ui/views/controls/button/label_button.h"
 #include "ui/views/controls/textfield/textfield.h"
 
+using ::cryptohome::KeyLabel;
+
 namespace ash {
 namespace {
 const char kTestAccount[] = "user@test.com";
@@ -45,7 +48,7 @@
                         AuthPerformer::StartSessionCallback callback) {
     user_context->SetAuthFactorsData(
         AuthFactorsData{{cryptohome::KeyDefinition::CreateForPassword(
-            "secret", kCryptohomeGaiaKeyLabel, 0)}});
+            "secret", KeyLabel(kCryptohomeGaiaKeyLabel), 0)}});
 
     std::move(callback).Run(true, std::move(user_context), absl::nullopt);
   }
diff --git a/ash/login/LOGIN_LOCK_OWNERS b/ash/login/LOGIN_LOCK_OWNERS
index 9375a3c..ec20423 100644
--- a/ash/login/LOGIN_LOCK_OWNERS
+++ b/ash/login/LOGIN_LOCK_OWNERS
@@ -1,5 +1,6 @@
 # Primary (in CET)
 antrim@chromium.org
+emaxx@chromium.org
 
 #Secondary (in CET)
 rsorokin@chromium.org
diff --git a/ash/public/cpp/accessibility_controller.h b/ash/public/cpp/accessibility_controller.h
index 38bdb31..b7cd14b 100644
--- a/ash/public/cpp/accessibility_controller.h
+++ b/ash/public/cpp/accessibility_controller.h
@@ -194,6 +194,9 @@
       const absl::optional<std::u16string>& text,
       const absl::optional<std::vector<DictationBubbleHintType>>& hints) = 0;
 
+  // Cancels all of spoken feedback's current and queued speech immediately.
+  virtual void SilenceSpokenFeedback() = 0;
+
  protected:
   AccessibilityController();
   virtual ~AccessibilityController();
diff --git a/ash/public/cpp/holding_space/holding_space_client.h b/ash/public/cpp/holding_space/holding_space_client.h
index 5d7ce547..66cae7fe 100644
--- a/ash/public/cpp/holding_space/holding_space_client.h
+++ b/ash/public/cpp/holding_space/holding_space_client.h
@@ -34,12 +34,6 @@
   // Adds a screen recording item backed by the provided `file_path`.
   virtual void AddScreenRecording(const base::FilePath& file_path) = 0;
 
-  // Attempts to cancel the specified in-progress holding space `items`. In the
-  // case of in-progress holding space downloads, this would attempt to cancel
-  // the underlying download which would subsequently result in item removal.
-  virtual void CancelItems(
-      const std::vector<const HoldingSpaceItem*>& items) = 0;
-
   // Attempts to copy the contents of the image file backing the specified
   // holding space `item` to the clipboard. If the backing file is not suspected
   // to contain image data, this method will abort early. Success is returned
@@ -64,24 +58,12 @@
   // Success is returned via the supplied `callback`.
   virtual void OpenMyFiles(SuccessCallback callback) = 0;
 
-  // Attempts to pause progress of the specified in-progress holding space
-  // `items`. In the case of in-progress holding space downloads, this would
-  // attempt to pause the underlying download.
-  virtual void PauseItems(
-      const std::vector<const HoldingSpaceItem*>& items) = 0;
-
   // Pins the specified `file_paths`.
   virtual void PinFiles(const std::vector<base::FilePath>& file_paths) = 0;
 
   // Pins the specified holding space `items`.
   virtual void PinItems(const std::vector<const HoldingSpaceItem*>& items) = 0;
 
-  // Attempts to resume progress of the specified in-progress holding space
-  // `items`. In the case of in-progress holding space downloads, this would
-  // attempt to resume the underlying download.
-  virtual void ResumeItems(
-      const std::vector<const HoldingSpaceItem*>& items) = 0;
-
   // Attempts to show the specified holding space `item` in its folder.
   // Success is returned via the supplied `callback`.
   virtual void ShowItemInFolder(const HoldingSpaceItem& item,
diff --git a/ash/public/cpp/holding_space/holding_space_item.cc b/ash/public/cpp/holding_space/holding_space_item.cc
index 6263b368..8c8c4f4 100644
--- a/ash/public/cpp/holding_space/holding_space_item.cc
+++ b/ash/public/cpp/holding_space/holding_space_item.cc
@@ -33,6 +33,41 @@
 
 }  // namespace
 
+// HoldingSpaceItem::InProgressCommand -----------------------------------------
+
+HoldingSpaceItem::InProgressCommand::InProgressCommand(
+    HoldingSpaceCommandId command_id,
+    int label_id,
+    const gfx::VectorIcon* icon,
+    Handler handler)
+    : command_id(command_id),
+      label_id(label_id),
+      icon(icon),
+      handler(std::move(handler)) {
+  DCHECK(holding_space_util::IsInProgressCommand(command_id));
+}
+
+HoldingSpaceItem::InProgressCommand::InProgressCommand(
+    const InProgressCommand& other)
+    : command_id(other.command_id),
+      label_id(other.label_id),
+      icon(other.icon),
+      handler(other.handler) {}
+
+HoldingSpaceItem::InProgressCommand::~InProgressCommand() = default;
+
+HoldingSpaceItem::InProgressCommand&
+HoldingSpaceItem::InProgressCommand::operator=(const InProgressCommand& other) =
+    default;
+
+bool HoldingSpaceItem::InProgressCommand::operator==(
+    const InProgressCommand& other) const {
+  return command_id == other.command_id && label_id == other.label_id &&
+         icon == other.icon && handler == other.handler;
+}
+
+// HoldingSpaceItem ------------------------------------------------------------
+
 HoldingSpaceItem::~HoldingSpaceItem() {
   deletion_callback_list_.Notify();
 }
@@ -246,9 +281,12 @@
 }
 
 bool HoldingSpaceItem::SetInProgressCommands(
-    std::set<HoldingSpaceCommandId> in_progress_commands) {
+    std::vector<InProgressCommand> in_progress_commands) {
   DCHECK(std::all_of(in_progress_commands.begin(), in_progress_commands.end(),
-                     &holding_space_util::IsInProgressCommand));
+                     [](const InProgressCommand& in_progress_command) {
+                       return holding_space_util::IsInProgressCommand(
+                           in_progress_command.command_id);
+                     }));
 
   if (progress_.IsComplete() || in_progress_commands_ == in_progress_commands)
     return false;
diff --git a/ash/public/cpp/holding_space/holding_space_item.h b/ash/public/cpp/holding_space/holding_space_item.h
index dc718d7..bb2581d 100644
--- a/ash/public/cpp/holding_space/holding_space_item.h
+++ b/ash/public/cpp/holding_space/holding_space_item.h
@@ -6,8 +6,8 @@
 #define ASH_PUBLIC_CPP_HOLDING_SPACE_HOLDING_SPACE_ITEM_H_
 
 #include <memory>
-#include <set>
 #include <string>
+#include <vector>
 
 #include "ash/public/cpp/ash_public_export.h"
 #include "ash/public/cpp/holding_space/holding_space_constants.h"
@@ -16,6 +16,7 @@
 #include "base/callback_list.h"
 #include "base/files/file_path.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
+#include "ui/gfx/vector_icon_types.h"
 #include "url/gurl.h"
 
 namespace base {
@@ -33,6 +34,41 @@
 // Contains data needed to display a single item in the holding space UI.
 class ASH_PUBLIC_EXPORT HoldingSpaceItem {
  public:
+  // Models a command for an in-progress item which is shown in the item's
+  // context menu and possibly, in the case of cancel/pause/resume, as primary/
+  // secondary actions on the item's view itself.
+  struct InProgressCommand {
+   public:
+    using Handler =
+        base::RepeatingCallback<void(const HoldingSpaceItem* item,
+                                     HoldingSpaceCommandId command_id)>;
+
+    InProgressCommand(HoldingSpaceCommandId command_id,
+                      int label_id,
+                      const gfx::VectorIcon* icon,
+                      Handler handler);
+
+    InProgressCommand(const InProgressCommand& other);
+
+    InProgressCommand& operator=(const InProgressCommand& other);
+
+    ~InProgressCommand();
+
+    bool operator==(const InProgressCommand& other) const;
+
+    // The identifier for the command.
+    HoldingSpaceCommandId command_id;
+
+    // The identifier for the label to be displayed for the command.
+    int label_id;
+
+    // The icon to be displayed for the command.
+    const gfx::VectorIcon* icon;
+
+    // The handler to be invoked to perform command execution.
+    Handler handler;
+  };
+
   // Items types supported by the holding space.
   // NOTE: These values are recorded in histograms and persisted in preferences
   // so append new values to the end and do not change the meaning of existing
@@ -149,7 +185,7 @@
   // context menu and possibly, in the case of cancel/pause/resume, as primary/
   // secondary actions on the item view itself.
   bool SetInProgressCommands(
-      std::set<HoldingSpaceCommandId> in_progress_commands);
+      std::vector<InProgressCommand> in_progress_commands);
 
   // Sets the `progress_` of the item, returning `true` if a change occurred or
   // `false` to indicate no-op.
@@ -183,7 +219,7 @@
 
   const HoldingSpaceProgress& progress() const { return progress_; }
 
-  const std::set<HoldingSpaceCommandId>& in_progress_commands() const {
+  const std::vector<InProgressCommand>& in_progress_commands() const {
     return in_progress_commands_;
   }
 
@@ -230,7 +266,7 @@
   // The commands for an in-progress item which are shown in the item's context
   // menu and possibly, in the case of cancel/pause/resume, as primary/secondary
   // actions on the item's view itself.
-  std::set<HoldingSpaceCommandId> in_progress_commands_;
+  std::vector<InProgressCommand> in_progress_commands_;
 
   // Mutable to allow const access from `AddDeletionCallback()`.
   mutable base::RepeatingClosureList deletion_callback_list_;
diff --git a/ash/public/cpp/holding_space/holding_space_item_unittest.cc b/ash/public/cpp/holding_space/holding_space_item_unittest.cc
index 013e0c3..86eab22b 100644
--- a/ash/public/cpp/holding_space/holding_space_item_unittest.cc
+++ b/ash/public/cpp/holding_space/holding_space_item_unittest.cc
@@ -5,7 +5,6 @@
 #include "ash/public/cpp/holding_space/holding_space_item.h"
 
 #include <memory>
-#include <set>
 #include <vector>
 
 #include "ash/public/cpp/holding_space/holding_space_image.h"
@@ -18,6 +17,7 @@
 #include "base/values.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/chromeos/styles/cros_styles.h"
+#include "ui/gfx/paint_vector_icon.h"
 
 namespace ash {
 
@@ -132,8 +132,10 @@
   EXPECT_TRUE(holding_space_item->in_progress_commands().empty());
 
   // It should be possible to update commands to a new value.
-  std::set<HoldingSpaceCommandId> in_progress_commands;
-  in_progress_commands.insert(HoldingSpaceCommandId::kCancelItem);
+  std::vector<HoldingSpaceItem::InProgressCommand> in_progress_commands;
+  in_progress_commands.push_back(HoldingSpaceItem::InProgressCommand(
+      HoldingSpaceCommandId::kCancelItem, /*label_id=*/-1, &gfx::kNoneIcon,
+      /*handler=*/base::DoNothing()));
   EXPECT_TRUE(holding_space_item->SetInProgressCommands(in_progress_commands));
   EXPECT_EQ(holding_space_item->in_progress_commands(), in_progress_commands);
 
diff --git a/ash/public/cpp/holding_space/holding_space_model.cc b/ash/public/cpp/holding_space/holding_space_model.cc
index 3e13fe2f..f707c547 100644
--- a/ash/public/cpp/holding_space/holding_space_model.cc
+++ b/ash/public/cpp/holding_space/holding_space_model.cc
@@ -22,7 +22,7 @@
 
   // Cache computed fields.
   const std::u16string accessible_name = item_->GetAccessibleName();
-  const std::set<HoldingSpaceCommandId> in_progress_commands =
+  const std::vector<HoldingSpaceItem::InProgressCommand> in_progress_commands =
       item_->in_progress_commands();
 
   // Update accessible name.
@@ -107,9 +107,13 @@
 
 HoldingSpaceModel::ScopedItemUpdate&
 HoldingSpaceModel::ScopedItemUpdate::SetInProgressCommands(
-    std::set<HoldingSpaceCommandId> in_progress_commands) {
-  DCHECK(std::all_of(in_progress_commands.begin(), in_progress_commands.end(),
-                     &holding_space_util::IsInProgressCommand));
+    std::vector<HoldingSpaceItem::InProgressCommand> in_progress_commands) {
+  DCHECK(std::all_of(
+      in_progress_commands.begin(), in_progress_commands.end(),
+      [](const HoldingSpaceItem::InProgressCommand& in_progress_command) {
+        return holding_space_util::IsInProgressCommand(
+            in_progress_command.command_id);
+      }));
   in_progress_commands_ = std::move(in_progress_commands);
   return *this;
 }
diff --git a/ash/public/cpp/holding_space/holding_space_model.h b/ash/public/cpp/holding_space/holding_space_model.h
index 32c62f5..ca6717ed 100644
--- a/ash/public/cpp/holding_space/holding_space_model.h
+++ b/ash/public/cpp/holding_space/holding_space_model.h
@@ -65,7 +65,7 @@
     // context menu and possibly, in the case of cancel/pause/resume, as
     // primary/secondary actions on the item view itself.
     ScopedItemUpdate& SetInProgressCommands(
-        std::set<HoldingSpaceCommandId> in_progress_commands);
+        std::vector<HoldingSpaceItem::InProgressCommand> in_progress_commands);
 
     // Sets whether the image for the item should be forcibly invalidated and
     // returns a reference to `this`.
@@ -100,7 +100,8 @@
     absl::optional<absl::optional<std::u16string>> accessible_name_;
     absl::optional<base::FilePath> file_path_;
     absl::optional<GURL> file_system_url_;
-    absl::optional<std::set<HoldingSpaceCommandId>> in_progress_commands_;
+    absl::optional<std::vector<HoldingSpaceItem::InProgressCommand>>
+        in_progress_commands_;
     absl::optional<HoldingSpaceProgress> progress_;
     absl::optional<absl::optional<std::u16string>> secondary_text_;
     absl::optional<absl::optional<cros_styles::ColorName>>
diff --git a/ash/public/cpp/holding_space/holding_space_model_unittest.cc b/ash/public/cpp/holding_space/holding_space_model_unittest.cc
index a94f1459..06e8da3 100644
--- a/ash/public/cpp/holding_space/holding_space_model_unittest.cc
+++ b/ash/public/cpp/holding_space/holding_space_model_unittest.cc
@@ -5,7 +5,6 @@
 #include "ash/public/cpp/holding_space/holding_space_model.h"
 
 #include <memory>
-#include <set>
 #include <vector>
 
 #include "ash/public/cpp/holding_space/holding_space_image.h"
@@ -17,6 +16,7 @@
 #include "base/scoped_observation.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/chromeos/styles/cros_styles.h"
+#include "ui/gfx/paint_vector_icon.h"
 
 namespace ash {
 namespace {
@@ -25,6 +25,13 @@
 
 // Helpers ---------------------------------------------------------------------
 
+HoldingSpaceItem::InProgressCommand CreateInProgressCommand(
+    HoldingSpaceCommandId command_id) {
+  return HoldingSpaceItem::InProgressCommand(command_id, /*label_id=*/-1,
+                                             &gfx::kNoneIcon,
+                                             /*handler=*/base::DoNothing());
+}
+
 std::vector<HoldingSpaceItem::Type> GetHoldingSpaceItemTypes() {
   std::vector<HoldingSpaceItem::Type> types;
   for (int i = 0; i <= static_cast<int>(HoldingSpaceItem::Type::kMaxValue); ++i)
@@ -244,8 +251,9 @@
   EXPECT_EQ(item_ptr->file_system_url(), updated_file_system_url);
 
   // Update in-progress commands.
-  std::set<HoldingSpaceCommandId> in_progress_commands;
-  in_progress_commands.insert(HoldingSpaceCommandId::kCancelItem);
+  std::vector<HoldingSpaceItem::InProgressCommand> in_progress_commands;
+  in_progress_commands.push_back(
+      CreateInProgressCommand(HoldingSpaceCommandId::kCancelItem));
   model()
       .UpdateItem(item_ptr->id())
       ->SetInProgressCommands(in_progress_commands);
@@ -291,7 +299,8 @@
             cros_styles::ColorName::kTextColorAlert);
 
   // Update all attributes.
-  in_progress_commands.insert(HoldingSpaceCommandId::kPauseItem);
+  in_progress_commands.push_back(
+      CreateInProgressCommand(HoldingSpaceCommandId::kPauseItem));
   updated_file_path = base::FilePath("again_updated_file_path");
   updated_file_system_url = GURL("filesystem::again_updated_file_system_url");
   model()
@@ -388,8 +397,9 @@
   EXPECT_TRUE(item_ptr->in_progress_commands().empty());
 
   // Update in-progress commands.
-  std::set<HoldingSpaceCommandId> in_progress_commands;
-  in_progress_commands.insert(HoldingSpaceCommandId::kCancelItem);
+  std::vector<HoldingSpaceItem::InProgressCommand> in_progress_commands;
+  in_progress_commands.push_back(
+      CreateInProgressCommand(HoldingSpaceCommandId::kCancelItem));
   model()
       .UpdateItem(item_ptr->id())
       ->SetInProgressCommands(in_progress_commands);
@@ -399,7 +409,8 @@
   EXPECT_EQ(item_ptr->in_progress_commands(), in_progress_commands);
 
   // Update in-progress commands again.
-  in_progress_commands.insert(HoldingSpaceCommandId::kPauseItem);
+  in_progress_commands.push_back(
+      CreateInProgressCommand(HoldingSpaceCommandId::kPauseItem));
   model()
       .UpdateItem(item_ptr->id())
       ->SetInProgressCommands(in_progress_commands);
@@ -410,7 +421,8 @@
 
   // Update in-progress commands and progress to completion. Because the item is
   // no longer in progress, in-progress commands should be empty.
-  in_progress_commands.insert(HoldingSpaceCommandId::kResumeItem);
+  in_progress_commands.push_back(
+      CreateInProgressCommand(HoldingSpaceCommandId::kResumeItem));
   model()
       .UpdateItem(item_ptr->id())
       ->SetInProgressCommands(in_progress_commands)
diff --git a/ash/public/cpp/holding_space/holding_space_util.cc b/ash/public/cpp/holding_space/holding_space_util.cc
index 4b460d2..d2b6490 100644
--- a/ash/public/cpp/holding_space/holding_space_util.cc
+++ b/ash/public/cpp/holding_space/holding_space_util.cc
@@ -48,5 +48,27 @@
   }
 }
 
+bool SupportsInProgressCommand(const HoldingSpaceItem* item,
+                               HoldingSpaceCommandId command_id) {
+  DCHECK(IsInProgressCommand(command_id));
+  return std::any_of(
+      item->in_progress_commands().begin(), item->in_progress_commands().end(),
+      [&](const HoldingSpaceItem::InProgressCommand& in_progress_command) {
+        return in_progress_command.command_id == command_id;
+      });
+}
+
+bool ExecuteInProgressCommand(const HoldingSpaceItem* item,
+                              HoldingSpaceCommandId command_id) {
+  DCHECK(IsInProgressCommand(command_id));
+  for (const auto& in_progress_command : item->in_progress_commands()) {
+    if (in_progress_command.command_id == command_id) {
+      in_progress_command.handler.Run(item, command_id);
+      return true;
+    }
+  }
+  return false;
+}
+
 }  // namespace holding_space_util
 }  // namespace ash
diff --git a/ash/public/cpp/holding_space/holding_space_util.h b/ash/public/cpp/holding_space/holding_space_util.h
index 663c766ba..14fe83d 100644
--- a/ash/public/cpp/holding_space/holding_space_util.h
+++ b/ash/public/cpp/holding_space/holding_space_util.h
@@ -21,6 +21,19 @@
 // view itself.
 ASH_PUBLIC_EXPORT bool IsInProgressCommand(HoldingSpaceCommandId command_id);
 
+// Returns whether the specified `item` supports a given in-progress command
+// which is shown in the `item`'s context menu and possibly, in the case of
+// cancel/pause/resume, as primary/secondary actions on the `item` view itself.
+ASH_PUBLIC_EXPORT bool SupportsInProgressCommand(
+    const HoldingSpaceItem* item,
+    HoldingSpaceCommandId command_id);
+
+// Attempts to execute the in-progress command specified by `command_id` on
+// `item`, returning whether the attempt was successful.
+ASH_PUBLIC_EXPORT bool ExecuteInProgressCommand(
+    const HoldingSpaceItem* item,
+    HoldingSpaceCommandId command_id);
+
 }  // namespace holding_space_util
 }  // namespace ash
 
diff --git a/ash/public/cpp/holding_space/mock_holding_space_client.h b/ash/public/cpp/holding_space/mock_holding_space_client.h
index 3ad946d0..37c7f286 100644
--- a/ash/public/cpp/holding_space/mock_holding_space_client.h
+++ b/ash/public/cpp/holding_space/mock_holding_space_client.h
@@ -36,10 +36,6 @@
               (const base::FilePath& file_path),
               (override));
   MOCK_METHOD(void,
-              CancelItems,
-              (const std::vector<const HoldingSpaceItem*>& items),
-              (override));
-  MOCK_METHOD(void,
               CopyImageToClipboard,
               (const HoldingSpaceItem& item, SuccessCallback callback),
               (override));
@@ -55,10 +51,6 @@
                SuccessCallback callback),
               (override));
   MOCK_METHOD(void,
-              PauseItems,
-              (const std::vector<const HoldingSpaceItem*>& items),
-              (override));
-  MOCK_METHOD(void,
               PinFiles,
               (const std::vector<base::FilePath>& file_paths),
               (override));
@@ -67,10 +59,6 @@
               (const std::vector<const HoldingSpaceItem*>& items),
               (override));
   MOCK_METHOD(void,
-              ResumeItems,
-              (const std::vector<const HoldingSpaceItem*>& items),
-              (override));
-  MOCK_METHOD(void,
               ShowItemInFolder,
               (const HoldingSpaceItem& item, SuccessCallback callback),
               (override));
diff --git a/ash/shelf/login_shelf_view_pixeltest.cc b/ash/shelf/login_shelf_view_pixeltest.cc
index 1fddd60..7b671be 100644
--- a/ash/shelf/login_shelf_view_pixeltest.cc
+++ b/ash/shelf/login_shelf_view_pixeltest.cc
@@ -2,7 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "ash/focus_cycler.h"
 #include "ash/login/ui/login_test_base.h"
+#include "ash/shelf/login_shelf_view.h"
+#include "ash/shelf/shelf.h"
+#include "ash/shelf/shelf_widget.h"
 #include "ash/test/ash_pixel_diff_test_helper.h"
 
 namespace ash {
@@ -14,11 +18,15 @@
   LoginShelfViewPixelTest& operator=(const LoginShelfViewPixelTest&) = delete;
   ~LoginShelfViewPixelTest() override = default;
 
+  // Returns the screenshot name prefix.
+  virtual const char* GetScreenshotPrefix() const {
+    return "login_shelf_view_pixel";
+  }
+
   // LoginTestBase:
   void SetUp() override {
     LoginTestBase::SetUp();
-    pixel_test_helper_.InitSkiaGoldPixelDiff(
-        /*screenshot_prefix=*/"login_shelf_view_pixel");
+    pixel_test_helper_.InitSkiaGoldPixelDiff(GetScreenshotPrefix());
 
     // The wallpaper has been set when the pixel test is set up.
     ShowLoginScreen(/*set_wallpaper=*/false);
@@ -53,4 +61,41 @@
       "focus_on_add_person_button"));
 }
 
+// Used to verify the login shelf features with a policy wallpaper.
+class LoginShelfWithPolicyWallpaperPixelTest : public LoginShelfViewPixelTest {
+ public:
+  LoginShelfWithPolicyWallpaperPixelTest() {
+    pixel_test::InitParams init_params;
+    init_params.wallpaper_init_type = pixel_test::WallpaperInitType::kPolicy;
+    SetPixelTestInitParam(init_params);
+  }
+  LoginShelfWithPolicyWallpaperPixelTest(
+      const LoginShelfWithPolicyWallpaperPixelTest&) = delete;
+  LoginShelfWithPolicyWallpaperPixelTest& operator=(
+      const LoginShelfWithPolicyWallpaperPixelTest&) = delete;
+  ~LoginShelfWithPolicyWallpaperPixelTest() override = default;
+
+  // LoginShelfViewPixelTest:
+  const char* GetScreenshotPrefix() const override {
+    return "login_shelf_view_policy_wallpaper_pixel";
+  }
+};
+
+// Verifies that focusing on the login shelf widget with a policy wallpaper
+// works as expected (see https://crbug.com/1197052).
+TEST_F(LoginShelfWithPolicyWallpaperPixelTest, FocusOnShutdownButton) {
+  views::View* shutdown_button =
+      GetPrimaryShelf()->shelf_widget()->GetLoginShelfView()->GetViewByID(
+          LoginShelfView::kShutdown);
+  views::Widget* shutdown_button_widget = shutdown_button->GetWidget();
+
+  // Focus on the shutdown button.
+  Shell::Get()->focus_cycler()->FocusWidget(shutdown_button_widget);
+  shutdown_button_widget->Activate();
+  shutdown_button_widget->GetFocusManager()->SetFocusedView(shutdown_button);
+
+  EXPECT_TRUE(
+      pixel_test_helper_.ComparePrimaryFullScreen("focus_on_shutdown_button"));
+}
+
 }  // namespace ash
diff --git a/ash/shelf/shelf_context_menu_model.cc b/ash/shelf/shelf_context_menu_model.cc
index 0beb8f5..30df54c 100644
--- a/ash/shelf/shelf_context_menu_model.cc
+++ b/ash/shelf/shelf_context_menu_model.cc
@@ -206,18 +206,16 @@
                                        ui::kColorAshSystemUIMenuIcon));
   }
 
-  if (Shell::Get()->wallpaper_controller()->CanOpenWallpaperPicker()) {
-    if (ash::features::IsPersonalizationHubEnabled()) {
-      AddItemWithStringIdAndIcon(
-          MENU_PERSONALIZATION_HUB, IDS_AURA_OPEN_PERSONALIZATION_HUB,
-          ui::ImageModel::FromVectorIcon(kPaintBrushIcon,
-                                         ui::kColorAshSystemUIMenuIcon));
-    } else {
-      AddItemWithStringIdAndIcon(
-          MENU_CHANGE_WALLPAPER, IDS_AURA_SET_DESKTOP_WALLPAPER,
-          ui::ImageModel::FromVectorIcon(kWallpaperIcon,
-                                         ui::kColorAshSystemUIMenuIcon));
-    }
+  if (ash::features::IsPersonalizationHubEnabled()) {
+    AddItemWithStringIdAndIcon(
+        MENU_PERSONALIZATION_HUB, IDS_AURA_OPEN_PERSONALIZATION_HUB,
+        ui::ImageModel::FromVectorIcon(kPaintBrushIcon,
+                                       ui::kColorAshSystemUIMenuIcon));
+  } else if (Shell::Get()->wallpaper_controller()->CanOpenWallpaperPicker()) {
+    AddItemWithStringIdAndIcon(
+        MENU_CHANGE_WALLPAPER, IDS_AURA_SET_DESKTOP_WALLPAPER,
+        ui::ImageModel::FromVectorIcon(kWallpaperIcon,
+                                       ui::kColorAshSystemUIMenuIcon));
   }
 }
 
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb
index ad74ade..6132df23 100644
--- a/ash/strings/ash_strings_af.xtb
+++ b/ash/strings/ash_strings_af.xtb
@@ -327,6 +327,7 @@
 <translation id="2894949423239620203">Kabel kan werkverrigting beïnvloed</translation>
 <translation id="2903844815300039659">Gekoppel aan <ph name="NAME" />, <ph name="STRENGTH" /></translation>
 <translation id="2914580577416829331">Skermkiekies</translation>
+<translation id="2925246975070834767">Probeer outozoem sodat jy in die middel van skerm is. Skakel dit aan in Kitsinstellings.</translation>
 <translation id="2941112035454246133">Laag</translation>
 <translation id="2942350706960889382">Gedokte vergrootglas</translation>
 <translation id="2942516765047364088">Rakposisie</translation>
@@ -635,6 +636,7 @@
 <translation id="4628757576491864469">Toestelle</translation>
 <translation id="4631891353005174729"><ph name="APP_NAME_TYPE" />, stergradering <ph name="RATING_SCORE" /></translation>
 <translation id="4633185660152240791">{0,plural, =1{Verander toestel binne 'n dag na vorige weergawe}other{Verander toestel binne # dae na vorige weergawe}}</translation>
+<translation id="4633636853437260449">Druk Ctrl+W om uit te vee</translation>
 <translation id="4642092649622328492">Neem gedeeltelike skermkiekie</translation>
 <translation id="4644727592819780893">Streek is te klein om kameravoorskou te wys</translation>
 <translation id="4648249871170053485"><ph name="APP_NAME" />, programaanbeveling</translation>
@@ -898,6 +900,7 @@
 <translation id="619279033188484792">Bekyk jou foon se onlangse foto's, media en kennisgewings op jou <ph name="DEVICE_TYPE" /></translation>
 <translation id="619335566042889110">Laai nou ten volle</translation>
 <translation id="6193431488227440296">Ontwikkeling</translation>
+<translation id="6210042900243040400">Koppel <ph name="NAME" /> wat vroeër in <ph name="EMAIL" /> gestoor is</translation>
 <translation id="6220928844947387476">Jy kan jouself en jou skerm nou op dieselfde tyd opneem</translation>
 <translation id="622484624075952240">Af</translation>
 <translation id="6231419273573514727">Randtoestelwerkverrigting kan beperk wees</translation>
@@ -1399,7 +1402,6 @@
 <translation id="9168436347345867845">Doen dit later</translation>
 <translation id="9178475906033259337">Wys tans 1 resultaat vir <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Met hierdie kenmerk kan jy vinnig toegang tot enige aangemelde gebruiker kry sonder dat 'n wagwoord nodig is. Gebruik hierdie kenmerk net met rekeninge wat jy vertrou.</translation>
-<translation id="9180906851711123156">Druk Ctrl+W om toe te maak</translation>
 <translation id="9183456764293710005">Volskermvergrootglas</translation>
 <translation id="9193626018745640770">Saai tans op 'n onbekende ontvanger uit</translation>
 <translation id="9194617393863864469">Meld 'n ander gebruiker aan …</translation>
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb
index eb422e1..110a183 100644
--- a/ash/strings/ash_strings_am.xtb
+++ b/ash/strings/ash_strings_am.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">በኋላ ያድርጉት</translation>
 <translation id="9178475906033259337">1 ውጤት ለ <ph name="QUERY" /> በማሳየት ላይ</translation>
 <translation id="9179259655489829027">ይህ ባህሪ የይለፍ ቃል ሳያስፈልገዎት ማንኛውም ወደ መለያ የገባ ተጠቃሚን በፍጥነት እንዲደርሱ ያስችልዎታል። ይህን ባህሪ በሚያምኗቸው መለያዎች ላይ ብቻ ይጠቀሙበት።</translation>
-<translation id="9180906851711123156">ለመዝጋት Ctrl+Wን ይጫኑ</translation>
 <translation id="9183456764293710005">የሙሉ ማያ ገጽ ማጉያ</translation>
 <translation id="9193626018745640770">በማይታወቅ ተቀባይ ላይ Cast በማድረግ ላይ</translation>
 <translation id="9194617393863864469">ሌላ ተጠቃሚ በመለያ አስገባ...</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb
index 38bb85a1be..adec5fa 100644
--- a/ash/strings/ash_strings_ar.xtb
+++ b/ash/strings/ash_strings_ar.xtb
@@ -761,6 +761,16 @@
 <translation id="5393156353051693207">انقر مع الاستمرار على أي مكان على الشاشة لإعادة ترتيب التطبيقات</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> في أعلى <ph name="IN_PLACE_APP" />، يُرجى التحرير لإنشاء مجلد.</translation>
 <translation id="5397578532367286026">‏يُمكن للمدير مراجعة الاستخدام والسجل الخاص بهذا المستخدم (<ph name="MANAGER_EMAIL" />) على chrome.com.</translation>
+<translation id="5399673806694250334">شريط الحالة، الوقت <ph name="TIME" />،
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />،
+        <ph name="MIC" />،
+        <ph name="CAMERA" />،
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />،
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">الإعدادات السريعة: اضغط على مفتاح البحث + السهم المتجه لليسار للوصول إلى مركز الإشعارات.</translation>
 <translation id="5426063383988017631">تم إغلاق قائمة الإعدادات.</translation>
 <translation id="5428899915242071344">بدء التحديد</translation>
@@ -1400,7 +1410,6 @@
 <translation id="9168436347345867845">تنفيذ ذلك لاحقًا</translation>
 <translation id="9178475906033259337">عرض نتيجة واحدة عن <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">تسمح لك هذه الميزة بالوصول بسرعة إلى أي مستخدم سجّل دخوله بدون طلب كلمة مرور. لا تستخدم هذه الميزة إلا مع الحسابات التي تثق بها.</translation>
-<translation id="9180906851711123156">‏اضغَط على Ctrl+W للإغلاق</translation>
 <translation id="9183456764293710005">المكبِّر بملء الشاشة</translation>
 <translation id="9193626018745640770">إرسال إلى مستلم غير معروف</translation>
 <translation id="9194617393863864469">تسجيل دخول مستخدم آخر...</translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb
index 7532d81..b365560 100644
--- a/ash/strings/ash_strings_as.xtb
+++ b/ash/strings/ash_strings_as.xtb
@@ -897,6 +897,7 @@
 <translation id="619279033188484792">আপোনাৰ <ph name="DEVICE_TYPE" />ত নিজৰ ফ’নটোৰ শেহতীয়া ফট, মিডিয়া আৰু জাননী চাওক</translation>
 <translation id="619335566042889110">এতিয়াই সম্পূৰ্ণৰূপে চাৰ্জ কৰক</translation>
 <translation id="6193431488227440296">বিকাশকৰ্তা</translation>
+<translation id="6210042900243040400">আগতে <ph name="EMAIL" />ত ছেভ হৈ থকা <ph name="NAME" /> সংযোগ কৰক</translation>
 <translation id="6220928844947387476">আপুনি এতিয়া একে সময়তে নিজক আৰু আপোনাৰ স্ক্ৰীনখন ৰেকৰ্ড কৰিব পাৰে</translation>
 <translation id="622484624075952240">Down</translation>
 <translation id="6231419273573514727">পৰিধীয় আহিলাৰ কাৰ্যক্ষমতা সীমিত হ’ব পাৰে</translation>
@@ -1398,7 +1399,6 @@
 <translation id="9168436347345867845">এইটো পিছত কৰিব</translation>
 <translation id="9178475906033259337"><ph name="QUERY" />ৰ বাবে ১ টা ফলাফল দেখুৱাই থকা হৈছে</translation>
 <translation id="9179259655489829027">এই সুবিধাটোৱে আপোনাক যিকোনো ছাইন ইন হৈ থকা ব্যৱহাৰকাৰীৰ প্ৰ’ফাইললৈ পাছৱর্ডৰ অবিহনেই এক্সেছ কৰিবলৈ দিয়ে। আপুনি বিশ্বাস কৰা একাউণ্টসমূহৰ ক্ষেত্ৰতহে কেৱল এই সুবিধা ব্যৱহাৰ কৰক।</translation>
-<translation id="9180906851711123156">বন্ধ কৰিবলৈ Ctrl+W টিপক</translation>
 <translation id="9183456764293710005">পূৰ্ণ স্ক্রীনৰ বিৱৰ্ধক</translation>
 <translation id="9193626018745640770">কোনো অজ্ঞাত ৰিচিভাৰ কাষ্ট কৰি থকা হৈছে</translation>
 <translation id="9194617393863864469">অন্য ব্যৱহাৰকাৰীক ছাইন ইন কৰাওক...</translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb
index 1458361..bd7d3f5 100644
--- a/ash/strings/ash_strings_az.xtb
+++ b/ash/strings/ash_strings_az.xtb
@@ -897,6 +897,7 @@
 <translation id="619279033188484792"><ph name="DEVICE_TYPE" /> cihazında telefonunuzun son fotolarına, media və bildirişlərinə baxın</translation>
 <translation id="619335566042889110">İndi tam şarj edin</translation>
 <translation id="6193431488227440296">Dev</translation>
+<translation id="6210042900243040400">Daha əvvəl <ph name="EMAIL" /> hesabında saxlanmış <ph name="NAME" /> cihazını qoşun</translation>
 <translation id="6220928844947387476">İndi özünüzü və ekranınızı eyni vaxtda çəkə bilərsiniz</translation>
 <translation id="622484624075952240">Aşağı</translation>
 <translation id="6231419273573514727">Periferik cihaz performansı məhdud ola bilər</translation>
@@ -1398,7 +1399,6 @@
 <translation id="9168436347345867845">Daha sonra edin</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> üzrə 1 nəticə göstərilir</translation>
 <translation id="9179259655489829027">Bu funksiya parol tələb etmədən hesaba daxil olmuş istənilən istifadəçiyə sürətli girişə imkan verir. Bu funksiyanı yalnız güvəndiyiniz hesablarla işlədin.</translation>
-<translation id="9180906851711123156">Bağlamaq üçün Ctrl + W düymələrinə basın</translation>
 <translation id="9183456764293710005">Tam Ekran Böyüdücüsü</translation>
 <translation id="9193626018745640770">Naməlum alıcı yayımı</translation>
 <translation id="9194617393863864469">Digər istifadəçi hesabına daxil olun...</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb
index b1040df..5685d87 100644
--- a/ash/strings/ash_strings_be.xtb
+++ b/ash/strings/ash_strings_be.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">Пазней</translation>
 <translation id="9178475906033259337">Паказваецца 1 вынік па запыце "<ph name="QUERY" />"</translation>
 <translation id="9179259655489829027">Гэта функцыя дазваляе хутка атрымліваць доступ да карыстальнікаў, якія выканалі ўваход, – без уводу пароля. Выкарыстоўвайце гэту функцыю толькі на ўліковых запісах, якім давяраеце.</translation>
-<translation id="9180906851711123156">Каб закрыць, націсніце Ctrl + W</translation>
 <translation id="9183456764293710005">Поўнаэкранная лупа</translation>
 <translation id="9193626018745640770">Трансляцыя невядомаму атрымальніку</translation>
 <translation id="9194617393863864469">Выканаць уваход для іншага карыстальніка...</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb
index 9354ad73..b7c522b 100644
--- a/ash/strings/ash_strings_bg.xtb
+++ b/ash/strings/ash_strings_bg.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">Докоснете и задръжте произволно място, за да пренаредите приложенията си</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> е върху <ph name="IN_PLACE_APP" />. Освободете, за да създадете папка.</translation>
 <translation id="5397578532367286026">Данните за употребата и историята на този потребител могат да се преглеждат от мениджъра (<ph name="MANAGER_EMAIL" />) на адрес chrome.com.</translation>
+<translation id="5399673806694250334">Лента на състоянието, часът е <ph name="TIME" />,
+        <ph name="BATTERY" />,
+        <ph name="CHANNEL" />,
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />,
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />,
+        <ph name="LOCALE" />.</translation>
 <translation id="5400461572260843123">Бързи настройки – за достъп до центъра за известия натиснете клавиша „търсене“ + стрелката наляво.</translation>
 <translation id="5426063383988017631">Менюто за настройки е затворено</translation>
 <translation id="5428899915242071344">Стартиране на избирането</translation>
@@ -1398,7 +1408,6 @@
 <translation id="9168436347345867845">По-късно</translation>
 <translation id="9178475906033259337">Показан е 1 резултат за „<ph name="QUERY" />“</translation>
 <translation id="9179259655489829027">С тази функция получавате бърз достъп без парола до всеки влязъл потребител. Използвайте я само с надеждни профили.</translation>
-<translation id="9180906851711123156">Натиснете Ctrl + W за затваряне</translation>
 <translation id="9183456764293710005">Лупа за увеличаване на целия екран</translation>
 <translation id="9193626018745640770">Предава се към неизвестен приемник</translation>
 <translation id="9194617393863864469">Влизане в профила на друг потребител...</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb
index ba8dd20..0d4b7da5 100644
--- a/ash/strings/ash_strings_bn.xtb
+++ b/ash/strings/ash_strings_bn.xtb
@@ -327,6 +327,7 @@
 <translation id="2894949423239620203">কেবেলের মাধ্যমে কানেক্ট করা থাকলে পারফর্ম্যান্সে প্রভাব পড়তে পারে</translation>
 <translation id="2903844815300039659"><ph name="NAME" /> এর সাথে সংযুক্ত আছে, <ph name="STRENGTH" /></translation>
 <translation id="2914580577416829331">স্ক্রিন ক্যাপচার</translation>
+<translation id="2925246975070834767">'অটোজুম' ব্যবহার করুন, যাতে আপনি স্ক্রিনের মাঝখানে থাকেন। 'দ্রুত সেটিংস' থেকে এটি চালু করুন।</translation>
 <translation id="2941112035454246133">নিম্ন</translation>
 <translation id="2942350706960889382">ডক করা ম্যাগনিফায়ার</translation>
 <translation id="2942516765047364088">তাকের লোকেশন</translation>
@@ -634,6 +635,7 @@
 <translation id="4628757576491864469">ডিভাইস</translation>
 <translation id="4631891353005174729"><ph name="APP_NAME_TYPE" />, <ph name="RATING_SCORE" /> স্টার রেটিং</translation>
 <translation id="4633185660152240791">{0,plural, =1{এক দিনের মধ্যে ডিভাইসটি আগের ভার্সনে ফিরিয়ে নিয়ে যান}one{# দিনের মধ্যে ডিভাইসটি আগের ভার্সনে ফিরিয়ে নিয়ে যান}other{# দিনের মধ্যে ডিভাইসটি আগের ভার্সনে ফিরিয়ে নিয়ে যান}}</translation>
+<translation id="4633636853437260449">মুছে ফেলতে Ctrl + W প্রেস করুন</translation>
 <translation id="4642092649622328492">আংশিক স্ক্রিনশট নিন</translation>
 <translation id="4644727592819780893">ক্যাপচার করার সারফেস ক্যামেরা প্রিভিউয়ের জন্য খুবই ছোট</translation>
 <translation id="4648249871170053485"><ph name="APP_NAME" />, অ্যাপের সাজেশন</translation>
@@ -897,6 +899,7 @@
 <translation id="619279033188484792">আপনার <ph name="DEVICE_TYPE" />-এ আপনার ফোনের সাম্প্রতিক ফটো, মিডিয়া এবং বিজ্ঞপ্তি দেখুন</translation>
 <translation id="619335566042889110">এখন সম্পূর্ণ চার্জ করুন</translation>
 <translation id="6193431488227440296">Dev</translation>
+<translation id="6210042900243040400">আগে থেকে <ph name="EMAIL" />-এ সেভ করা <ph name="NAME" /> কানেক্ট করুন</translation>
 <translation id="6220928844947387476">আপনি এখন একই সময়ে নিজে এবং আপনার স্ক্রিন রেকর্ড করতে পারবেন</translation>
 <translation id="622484624075952240">নিচের</translation>
 <translation id="6231419273573514727">পেরিফেরাল পারফর্ম্যন্স সীমাবদ্ধ হতে পারে</translation>
@@ -1398,7 +1401,6 @@
 <translation id="9168436347345867845">এটি পরে করুন</translation>
 <translation id="9178475906033259337"><ph name="QUERY" />-এর জন্য ১টি ফলাফল দেখানো হচ্ছে</translation>
 <translation id="9179259655489829027">এই বৈশিষ্ট্যের মাধ্যমে আপনি কোনও পাসওয়ার্ড ছাড়াই সাইন-ইন করা যেকোনও ব্যবহারকারীকে দ্রুত অ্যাক্সেস করতে পারেন। এটি শুধুমাত্র বিশ্বস্ত অ্যাকাউন্টেই ব্যবহার করুন।</translation>
-<translation id="9180906851711123156">বন্ধ করতে Ctrl ও W কী একসাথে প্রেস করুন</translation>
 <translation id="9183456764293710005">ফুল-স্ক্রিন ম্যাগনিফায়ার</translation>
 <translation id="9193626018745640770">অজানা ডিভাইসে কাস্ট করা হচ্ছে</translation>
 <translation id="9194617393863864469">অন্য ব্যবহারকারীকে সাইন-ইন করান...</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb
index 62651fc..826bf959 100644
--- a/ash/strings/ash_strings_bs.xtb
+++ b/ash/strings/ash_strings_bs.xtb
@@ -759,7 +759,7 @@
 <translation id="5393156353051693207">Dodirnite i zadržite bilo gdje da promijenite redoslijed aplikacija</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> prekriva aplikaciju <ph name="IN_PLACE_APP" />. Pustite da kreirate folder.</translation>
 <translation id="5397578532367286026">Upravitelj (<ph name="MANAGER_EMAIL" />) može pregledavati upotrebu i povijest tog korisnika na web-lokaciji chrome.com.</translation>
-<translation id="5399673806694250334">Traka statusa, vrijeme <ph name="TIME" />,
+<translation id="5399673806694250334">Statusna ladica, vrijeme <ph name="TIME" />,
         <ph name="BATTERY" />
         <ph name="CHANNEL" />
         <ph name="NETWORK" />,
@@ -1409,7 +1409,6 @@
 <translation id="9168436347345867845">Uradit ću to kasnije</translation>
 <translation id="9178475906033259337">Prikaz 1 rezultata za upit <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Ova funkcija vam omogućava da brzo pristupite prijavljenim korisnicima bez lozinke. Ovu funkciju koristite samo s računima kojima vjerujete.</translation>
-<translation id="9180906851711123156">Pritisnite Ctrl + W da zatvorite</translation>
 <translation id="9183456764293710005">Povećalo za cijeli ekran</translation>
 <translation id="9193626018745640770">Emitiranje na nepoznatom prijemniku</translation>
 <translation id="9194617393863864469">Prijavite još jednog korisnika...</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb
index f9b5743..2c7f342 100644
--- a/ash/strings/ash_strings_ca.xtb
+++ b/ash/strings/ash_strings_ca.xtb
@@ -533,7 +533,7 @@
 <translation id="4115378294792113321">Magenta</translation>
 <translation id="412298498316631026">finestra</translation>
 <translation id="4123259114412175274">Per desbloquejar el Chromebook, comprova que el Bluetooth del telèfon estigui activat</translation>
-<translation id="4125970834901680537">En mode de tauleta, no es poden reproduir en continu aplicacions. Torna-ho a provar en mode de portàtil.</translation>
+<translation id="4125970834901680537">No es poden reproduir aplicacions en continu en mode de tauleta. Torna-ho a provar en mode de portàtil.</translation>
 <translation id="4129129681837227511">Per veure notificacions a la pantalla de bloqueig, desbloqueja el dispositiu per canviar aquesta opció</translation>
 <translation id="4136724716305260864">Activada fins a l'alba</translation>
 <translation id="4146833061457621061">Reprodueix música</translation>
@@ -907,6 +907,7 @@
 <translation id="619279033188484792">Consulta les notificacions, els fitxers multimèdia i les fotos recents del telèfon al teu <ph name="DEVICE_TYPE" /></translation>
 <translation id="619335566042889110">Carrega completament ara</translation>
 <translation id="6193431488227440296">Desenvolupament</translation>
+<translation id="6210042900243040400">Connecta <ph name="NAME" />, desat anteriorment a <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Ara pots gravar-te a tu i gravar la teva pantalla alhora</translation>
 <translation id="622484624075952240">Avall</translation>
 <translation id="6231419273573514727">És possible que el rendiment dels perifèrics sigui limitat</translation>
@@ -1405,7 +1406,6 @@
 <translation id="9168436347345867845">Fes-ho més tard</translation>
 <translation id="9178475906033259337">S'està mostrant 1 resultat per a "<ph name="QUERY" />"</translation>
 <translation id="9179259655489829027">Aquesta funció et permet accedir ràpidament als usuaris que han iniciat la sessió sense haver d'introduir la contrasenya. Utilitza aquesta funció només amb comptes de confiança.</translation>
-<translation id="9180906851711123156">Prem Ctrl+W per tancar</translation>
 <translation id="9183456764293710005">Lupa de pantalla completa</translation>
 <translation id="9193626018745640770">S'està emetent contingut en un receptor desconegut</translation>
 <translation id="9194617393863864469">Inicia la sessió amb un altre usuari...</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb
index 6729994..038dc2c 100644
--- a/ash/strings/ash_strings_cs.xtb
+++ b/ash/strings/ash_strings_cs.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">Později</translation>
 <translation id="9178475906033259337">Zobrazuje se 1 výsledek pro dotaz <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Tato funkce umožňuje rychle získat přístup ke kterémukoliv přihlášenému uživateli, aniž by bylo potřeba zadávat heslo. Tuto funkci používejte pouze s účty, kterým důvěřujete.</translation>
-<translation id="9180906851711123156">Zavřete stisknutím kláves Ctrl + W</translation>
 <translation id="9183456764293710005">Zvětšení obrazovky</translation>
 <translation id="9193626018745640770">Odesílání do neznámého přijímače</translation>
 <translation id="9194617393863864469">Přihlásit dalšího uživatele...</translation>
diff --git a/ash/strings/ash_strings_cy.xtb b/ash/strings/ash_strings_cy.xtb
index b8e5da5..7eb7c03 100644
--- a/ash/strings/ash_strings_cy.xtb
+++ b/ash/strings/ash_strings_cy.xtb
@@ -897,6 +897,7 @@
 <translation id="619279033188484792">Gweld lluniau, cyfryngau, a hysbysebion diweddar eich ffôn ar eich <ph name="DEVICE_TYPE" /></translation>
 <translation id="619335566042889110">Gwefru'n llawn nawr</translation>
 <translation id="6193431488227440296">Dev</translation>
+<translation id="6210042900243040400">Cysylltu <ph name="NAME" /> a gadwyd yn flaenorol i <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Gallwch bellach recordio eich hun a'ch sgrîn ar yr un pryd</translation>
 <translation id="622484624075952240">I lawr</translation>
 <translation id="6231419273573514727">Mae'n bosib y bydd perfformiad y perifferol yn gyfyngedig</translation>
@@ -1398,7 +1399,6 @@
 <translation id="9168436347345867845">Gwneud e'n nes ymlaen</translation>
 <translation id="9178475906033259337">Wrthi'n dangos 1 canlyniad am <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Mae'r nodwedd hon yn caniatáu i chi gyrchu unrhyw ddefnyddiwr sydd wedi mewngofnodi yn gyflym heb fod angen cyfrinair. Defnyddiwch y nodwedd hon gyda'r cyfrifon rydych yn ymddiried ynddynt yn unig.</translation>
-<translation id="9180906851711123156">Pwyswch Ctrl+W i gau</translation>
 <translation id="9183456764293710005">Chwyddwr sgrîn lawn</translation>
 <translation id="9193626018745640770">Wrthi'n castio i dderbynnydd anhysbys</translation>
 <translation id="9194617393863864469">Mewngofnodi defnyddiwr arall...</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index 81869ad9..a3a82e9 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -1399,7 +1399,6 @@
 <translation id="9168436347345867845">Gør det senere</translation>
 <translation id="9178475906033259337">Viser ét resultat for <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Denne funktion giver dig hurtig adgang til alle brugere, der er logget ind, uden at du behøver at angive en adgangskode. Brug kun denne funktion til konti, du har tillid til.</translation>
-<translation id="9180906851711123156">Tryk på Ctrl + W for at lukke</translation>
 <translation id="9183456764293710005">Forstørrelse af fuld skærm</translation>
 <translation id="9193626018745640770">Caster på en ukendt modtager</translation>
 <translation id="9194617393863864469">Log ind med en anden bruger...</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb
index 8c30917..077fd8c77 100644
--- a/ash/strings/ash_strings_de.xtb
+++ b/ash/strings/ash_strings_de.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">Beliebige Stelle berühren und halten, um Apps neu zu sortieren</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> über <ph name="IN_PLACE_APP" />; loslassen, um Ordner zu erstellen.</translation>
 <translation id="5397578532367286026">Die Nutzung und der Verlauf des Nutzers sind für den Manager (<ph name="MANAGER_EMAIL" />) unter chrome.com einsehbar.</translation>
+<translation id="5399673806694250334">Statusleiste, Uhrzeit <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">Schnelleinstellungen, drücke Suchtaste + Linkspfeil, um das Benachrichtigungscenter zu öffnen.</translation>
 <translation id="5426063383988017631">Einstellungsmenü geschlossen</translation>
 <translation id="5428899915242071344">Auswahl starten</translation>
@@ -1398,7 +1408,6 @@
 <translation id="9168436347345867845">Später</translation>
 <translation id="9178475906033259337">1 Ergebnis für "<ph name="QUERY" />"</translation>
 <translation id="9179259655489829027">Dank dieser Funktion kannst du schnell auf alle angemeldeten Nutzerkonten zugreifen, ohne ein Passwort eingeben zu müssen. Verwende diese Funktion nur bei Konten, denen du vertraust.</translation>
-<translation id="9180906851711123156">Drücke zum Schließen Strg + W</translation>
 <translation id="9183456764293710005">Vollbildlupe</translation>
 <translation id="9193626018745640770">Streaming an unbekannten Empfänger</translation>
 <translation id="9194617393863864469">Weiteren Nutzer anmelden...</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb
index 1094d8a..c3c16d6 100644
--- a/ash/strings/ash_strings_el.xtb
+++ b/ash/strings/ash_strings_el.xtb
@@ -897,6 +897,7 @@
 <translation id="619279033188484792">Δείτε τις πρόσφατες φωτογραφίες, τα μέσα και τις ειδοποιήσεις του τηλεφώνου σας στη συσκευή <ph name="DEVICE_TYPE" />.</translation>
 <translation id="619335566042889110">Πλήρης φόρτιση τώρα</translation>
 <translation id="6193431488227440296">Προγραμματιστές</translation>
+<translation id="6210042900243040400">Σύνδεση της συσκευής <ph name="NAME" /> που είχε αποθηκευτεί στη διεύθυνση <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Μπορείτε πλέον να κάνετε ταυτόχρονη εγγραφή του εαυτού σας και της οθόνης σας.</translation>
 <translation id="622484624075952240">Κάτω</translation>
 <translation id="6231419273573514727">Η απόδοση των περιφερειακών ενδέχεται να είναι περιορισμένη</translation>
@@ -1398,7 +1399,6 @@
 <translation id="9168436347345867845">Αργότερα</translation>
 <translation id="9178475906033259337">Προβολή 1 αποτελέσματος για την αναζήτηση <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Αυτή η λειτουργία σάς επιτρέπει να έχετε γρήγορη πρόσβαση σε οποιονδήποτε συνδεδεμένο χρήστη, χωρίς να απαιτείται κωδικός πρόσβασης. Χρησιμοποιήστε αυτήν τη λειτουργία μόνο με λογαριασμούς που εμπιστεύεστε.</translation>
-<translation id="9180906851711123156">Πατήστε Ctrl+W για κλείσιμο</translation>
 <translation id="9183456764293710005">Μεγέθυνση πλήρους οθόνης</translation>
 <translation id="9193626018745640770">Μετάδοση σε άγνωστο δέκτη</translation>
 <translation id="9194617393863864469">Σύνδεση με άλλον χρήστη...</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb
index 27117a5..99b8509 100644
--- a/ash/strings/ash_strings_en-GB.xtb
+++ b/ash/strings/ash_strings_en-GB.xtb
@@ -469,6 +469,7 @@
 <translation id="3708186454126126312">Previously connected</translation>
 <translation id="371370241367527062">Front microphone</translation>
 <translation id="3713734891607377840">Open when complete</translation>
+<translation id="3724279623330129812">Auto-zoom centred the camera</translation>
 <translation id="3726171378575546917"><ph name="UNAVAILABLE_APPS_ONE" />, <ph name="UNAVAILABLE_APPS_TWO" /> and <ph name="UNAVAILABLE_APPS_COUNT" /> more aren't on this device.</translation>
 <translation id="3735740477244556633">Sort by</translation>
 <translation id="3742055079367172538">Screenshot taken</translation>
@@ -1409,7 +1410,6 @@
 <translation id="9168436347345867845">Do it later</translation>
 <translation id="9178475906033259337">Displaying one result for <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">This feature allows you to quickly access any signed-in user without requiring a password. Only use this feature with accounts that you trust.</translation>
-<translation id="9180906851711123156">Press Ctrl+W to close</translation>
 <translation id="9183456764293710005">Full-screen Magnifier</translation>
 <translation id="9193626018745640770">Casting on an unknown receiver</translation>
 <translation id="9194617393863864469">Sign in another user...</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb
index f69453a..7e43055 100644
--- a/ash/strings/ash_strings_es-419.xtb
+++ b/ash/strings/ash_strings_es-419.xtb
@@ -1399,7 +1399,6 @@
 <translation id="9168436347345867845">Hacerlo más tarde</translation>
 <translation id="9178475906033259337">Mostrando 1 resultado para <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Esta función te permite alternar de forma rápida entre los usuarios que hayan accedido a su cuenta, sin necesidad de escribir la contraseña. Usa esta función solo con cuentas de confianza.</translation>
-<translation id="9180906851711123156">Presiona Ctrl + W para cerrar</translation>
 <translation id="9183456764293710005">Lupa de pantalla completa</translation>
 <translation id="9193626018745640770">Transmitiendo en un receptor desconocido</translation>
 <translation id="9194617393863864469">Acceder con otro usuario…</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb
index 4115d75..f1059cbc 100644
--- a/ash/strings/ash_strings_es.xtb
+++ b/ash/strings/ash_strings_es.xtb
@@ -1399,7 +1399,6 @@
 <translation id="9168436347345867845">En otro momento</translation>
 <translation id="9178475906033259337">Se muestra 1 resultado de <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Esta función te permite acceder rápidamente a cualquier usuario que haya iniciado sesión sin tener que introducir una contraseña. Solo debes usar esta función con las cuentas de confianza.</translation>
-<translation id="9180906851711123156">Pulsa Ctrl + W para cerrar</translation>
 <translation id="9183456764293710005">Lupa de pantalla completa</translation>
 <translation id="9193626018745640770">Se está enviando contenido a un receptor desconocido</translation>
 <translation id="9194617393863864469">Iniciar sesión con otro usuario...</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb
index f3d3b85..1764d39 100644
--- a/ash/strings/ash_strings_et.xtb
+++ b/ash/strings/ash_strings_et.xtb
@@ -898,6 +898,7 @@
 <translation id="619279033188484792">Seadmes <ph name="DEVICE_TYPE" /> oma telefoni hiljutiste fotode, meedia ja märguannete vaatamine</translation>
 <translation id="619335566042889110">Laadi nüüd täielikult täis</translation>
 <translation id="6193431488227440296">Arendaja</translation>
+<translation id="6210042900243040400">Ühendage <ph name="NAME" />, mis oli varem salvestatud kontole <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Saate nüüd ennast ja oma ekraanikuva salvestada samaaegselt</translation>
 <translation id="622484624075952240">Alla</translation>
 <translation id="6231419273573514727">Välisseadme toimivus võib olla piiratud</translation>
@@ -1399,7 +1400,6 @@
 <translation id="9168436347345867845">Teen seda hiljem</translation>
 <translation id="9178475906033259337">Kuvatud on 1 tulemus päringule <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">See funktsioon võimaldab teil parooli sisestamata pääseda kiirelt juurde kõigile sisselogitud kasutajatele. Kasutage seda funktsiooni vaid kontode puhul, mida usaldate.</translation>
-<translation id="9180906851711123156">Sulgemiseks vajutage klahve Ctrl + W</translation>
 <translation id="9183456764293710005">Täisekraani suurendus</translation>
 <translation id="9193626018745640770">Ülekandmine tundmatus vastuvõtjas</translation>
 <translation id="9194617393863864469">Logi sisse teine kasutaja ...</translation>
diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb
index 97d667e..333578c 100644
--- a/ash/strings/ash_strings_eu.xtb
+++ b/ash/strings/ash_strings_eu.xtb
@@ -898,6 +898,7 @@
 <translation id="619279033188484792">Ikusi telefonoko azken argazkiak, multimedia-elementuak eta jakinarazpenak <ph name="DEVICE_TYPE" /> bidez</translation>
 <translation id="619335566042889110">Kargatu guztiz</translation>
 <translation id="6193431488227440296">Garatzaileentzako kanala</translation>
+<translation id="6210042900243040400">Konektatu <ph name="EMAIL" /> helbidean gordeta zegoen gailu hau: <ph name="NAME" /></translation>
 <translation id="6220928844947387476">Zeure burua eta pantaila aldi berean graba ditzakezu orain</translation>
 <translation id="622484624075952240">Behera</translation>
 <translation id="6231419273573514727">Baliteke gailu periferikoaren errendimendua mugatuta egotea</translation>
@@ -1398,7 +1399,6 @@
 <translation id="9168436347345867845">Geroago</translation>
 <translation id="9178475906033259337">"<ph name="QUERY" />" bilaketaren emaitza bat dago ikusgai</translation>
 <translation id="9179259655489829027">Saioa hasita daukan edozein erabiltzaile bizkor atzitzea baimentzen dizu eginbideak, pasahitza idatzi beharrik gabe. Erabili eginbide hau kontu fidagarriekin soilik.</translation>
-<translation id="9180906851711123156">Ixteko, sakatu Ktrl + W</translation>
 <translation id="9183456764293710005">Pantaila osoko lupa</translation>
 <translation id="9193626018745640770">Hargailu ezezagun batera igortzen</translation>
 <translation id="9194617393863864469">Hasi saioa beste erabiltzaile batekin…</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
index df81ea3..60010408 100644
--- a/ash/strings/ash_strings_fa.xtb
+++ b/ash/strings/ash_strings_fa.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">بعداً انجام شود</translation>
 <translation id="9178475906033259337">نمایش ۱ نتیجه برای <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">این ویژگی امکان می‌دهد بدون نیاز به گذرواژه، به هر کاربری که به سیستم واردشده به‌سرعت دسترسی داشته باشید. تنها برای حساب‌های مورد اعتمادتان از این ویژگی استفاده کنید.</translation>
-<translation id="9180906851711123156">‏برای بستن، Ctrl+W را فشار دهید.</translation>
 <translation id="9183456764293710005">ذره‌بین تمام‌صفحه</translation>
 <translation id="9193626018745640770">درحال پخش محتوا به گیرنده ناشناس</translation>
 <translation id="9194617393863864469">ورود به سیستم حسابی دیگر...</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb
index d525da4..547e0e6 100644
--- a/ash/strings/ash_strings_fi.xtb
+++ b/ash/strings/ash_strings_fi.xtb
@@ -897,6 +897,7 @@
 <translation id="619279033188484792">Katsele puhelimesi viimeisimpiä kuvia, mediaa ja ilmoituksia <ph name="DEVICE_TYPE" />-laitteella</translation>
 <translation id="619335566042889110">Lataa täyteen nyt</translation>
 <translation id="6193431488227440296">Kehitysversio</translation>
+<translation id="6210042900243040400">Yhdistä <ph name="NAME" />, joka tallennettiin aiemmin tänne: <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Voit nyt kuvata itseäsi ja näyttöäsi samaan aikaan</translation>
 <translation id="622484624075952240">Alas</translation>
 <translation id="6231419273573514727">Lisälaitteen toiminta voi olla rajoitettua</translation>
@@ -1398,7 +1399,6 @@
 <translation id="9168436347345867845">Myöhemmin</translation>
 <translation id="9178475906033259337">Näytetään 1 tulos haulla <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Tämän ominaisuuden avulla kaikkia kirjautuneita käyttäjätilejä voi käyttää ilman salasanaa. Käytä tätä ominaisuutta vain luotettavien tilien kanssa.</translation>
-<translation id="9180906851711123156">Sulje painamalla Ctrl + W</translation>
 <translation id="9183456764293710005">Koko näytön suurennus</translation>
 <translation id="9193626018745640770">Suoratoistetaan tuntemattomaan vastaanottimeen</translation>
 <translation id="9194617393863864469">Kirjaa sisään toinen käyttäjä…</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb
index 52c410d9..663cd3b 100644
--- a/ash/strings/ash_strings_fil.xtb
+++ b/ash/strings/ash_strings_fil.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">Gawin ito sa ibang pagkakataon</translation>
 <translation id="9178475906033259337">Ipinapakita ang 1 resulta para sa <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Nagbibigay-daan sa iyo ang feature na ito para mabilis na ma-access ang anumang na-sign in na user nang hindi nangangailangan ng password. Gamitin lang ang feature na ito sa mga account na iyong pinagkakatiwalaan.</translation>
-<translation id="9180906851711123156">Pindutin ang Ctrl+W para isara</translation>
 <translation id="9183456764293710005">Pang-magnify ng Full-screen</translation>
 <translation id="9193626018745640770">Nagka-cast sa isang hindi pa natutukoy na tagatanggap</translation>
 <translation id="9194617393863864469">Mag-sign in ng isa pang user...</translation>
diff --git a/ash/strings/ash_strings_fr-CA.xtb b/ash/strings/ash_strings_fr-CA.xtb
index 78c77f6..2c70b2b 100644
--- a/ash/strings/ash_strings_fr-CA.xtb
+++ b/ash/strings/ash_strings_fr-CA.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">Maintenez le doigt n'importe où pour réorganiser vos applications</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> par-dessus <ph name="IN_PLACE_APP" />, puis relâchez-la pour créer un dossier.</translation>
 <translation id="5397578532367286026">Le gestionnaire (<ph name="MANAGER_EMAIL" />) peut examiner les actions effectuées par cet utilisateur, ainsi que son historique, sur chrome.com.</translation>
+<translation id="5399673806694250334">Barre d'état, heure <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">Paramètres rapides, appuyez sur la touche de recherche et la flèche de gauche pour accéder au centre de notifications.</translation>
 <translation id="5426063383988017631">Menu Paramètres fermé</translation>
 <translation id="5428899915242071344">Commencer la sélection</translation>
@@ -1399,7 +1409,6 @@
 <translation id="9168436347345867845">Plus tard</translation>
 <translation id="9178475906033259337">Affichage de 1 résultat pour <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Cette fonctionnalité vous permet d'accéder rapidement à tout compte connecté sans mot de passe. N'utilisez cette fonctionnalité que lorsqu'il s'agit de comptes fiables.</translation>
-<translation id="9180906851711123156">Appuyez sur Ctrl+W pour fermer</translation>
 <translation id="9183456764293710005">Loupe en mode plein écran</translation>
 <translation id="9193626018745640770">Diffusion sur un récepteur inconnu en cours…</translation>
 <translation id="9194617393863864469">Ouvrir une session avec un autre compte d'utilisateur...</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb
index 9d9f93f..9292e89a 100644
--- a/ash/strings/ash_strings_fr.xtb
+++ b/ash/strings/ash_strings_fr.xtb
@@ -278,7 +278,7 @@
 <translation id="2596078834055697711">Faire une capture de la fenêtre</translation>
 <translation id="2598725286293895280">Applis non compatibles dans le bureau</translation>
 <translation id="2607678425161541573">Connexion en ligne requise</translation>
-<translation id="2620016719323068571">Recherchez vos <ph name="CATEGORY" />, fichiers, applis, etc.…</translation>
+<translation id="2620016719323068571">Rechercher dans vos <ph name="CATEGORY" />, fichiers, applis, etc.…</translation>
 <translation id="2620436844016719705">Système</translation>
 <translation id="2621713457727696555">Sécurisé</translation>
 <translation id="263399434338050016">"Tout sélectionner"</translation>
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">Plus tard</translation>
 <translation id="9178475906033259337">1 résultat pour <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Cette fonctionnalité vous permet d'accéder rapidement à tout compte connecté sans avoir à indiquer le mot de passe. N'utilisez cette fonctionnalité que pour les comptes auxquels vous pouvez faire confiance.</translation>
-<translation id="9180906851711123156">Appuyez sur Ctrl+W pour fermer</translation>
 <translation id="9183456764293710005">Loupe plein écran</translation>
 <translation id="9193626018745640770">Destinataire de la diffusion inconnu</translation>
 <translation id="9194617393863864469">Se connecter avec un autre compte utilisateur…</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb
index d1892fb..adce046 100644
--- a/ash/strings/ash_strings_gl.xtb
+++ b/ash/strings/ash_strings_gl.xtb
@@ -1399,7 +1399,6 @@
 <translation id="9168436347345867845">Configurar máis tarde</translation>
 <translation id="9178475906033259337">Mostrando 1 resultado para "<ph name="QUERY" />"</translation>
 <translation id="9179259655489829027">Con esta función podes acceder rapidamente a calquera usuario que teña a sesión iniciada sen necesidade de introducir un contrasinal. Utiliza esta función só con contas nas que confíes.</translation>
-<translation id="9180906851711123156">Preme Control + W para pechar</translation>
 <translation id="9183456764293710005">Lupa de pantalla completa</translation>
 <translation id="9193626018745640770">Estase emitindo contido a un receptor descoñecido</translation>
 <translation id="9194617393863864469">Iniciar sesión con outro usuario...</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb
index 0e014df..5d2e48d 100644
--- a/ash/strings/ash_strings_gu.xtb
+++ b/ash/strings/ash_strings_gu.xtb
@@ -897,6 +897,7 @@
 <translation id="619279033188484792">તમારા <ph name="DEVICE_TYPE" /> પર તમારા ફોનના તાજેતરના ફોટા, મીડિયા અને નોટિફિકેશન જુઓ</translation>
 <translation id="619335566042889110">હવે પૂર્ણ ચાર્જ કરો</translation>
 <translation id="6193431488227440296">Dev</translation>
+<translation id="6210042900243040400">અગાઉ <ph name="EMAIL" /> પર સાચવેલા <ph name="NAME" />ને કનેક્ટ કરો</translation>
 <translation id="6220928844947387476">હવે તમે તમારું અને તમારી સ્ક્રીનનું રેકોર્ડિંગ એક સાથે કરી શકો છો</translation>
 <translation id="622484624075952240">Down</translation>
 <translation id="6231419273573514727">પેરિફેરલનું કાર્યપ્રદર્શન કદાચ મર્યાદિત કરવામાં આવી શકે</translation>
@@ -1398,7 +1399,6 @@
 <translation id="9168436347345867845">આ પછીથી કરો</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> માટે 1 પરિણામ બતાવી રહ્યાં છીએ</translation>
 <translation id="9179259655489829027">આ સુવિધા તમને પાસવર્ડની જરૂર વગર ઝડપથી કોઈ સાઇન-ઇન થયેલ વપરાશકર્તાને ઍક્સેસ કરવાની પરવાનગી આપે છે. માત્ર તમે જેના પર વિશ્વાસ કરતા હો તે એકાઉન્ટ સાથે જ આ સુવિધાનો ઉપયોગ કરો.</translation>
-<translation id="9180906851711123156">બંધ કરવા માટે Ctrl+W દબાવો</translation>
 <translation id="9183456764293710005">પૂર્ણ-સ્ક્રીન મૅગ્નિફાયર</translation>
 <translation id="9193626018745640770">અજાણ્યા પ્રાપ્તકર્તા પર કાસ્ટ કરી રહ્યાં છીએ</translation>
 <translation id="9194617393863864469">અન્ય વપરાશકર્તા સાઇન ઇન કરો...</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index 32711bf..a9db14a 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -1399,7 +1399,6 @@
 <translation id="9168436347345867845">बाद में करें</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> के लिए 1 नतीजा दिखाया जा रहा है</translation>
 <translation id="9179259655489829027">यह फ़ीचर आपको पासवर्ड के बिना किसी भी साइन इन किए हुए उपयोगकर्ता को जल्दी से एक्सेस करने देता है. इस फ़ीचर का इस्तेमाल सिर्फ़ अपने भरोसेमंद खातों के साथ करें.</translation>
-<translation id="9180906851711123156">बंद करने के लिए, Ctrl+W दबाएं</translation>
 <translation id="9183456764293710005">फ़ुलस्क्रीन मैग्निफ़ायर</translation>
 <translation id="9193626018745640770">ऐसे रिसीवर पर कास्ट किया जा रहा है जिसकी जानकारी नहीं है</translation>
 <translation id="9194617393863864469">किसी दूसरे उपयोगकर्ता के रूप में साइन इन करें...</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb
index 7c73444..cb180a7 100644
--- a/ash/strings/ash_strings_hr.xtb
+++ b/ash/strings/ash_strings_hr.xtb
@@ -1409,7 +1409,6 @@
 <translation id="9168436347345867845">Učinite to kasnije</translation>
 <translation id="9178475906033259337">Prikazuje se jedan rezultat za upit <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Ta vam značajka omogućuje brzi pristup bilo kojem prijavljenom korisniku bez zahtijevanja zaporke. Tu značajku upotrebljavajte samo s pouzdanim računima.</translation>
-<translation id="9180906851711123156">Pritisnite Ctrl + W da biste zatvorili</translation>
 <translation id="9183456764293710005">Povećalo za cijeli zaslon</translation>
 <translation id="9193626018745640770">Emitiranje na nepoznatom prijamniku</translation>
 <translation id="9194617393863864469">Prijavljivanje drugog korisnika...</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb
index 9c0f000..f93c16e 100644
--- a/ash/strings/ash_strings_hu.xtb
+++ b/ash/strings/ash_strings_hu.xtb
@@ -760,6 +760,16 @@
 <translation id="5393156353051693207">Az alkalmazások átrendezéséhez tartsa lenyomva ujját bárhol</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> az alatta lévő <ph name="IN_PLACE_APP" /> alkalmazáson; mappa létrehozásához engedje el.</translation>
 <translation id="5397578532367286026">A felhasználó használati adatait és előzményeit a kezelő (<ph name="MANAGER_EMAIL" />) a chrome.com webhelyen tekintheti meg.</translation>
+<translation id="5399673806694250334">Állapottálca, idő <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">Gyorsbeállítások, az értesítési központ megnyitásához nyomja meg a Keresés + balra nyíl billentyűkombinációt.</translation>
 <translation id="5426063383988017631">Beállítások menü bezárva</translation>
 <translation id="5428899915242071344">Kijelölés indítása</translation>
@@ -1400,7 +1410,6 @@
 <translation id="9168436347345867845">Később</translation>
 <translation id="9178475906033259337">1 találat megjelenítése a következő lekérdezésre: <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Ez a funkció lehetővé teszi a bejelentkezett felhasználók gyors, jelszó nélküli elérését. Kizárólag olyan fiókok esetében használja a funkciót, amelyekben megbízik.</translation>
-<translation id="9180906851711123156">A bezáráshoz nyomja meg a Ctrl + W billentyűkombinációt.</translation>
 <translation id="9183456764293710005">Teljes képernyős nagyító</translation>
 <translation id="9193626018745640770">Átküldés ismeretlen fogadó eszközre</translation>
 <translation id="9194617393863864469">Bejelentkezés másik felhasználóként…</translation>
diff --git a/ash/strings/ash_strings_hy.xtb b/ash/strings/ash_strings_hy.xtb
index 8eb015a..96b9682 100644
--- a/ash/strings/ash_strings_hy.xtb
+++ b/ash/strings/ash_strings_hy.xtb
@@ -1397,7 +1397,6 @@
 <translation id="9168436347345867845">Ավելի ուշ</translation>
 <translation id="9178475906033259337">Ցուցադրվում է «<ph name="QUERY" />»-ի որոնման 1 արդյունք</translation>
 <translation id="9179259655489829027">Այս գործառույթի օգնությամբ դուք կարող եք առանց գաղտնաբառի արագ կապ հաստատել ցանկացած մուտք գործած օգտատիրոջ հետ: Օգտագործեք այս գործառույթը միայն վստահելի հաշիվների հետ:</translation>
-<translation id="9180906851711123156">Փակելու համար սեղմեք Ctrl+W</translation>
 <translation id="9183456764293710005">Լիաէկրան խոշորացույց</translation>
 <translation id="9193626018745640770">Հեռարձակվում է անհայտ ստացողի</translation>
 <translation id="9194617393863864469">Մուտք գործել այլ հաշիվ...</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index 852ff7dd..16b32bc 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -533,7 +533,7 @@
 <translation id="4115378294792113321">Magenta</translation>
 <translation id="412298498316631026">jendela</translation>
 <translation id="4123259114412175274">Untuk membuka kunci Chromebook, pastikan Bluetooth ponsel Anda aktif</translation>
-<translation id="4125970834901680537">Tidak dapat menstreaming aplikasi dalam mode tablet. Coba lagi dalam mode laptop.</translation>
+<translation id="4125970834901680537">Mode tablet tidak mendukung streaming aplikasi. Coba lagi dengan mode laptop.</translation>
 <translation id="4129129681837227511">Untuk melihat notifikasi di layar kunci, buka kunci untuk mengubah setelan</translation>
 <translation id="4136724716305260864">Aktif sampai matahari terbit</translation>
 <translation id="4146833061457621061">Putar musik</translation>
@@ -897,6 +897,7 @@
 <translation id="619279033188484792">Lihat foto terbaru, media, dan notifikasi dari ponsel Anda di <ph name="DEVICE_TYPE" /></translation>
 <translation id="619335566042889110">Diisi penuh sekarang</translation>
 <translation id="6193431488227440296">Dev</translation>
+<translation id="6210042900243040400">Hubungkan <ph name="NAME" /> yang sebelumnya disimpan ke <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Anda kini dapat merekam diri Anda dan layar secara bersamaan</translation>
 <translation id="622484624075952240">Bawah</translation>
 <translation id="6231419273573514727">Performa periferal mungkin dibatasi</translation>
@@ -1398,7 +1399,6 @@
 <translation id="9168436347345867845">Nanti saja</translation>
 <translation id="9178475906033259337">Menampilkan 1 hasil untuk <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Dengan fitur ini, Anda dapat dengan cepat mengakses setiap pengguna yang sudah login, tanpa perlu menggunakan sandi. Hanya gunakan fitur ini dengan akun yang Anda percayai.</translation>
-<translation id="9180906851711123156">Tekan Ctrl+W untuk menutup</translation>
 <translation id="9183456764293710005">Kaca Pembesar Layar</translation>
 <translation id="9193626018745640770">Mentransmisi pada penerima yang tidak dikenal</translation>
 <translation id="9194617393863864469">Login pengguna lain...</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb
index 53ded547..ab4ff7c 100644
--- a/ash/strings/ash_strings_is.xtb
+++ b/ash/strings/ash_strings_is.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">Gera þetta seinna</translation>
 <translation id="9178475906033259337">Birtir eina niðurstöðu fyrir „<ph name="QUERY" />“</translation>
 <translation id="9179259655489829027">Þessi eiginleiki veitir þér fljótlegan aðgang að hvaða innskráða notanda sem er án þess að aðgangsorðs sé krafist. Notaðu þennan eiginleika aðeins með reikningum sem þú treystir.</translation>
-<translation id="9180906851711123156">Ýttu á Ctrl+W til að loka</translation>
 <translation id="9183456764293710005">Stækkun á öllum skjánum</translation>
 <translation id="9193626018745640770">Sendir út í óþekkt tæki</translation>
 <translation id="9194617393863864469">Skrá annan notanda inn...</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb
index bb21454..25fc275 100644
--- a/ash/strings/ash_strings_it.xtb
+++ b/ash/strings/ash_strings_it.xtb
@@ -898,6 +898,7 @@
 <translation id="619279033188484792">Visualizza le foto, i contenuti multimediali e le notifiche recenti del tuo telefono su <ph name="DEVICE_TYPE" /></translation>
 <translation id="619335566042889110">Ricarica completamente adesso</translation>
 <translation id="6193431488227440296">Dev</translation>
+<translation id="6210042900243040400">Connetti il dispositivo <ph name="NAME" />, che è già stato salvato in <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Ora puoi registrarti e registrare il tuo schermo nello stesso momento</translation>
 <translation id="622484624075952240">Giù</translation>
 <translation id="6231419273573514727">Le prestazioni delle periferiche potrebbero essere limitate</translation>
@@ -1399,7 +1400,6 @@
 <translation id="9168436347345867845">Più tardi</translation>
 <translation id="9178475906033259337">Visualizzazione di un risultato per <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Questa funzione consente di accedere rapidamente a qualsiasi utente che abbia effettuato l'accesso, senza bisogno di una password. Utilizza questa funzione solo con gli account che consideri attendibili.</translation>
-<translation id="9180906851711123156">Premi Ctrl + W per chiudere</translation>
 <translation id="9183456764293710005">Ingrandimento a schermo intero</translation>
 <translation id="9193626018745640770">Trasmissione a un ricevitore sconosciuto</translation>
 <translation id="9194617393863864469">Accedi con un altro account utente...</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb
index de6aed4..bb0d5c9e 100644
--- a/ash/strings/ash_strings_iw.xtb
+++ b/ash/strings/ash_strings_iw.xtb
@@ -897,6 +897,7 @@
 <translation id="619279033188484792">הצגת התראות, מדיה ותמונות מהזמן האחרון במכשיר <ph name="DEVICE_TYPE" /></translation>
 <translation id="619335566042889110">לטעינה מלאה</translation>
 <translation id="6193431488227440296">פיתוח</translation>
+<translation id="6210042900243040400">יש לקשר את המכשיר <ph name="NAME" /> שנשמר בעבר בחשבון <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">יש לך אפשרות להקליט את עצמך ואת המסך באותו הזמן</translation>
 <translation id="622484624075952240">למטה</translation>
 <translation id="6231419273573514727">ייתכן שהביצועים של הציוד ההיקפי יוגבלו</translation>
@@ -1402,7 +1403,6 @@
 <translation id="9179259655489829027">תכונה זו מאפשרת לך לגשת במהירות לכל משתמש המחובר לחשבון, בלי להזין סיסמה.
 
 יש להשתמש בתכונה הזו רק עם חשבונות מהימנים.</translation>
-<translation id="9180906851711123156">‏כדי לסגור, יש להקיש על Ctrl +‏ W.</translation>
 <translation id="9183456764293710005">הגדלת כל המסך</translation>
 <translation id="9193626018745640770">מתבצעת העברה במכשיר לא ידוע</translation>
 <translation id="9194617393863864469">הוספת משתמש אחר...</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index db8ab31..d70d74a 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">任意の場所を長押ししてアプリを並べ替えられます</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" />を<ph name="IN_PLACE_APP" />の上にドラッグしました。指を離すとフォルダが作成されます。</translation>
 <translation id="5397578532367286026">このユーザーの利用状況や履歴は、chrome.com で管理者(<ph name="MANAGER_EMAIL" />)によって確認されます。</translation>
+<translation id="5399673806694250334">ステータス トレイ、時間 <ph name="TIME" />、
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />、
+        <ph name="MIC" />、
+        <ph name="CAMERA" />、
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />、
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">クイック設定: 検索+左方向キーを押して、通知センターを開きます。</translation>
 <translation id="5426063383988017631">設定メニューは閉じています</translation>
 <translation id="5428899915242071344">選択を開始</translation>
@@ -1399,7 +1409,6 @@
 <translation id="9168436347345867845">後で行う</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> の結果 1 件を表示しています</translation>
 <translation id="9179259655489829027">この機能を使用すると、パスワードを入力せずにログイン ユーザーにすばやくアクセスできます。この機能は信頼できるアカウントにのみ使用してください。</translation>
-<translation id="9180906851711123156">閉じるには Ctrl+W キーを押します</translation>
 <translation id="9183456764293710005">全画面拡大鏡</translation>
 <translation id="9193626018745640770">不明な受信デバイスにキャストしています</translation>
 <translation id="9194617393863864469">別のユーザーとしてログイン...</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb
index e4687024..900d7c8 100644
--- a/ash/strings/ash_strings_ka.xtb
+++ b/ash/strings/ash_strings_ka.xtb
@@ -1399,7 +1399,6 @@
 <translation id="9168436347345867845">მოგვიანებით გაკეთება</translation>
 <translation id="9178475906033259337">ნაჩვენებია 1 შედეგი მოთხოვნაზე <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">ეს ფუნქცია საშუალებას გაძლევთ, სწრაფად და პაროლის გარეშე იქონიოთ წვდომა სისტემაში შესულ ნებისმიერ მომხმარებელზე. გამოიყენეთ ეს ფუნქცია მხოლოდ იმ ანგარიშებთან, რომლებსაც ენდობით.</translation>
-<translation id="9180906851711123156">დასახურად დააჭირეთ კლავიშთა კომბინაციას: Ctrl+W</translation>
 <translation id="9183456764293710005">სრულეკრანიანი ლუპა</translation>
 <translation id="9193626018745640770">მიმდინარეობს ტრანსლირება უცნობ მიმღებზე</translation>
 <translation id="9194617393863864469">შესვლა სხვა მომხმარებლის სახელით…</translation>
diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb
index 32ff75b..d2a126d 100644
--- a/ash/strings/ash_strings_kk.xtb
+++ b/ash/strings/ash_strings_kk.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">Кейінірек</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> бойынша 1 нәтиже көрсетілуде</translation>
 <translation id="9179259655489829027">Бұл функция аккаунтқа кірген кез келген пайдаланушыға құпия сөзсіз жылдам кіруге мүмкіндік береді. Оны тек сенімді аккаунттармен пайдаланыңыз.</translation>
-<translation id="9180906851711123156">Жабу үшін Ctrl+W басыңыз.</translation>
 <translation id="9183456764293710005">Толық экран ұлғайтқышы</translation>
 <translation id="9193626018745640770">Белгісіз қабылдағышта трансляциялауда</translation>
 <translation id="9194617393863864469">Басқа пайдаланушыны кіргізу…</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb
index 7b1652d..880898e7 100644
--- a/ash/strings/ash_strings_km.xtb
+++ b/ash/strings/ash_strings_km.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">ចុចឱ្យជាប់​ត្រង់ណាក៏បាន ដើម្បីតម្រៀប​កម្មវិធីរបស់អ្នកឡើងវិញ</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> នៅលើ <ph name="IN_PLACE_APP" /> សូម​ព្រលែង ដើម្បីបង្កើត​ថត។</translation>
 <translation id="5397578532367286026">ការប្រើប្រាស់ និងប្រើ (<ph name="MANAGER_EMAIL" />) នៅលើ chrome.com។</translation>
+<translation id="5399673806694250334">របារ​ស្ថានភាព ម៉ោង <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">ការកំណត់​រហ័ស ចុច ស្វែងរក + ឆ្វេង ដើម្បីចូលប្រើ​មជ្ឈមណ្ឌល​ជូនដំណឹង។</translation>
 <translation id="5426063383988017631">បានបិទម៉ឺនុយការ​កំណត់</translation>
 <translation id="5428899915242071344">ចាប់ផ្ដើមជ្រើសរើស</translation>
@@ -1398,7 +1408,6 @@
 <translation id="9168436347345867845">ធ្វើនៅ​ពេលក្រោយ</translation>
 <translation id="9178475906033259337">កំពុង​បង្ហាញ​លទ្ធផល 1 សម្រាប់ <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">មុខងារនេះអនុញ្ញាតឱ្យអ្នកចូលប្រើគណនីអ្នកប្រើប្រាស់ទាំងឡាយបានឆាប់រហ័សដោយមិនចាំបាច់មានពាក្យសម្ងាត់។ ប្រើមុខងារនេះជាមួយគណនីដែលអ្នកជឿទុកចិត្តតែប៉ុណ្ណោះ។</translation>
-<translation id="9180906851711123156">ចុច Ctrl+W ដើម្បីបិទ</translation>
 <translation id="9183456764293710005">កម្មវិធី​ពង្រីក​ពេញ​អេក្រង់</translation>
 <translation id="9193626018745640770">កំពុង​បញ្ជូន​ទៅឧបករណ៍​ទទួល​ដែលមិន​ស្គាល់</translation>
 <translation id="9194617393863864469">ចូលជាអ្នកប្រើផ្សេងទៀត...</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb
index 8cc2aa12..4ed1cd0 100644
--- a/ash/strings/ash_strings_kn.xtb
+++ b/ash/strings/ash_strings_kn.xtb
@@ -533,7 +533,7 @@
 <translation id="4115378294792113321">ಮಜೆಂತಾ</translation>
 <translation id="412298498316631026">ವಿಂಡೋ</translation>
 <translation id="4123259114412175274">ನಿಮ್ಮ Chromebook ಅನ್‌ಲಾಕ್ ಮಾಡಲು, ನಿಮ್ಮ ಫೋನ್‌ನ ಬ್ಲೂಟೂತ್ ಆನ್ ಆಗಿದೆ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ</translation>
-<translation id="4125970834901680537">ಟ್ಯಾಬ್ಲೆಟ್ ಮೋಡ್‌ನಲ್ಲಿ ಆ್ಯಪ್‌ಗಳನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಲ್ಯಾಪ್‌ಟಾಪ್ ಮೋಡ್‌ನಲ್ಲಿ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
+<translation id="4125970834901680537">ಟ್ಯಾಬ್ಲೆಟ್ ಮೋಡ್‌ನಲ್ಲಿ ಆ್ಯಪ್‌ಗಳನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡಲಾಗದು. ಲ್ಯಾಪ್‌ಟಾಪ್ ಮೋಡ್‌ ನಲ್ಲಿ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="4129129681837227511">ನಿಮ್ಮ ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ನೋಡಲು, ಸೆಟ್ಟಿಂಗ್ ಬದಲಾಯಿಸಲು ಅನ್‌ಲಾಕ್ ಮಾಡಿ</translation>
 <translation id="4136724716305260864">ಸೂರ್ಯೋದಯದವರೆಗೆ ಆನ್</translation>
 <translation id="4146833061457621061">ಸಂಗೀತ ಪ್ಲೇ ಮಾಡಿ</translation>
@@ -898,6 +898,7 @@
 <translation id="619279033188484792">ನಿಮ್ಮ ಫೋನ್‌ನ ಇತ್ತೀಚಿನ ಫೋಟೋಗಳು, ಮೀಡಿಯಾ ಮತ್ತು ಅಧಿಸೂಚನೆಗಳನ್ನು ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ನಲ್ಲಿ ವೀಕ್ಷಿಸಿ</translation>
 <translation id="619335566042889110">ಸಂಪೂರ್ಣವಾಗಿ ಚಾರ್ಚ್ ಮಾಡಿ</translation>
 <translation id="6193431488227440296">ದೇವ್</translation>
+<translation id="6210042900243040400">ಹಿಂದೆ ಉಳಿಸಿದ <ph name="EMAIL" /> ಅನ್ನು <ph name="NAME" /> ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿ</translation>
 <translation id="6220928844947387476">ಈಗ ನೀವು ಮತ್ತು ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಅನ್ನು ಒಂದೇ ಸಮಯದಲ್ಲಿ ರೆಕಾರ್ಡ್ ಮಾಡಬಹುದು</translation>
 <translation id="622484624075952240">ಕೆಳಗೆ</translation>
 <translation id="6231419273573514727">ಬಾಹ್ಯ ಸಾಧನದ ಕಾರ್ಯಕ್ಷಮತೆಯು ಸೀಮಿತವಾಗಿರಬಹುದು</translation>
@@ -1399,7 +1400,6 @@
 <translation id="9168436347345867845">ಇದನ್ನು ನಂತರ ಮಾಡಿ</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> ಕುರಿತಾದ 1 ಫಲಿತಾಂಶವನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="9179259655489829027">ಸೈನ್-ಇನ್ ಮಾಡಿರುವ ಯಾವುದೇ ಬಳಕೆದಾರರನ್ನು, ಪಾಸ್‌ವರ್ಡ್ ಇಲ್ಲದೆಯೇ ಪ್ರವೇಶಿಸಲು ಈ ವೈಶಿಷ್ಟ್ಯವು ಅವಕಾಶ ನೀಡುತ್ತದೆ. ನಿಮಗೆ ವಿಶ್ವಾಸವಿರುವ ಖಾತೆಗಳೊಂದಿಗೆ ಮಾತ್ರ ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಿ.</translation>
-<translation id="9180906851711123156">ಮುಚ್ಚಲು Ctrl+W ಒತ್ತಿರಿ</translation>
 <translation id="9183456764293710005">ಫುಲ್‌ಸ್ಕ್ರೀನ್ ವರ್ಧಕ</translation>
 <translation id="9193626018745640770">"ಅಪರಿಚಿತ ಸ್ವೀಕರಿಸುವವರು" ನಲ್ಲಿ ಬಿತ್ತರಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="9194617393863864469">ಮತ್ತೊಂದು ಬಳಕೆದಾರರಾಗಿ ಸೈನ್‌ ಇನ್‌ ಮಾಡಿ...</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index be214b9..f8e61e98e 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -897,6 +897,7 @@
 <translation id="619279033188484792">휴대전화의 최근 사진, 미디어, 알림을 <ph name="DEVICE_TYPE" />에서 봅니다.</translation>
 <translation id="619335566042889110">지금 완전히 충전하기</translation>
 <translation id="6193431488227440296">개발</translation>
+<translation id="6210042900243040400">이전에 <ph name="EMAIL" />에 저장된 <ph name="NAME" /> 연결</translation>
 <translation id="6220928844947387476">이제 내 모습과 화면을 동시에 녹화할 수 있습니다.</translation>
 <translation id="622484624075952240">아래</translation>
 <translation id="6231419273573514727">주변기기 성능이 제한될 수 있습니다</translation>
@@ -1398,7 +1399,6 @@
 <translation id="9168436347345867845">나중에</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> 검색결과 1개 표시 중</translation>
 <translation id="9179259655489829027">이 기능을 사용하면 로그인한 모든 사용자에게 비밀번호 없이 액세스할 수 있습니다. 이 기능은 신뢰할 수 있는 계정에만 사용하시기 바랍니다.</translation>
-<translation id="9180906851711123156">닫으려면 Ctrl + W를 누릅니다</translation>
 <translation id="9183456764293710005">전체 화면 돋보기</translation>
 <translation id="9193626018745640770">알 수 없는 수신기에 전송 중</translation>
 <translation id="9194617393863864469">다른 사용자 추가...</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb
index 1e370fb..6d02947 100644
--- a/ash/strings/ash_strings_ky.xtb
+++ b/ash/strings/ash_strings_ky.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">Колдонмолоруңуздун иретин өзгөртүү үчүн каалаган жерди басып кармап туруңуз</translation>
 <translation id="5395308026110844773">Папка түзүү үчүн, <ph name="DRAGGED_APP_NAME" /> колдонмосун <ph name="IN_PLACE_APP" /> колдонмосунун үстүнө сүйрөп барып, коё бериңиз.</translation>
 <translation id="5397578532367286026">Башкаруучу бул колдонуучунун пайдалангандарын жана таржымалын (<ph name="MANAGER_EMAIL" />) chrome.com дарегинен карап чыга алат.</translation>
+<translation id="5399673806694250334">Абал түпкүчү, убакыт <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">Ыкчам жөндөөлөр, Билдирмелер борборуна өтүү үчүн Издөө + сол баскычты басыңыз.</translation>
 <translation id="5426063383988017631">Жөндөөлөр менюсу жабылды</translation>
 <translation id="5428899915242071344">Тандап баштоо</translation>
@@ -1398,7 +1408,6 @@
 <translation id="9168436347345867845">Азыр эмес</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> сурамы боюнча 1 натыйжа көрсөтүлүүдө</translation>
 <translation id="9179259655489829027">Бул функция менен аккаунтка кирген бардык колдонуучуларга сырсөзсүз оңой өтө аласыз. Бул функцияны ишенимдүү аккаунттар менен гана колдонуңуз.</translation>
-<translation id="9180906851711123156">Жабуу үчүн Ctrl+W баскычтарын басыңыз</translation>
 <translation id="9183456764293710005">Толук экран лупасы</translation>
 <translation id="9193626018745640770">Белгисиз алуучуга чыгарылууда</translation>
 <translation id="9194617393863864469">Башка колдонуучуну киргизүү…</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb
index 6345250..da10d5f 100644
--- a/ash/strings/ash_strings_lo.xtb
+++ b/ash/strings/ash_strings_lo.xtb
@@ -327,6 +327,7 @@
 <translation id="2894949423239620203">ສາຍອາດກະທົບກັບປະສິດທິພາບ</translation>
 <translation id="2903844815300039659">ເຊື່ອມຕໍ່ກັບ <ph name="NAME" /> ແລ້ວ, <ph name="STRENGTH" /></translation>
 <translation id="2914580577416829331">ການຖ່າຍຮູບໜ້າຈໍ</translation>
+<translation id="2925246975070834767">ລອງໃຊ້ລະບົບຊູມອັດຕະໂນມັດເພື່ອທ່ານຈະໄດ້ຢູ່ທາງກາງໜ້າຈໍ. ເປີດໃຊ້ມັນໃນການຕັ້ງຄ່າດ່ວນ.</translation>
 <translation id="2941112035454246133">ຕໍ່າ</translation>
 <translation id="2942350706960889382">ແວ່ນຂະຫຍາຍທີ່ຕັ້ງໄວ້</translation>
 <translation id="2942516765047364088">ຕໍາ​ແຫນ່ງ​ຖ້ານ</translation>
@@ -634,6 +635,7 @@
 <translation id="4628757576491864469">ອຸ​ປະ​ກອນ</translation>
 <translation id="4631891353005174729"><ph name="APP_NAME_TYPE" />, ການໃຫ້ຄະແນນເປັນດາວ <ph name="RATING_SCORE" /></translation>
 <translation id="4633185660152240791">{0,plural, =1{ປ່ຽນອຸປະກອນເປັນເວີຊັນກ່ອນໜ້າພາຍໃນໜຶ່ງມື້}other{ປ່ຽນອຸປະກອນເປັນເວີຊັນກ່ອນໜ້າພາຍໃນ # ມື້}}</translation>
+<translation id="4633636853437260449">ກົດ Ctrl+W ເພື່ອລຶບ</translation>
 <translation id="4642092649622328492">ຖ່າຍຮູບໜ້າຈໍບາງສ່ວນ</translation>
 <translation id="4644727592819780893">ພື້ນທີ່ນ້ອຍເກີນກວ່າທີ່ຈະສະແດງຕົວຢ່າງກ້ອງຖ່າຍຮູບໄດ້</translation>
 <translation id="4648249871170053485"><ph name="APP_NAME" />, ການແນະນຳແອັບ</translation>
@@ -759,6 +761,16 @@
 <translation id="5393156353051693207">ແຕະໃສ່ບ່ອນໃດກໍໄດ້ຄ້າງໄວ້ເພື່ອຈັດຮຽງແອັບຂອງທ່ານຄືນໃໝ່</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> ຢູ່ເທິງ <ph name="IN_PLACE_APP" />, ປ່ອຍເພື່ອສ້າງໂຟນເດີ.</translation>
 <translation id="5397578532367286026">ສາມາດທົບທວນເບິ່ງການ​​ໃຊ້​ ແລະ​ປະ​ຫວັດ​ຂອງ​ຜູ້​ໃຊ້​ຄົນນີ້​ໄດ້ດ້ວຍຕົວ​ຈັດ​ການ (<ph name="MANAGER_EMAIL" />) ຢູ່ທີ່ chrome.com.</translation>
+<translation id="5399673806694250334">ຖາດສະຖານະ, ເວລາ <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">ການຕັ້ງຄ່າດ່ວນ, ກົດຊອກຫາ + ລູກສອນຊ້າຍເພື່ອເຂົ້າເຖິງສູນການແຈ້ງເຕືອນ.</translation>
 <translation id="5426063383988017631">ປິດເມນູການຕັ້ງຄ່າ</translation>
 <translation id="5428899915242071344">ເລີ່ມການເລືອກ</translation>
@@ -1399,7 +1411,6 @@
 <translation id="9168436347345867845">ເຮັດໃນພາຍຫຼັງ</translation>
 <translation id="9178475906033259337">ກຳລັງສະແດງຜົນການຊອກຫາ 1 ລາຍການສຳລັບ <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">ຄຸນສົມບັດນີ້ອະນຸຍາດໃຫ້ທ່ານເຂົ້າເຖິງທຸກຜູ້ໃຊ້ທີ່ເຂົ້າສູ່ລະບົບໃດໆກໍຕາມໂດຍບໍ່ຈຳເປັນຕ້ອງມີລະຫັດຜ່ານ. ກະລຸນາໃຊ້ຄຸນສົມບັດນີ້ກັບບັນຊີທີ່ທ່ານເຊື່ອຖືເທົ່ານັ້ນ.</translation>
-<translation id="9180906851711123156">ກົດ Ctrl+W ເພື່ອປິດ</translation>
 <translation id="9183456764293710005">ແວ່ນຂະຫຍາຍເຕັມຈໍ</translation>
 <translation id="9193626018745640770">ກຳລັງສົ່ງສັນຍານໃນເຄື່ອງຮັບທີ່ບໍ່ຮູ້ຈັກ</translation>
 <translation id="9194617393863864469">ລົງຊື່ເຂົ້າ​ໃຊ້ຜູ້​ໃຊ້ອື່ນ...</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index 98ca9d30..3ea1b2b6 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -897,6 +897,7 @@
 <translation id="619279033188484792">Peržiūrėkite telefono naujausias nuotraukas, mediją ir pranešimus „<ph name="DEVICE_TYPE" />“ įrenginyje</translation>
 <translation id="619335566042889110">Visiškai įkrauti dabar</translation>
 <translation id="6193431488227440296">Kuriamo leidimo grupė</translation>
+<translation id="6210042900243040400">Susiekite su įrenginiu „<ph name="NAME" />“, kuris anksčiau buvo išsaugotas adresu <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Dabar galite įrašyti save ir savo ekraną tuo pačiu metu</translation>
 <translation id="622484624075952240">Žemiau</translation>
 <translation id="6231419273573514727">Išorinių įrenginių našumas gali būti apribotas</translation>
@@ -1398,7 +1399,6 @@
 <translation id="9168436347345867845">Atlikti vėliau</translation>
 <translation id="9178475906033259337">Pagal užklausą „<ph name="QUERY" />“ pateikiama rezultatų: 1</translation>
 <translation id="9179259655489829027">Naudodami šią funkciją galite greitai pasiekti bet kurį prisijungusį naudotoją be slaptažodžio. Šią funkciją naudokite tik su patikimomis paskyromis.</translation>
-<translation id="9180906851711123156">Paspauskite „Ctrl“ + W, kad uždarytumėte</translation>
 <translation id="9183456764293710005">Viso ekrano didinimas</translation>
 <translation id="9193626018745640770">Perduodama į nežinomą imtuvą</translation>
 <translation id="9194617393863864469">Prisijungti kaip kitas naudotojas...</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb
index 139569e..853642e8 100644
--- a/ash/strings/ash_strings_lv.xtb
+++ b/ash/strings/ash_strings_lv.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">Vēlāk</translation>
 <translation id="9178475906033259337">Tiek rādīts 1 rezultāts vaicājumam “<ph name="QUERY" />”</translation>
 <translation id="9179259655489829027">Šī funkcija ļauj ātri piekļūt jebkuram lietotājam, kurš ir pierakstījies, nepieprasot paroli. Izmantojiet šo funkciju tikai uzticamiem kontiem.</translation>
-<translation id="9180906851711123156">Lai aizvērtu cilnes lapu, vienlaikus nospiediet taustiņus Ctrl un W</translation>
 <translation id="9183456764293710005">Pilnekrāna lupa</translation>
 <translation id="9193626018745640770">Apraide nezināmā uztvērējā</translation>
 <translation id="9194617393863864469">Pierakstīties kā citam lietotājam...</translation>
diff --git a/ash/strings/ash_strings_mk.xtb b/ash/strings/ash_strings_mk.xtb
index 6c3b875..9e05e7dc 100644
--- a/ash/strings/ash_strings_mk.xtb
+++ b/ash/strings/ash_strings_mk.xtb
@@ -469,6 +469,7 @@
 <translation id="3708186454126126312">Претходно поврзани</translation>
 <translation id="371370241367527062">Преден микрофон</translation>
 <translation id="3713734891607377840">Отвори кога ќе заврши преземањето</translation>
+<translation id="3724279623330129812">Автоматското зумирање ја центрираше камерата</translation>
 <translation id="3726171378575546917"><ph name="UNAVAILABLE_APPS_ONE" />, <ph name="UNAVAILABLE_APPS_TWO" /> и уште <ph name="UNAVAILABLE_APPS_COUNT" /> не се на уредов.</translation>
 <translation id="3735740477244556633">Подреди по</translation>
 <translation id="3742055079367172538">Направена е слика од екранот</translation>
@@ -1410,7 +1411,6 @@
 <translation id="9168436347345867845">Остави за подоцна</translation>
 <translation id="9178475906033259337">Се прикажува 1 резултат за <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Функцијава ви овозможува брзо да пристапите до секој најавен корисник без да биде потребна лозинка. Користете ја само со сметки во кои имате доверба.</translation>
-<translation id="9180906851711123156">Притиснете Ctrl+W за да затворите</translation>
 <translation id="9183456764293710005">Лупа за цел екран</translation>
 <translation id="9193626018745640770">Се емитува на непознат приемник</translation>
 <translation id="9194617393863864469">Пријави друг корисник...</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index 744c6fc..81af04c 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -469,6 +469,7 @@
 <translation id="3708186454126126312">മുമ്പ് കണക്റ്റ് ചെയ്തവ</translation>
 <translation id="371370241367527062">മുൻവശത്തുള്ള മൈക്രോഫോൺ</translation>
 <translation id="3713734891607377840">പൂർത്തിയാകുമ്പോൾ തുറക്കുക</translation>
+<translation id="3724279623330129812">സ്വയമേവയുള്ള സൂം ചെയ്യൽ ക്യാമറയുടെ മധ്യഭാഗത്തായി നിലനിർത്തുന്നു</translation>
 <translation id="3726171378575546917"><ph name="UNAVAILABLE_APPS_ONE" />, <ph name="UNAVAILABLE_APPS_TWO" /> എന്നിവയും മറ്റ് <ph name="UNAVAILABLE_APPS_COUNT" /> എണ്ണവും ഈ ഉപകരണത്തിൽ ലഭ്യമല്ല.</translation>
 <translation id="3735740477244556633">ഇപ്രകാരം അടുക്കുക</translation>
 <translation id="3742055079367172538">സ്‌ക്രീൻഷോട്ട് എടുത്തു</translation>
@@ -759,6 +760,16 @@
 <translation id="5393156353051693207">നിങ്ങളുടെ ആപ്പുകൾ പുനഃക്രമീകരിക്കാൻ എവിടെയെങ്കിലും സ്പർശിച്ച് പിടിക്കുക</translation>
 <translation id="5395308026110844773"><ph name="IN_PLACE_APP" /> എന്നതിന് മുകളിലാണ് <ph name="DRAGGED_APP_NAME" />, ഫോൾഡർ സൃഷ്‌ടിക്കാൻ റിലീസ് ചെയ്യുക.</translation>
 <translation id="5397578532367286026">ഈ ഉപയോക്താവിന്റെ ഉപയോഗവും ചരിത്രവും chrome.com-ൽ മാനേജർക്ക് (<ph name="MANAGER_EMAIL" />) അവലോകനം ചെയ്യാനാകും.</translation>
+<translation id="5399673806694250334">സ്റ്റാറ്റസ് ട്രേ, സമയം <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">ദ്രുത ക്രമീകരണം, അറിയിപ്പ് കേന്ദ്രം ആക്‌സസ് ചെയ്യാൻ തിരയൽ + ഇടത് അമ്പടയാളം അമർത്തുക.</translation>
 <translation id="5426063383988017631">ക്രമീകരണം മെനു അടച്ചു</translation>
 <translation id="5428899915242071344">തിരഞ്ഞെടുക്കാൻ ആരംഭിക്കുക</translation>
@@ -897,6 +908,7 @@
 <translation id="619279033188484792"><ph name="DEVICE_TYPE" /> ഉപകരണത്തിൽ നിങ്ങളുടെ ഫോണിന്റെ പുതിയ ഫോട്ടോകളും മീഡിയയും അറിയിപ്പുകളും കാണുക</translation>
 <translation id="619335566042889110">ഇപ്പോൾ തന്നെ പൂർണ്ണമായി ചാർജ് ചെയ്യുക</translation>
 <translation id="6193431488227440296">ഡെവ്</translation>
+<translation id="6210042900243040400"><ph name="EMAIL" /> എന്നതിലേക്ക് മുമ്പ് സംരക്ഷിച്ച <ph name="NAME" /> കണക്റ്റ് ചെയ്യുക</translation>
 <translation id="6220928844947387476">നിങ്ങൾക്ക് ഇപ്പോൾ നിങ്ങളെയും ഒപ്പം സ്ക്രീനും ഒരേസമയം റെക്കോർഡ് ചെയ്യാം</translation>
 <translation id="622484624075952240">താഴേക്കുള്ള കീ</translation>
 <translation id="6231419273573514727">പെരിഫറൽ പ്രകടനം പരിമിതപ്പെട്ടേക്കാം</translation>
@@ -1398,7 +1410,6 @@
 <translation id="9168436347345867845">ഇത് പിന്നീട് ചെയ്യുക</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> എന്നതിനുള്ള ഒരു ഫലം കാണിക്കുന്നു</translation>
 <translation id="9179259655489829027">സൈൻ ഇൻ ചെയ്‌ത ഏതൊരു ഉപയോക്താവിനെ പാസ്‌വേഡ് ഇല്ലാതെ തന്നെ വേഗത്തിൽ ആക്‌സസ് ചെയ്യാൻ ഈ ഫീച്ചർ നിങ്ങളെ അനുവദിക്കുന്നു. നിങ്ങൾക്ക് വിശ്വാസമുള്ള അക്കൗണ്ടുകളിൽ മാത്രം ഈ ഫീച്ചർ ഉപയോഗിക്കുക.</translation>
-<translation id="9180906851711123156">അടയ്‌ക്കാൻ Ctrl+W അമർത്തുക</translation>
 <translation id="9183456764293710005">പൂർണ്ണ സ്ക്രീൻ മാഗ്നിഫയർ</translation>
 <translation id="9193626018745640770">ഒരു അജ്ഞാത റിസീവറിൽ കാസ്‌റ്റ് ചെയ്യുന്നു</translation>
 <translation id="9194617393863864469">മറ്റൊരു ഉപയോക്താവായി സൈൻ ഇൻ ചെയ്യുക...</translation>
diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb
index 1ef0897..f2a79a4 100644
--- a/ash/strings/ash_strings_mn.xtb
+++ b/ash/strings/ash_strings_mn.xtb
@@ -327,6 +327,7 @@
 <translation id="2894949423239620203">Кабель нь гүйцэтгэлд нөлөөлж магадгүй</translation>
 <translation id="2903844815300039659"><ph name="NAME" />, <ph name="STRENGTH" />-д холбогдсон</translation>
 <translation id="2914580577416829331">Дэлгэцийн зураг</translation>
+<translation id="2925246975070834767">Өөрийгөө дэлгэцийн голд байрлуулахын тулд автомат томруулалтыг ашиглаж үзнэ үү. Үүнийг Шуурхай тохиргоо хэсэгт асаана.</translation>
 <translation id="2941112035454246133">Бага</translation>
 <translation id="2942350706960889382">Суурилуулсан томруулагч</translation>
 <translation id="2942516765047364088">Шельфийн байрлал</translation>
@@ -635,6 +636,7 @@
 <translation id="4628757576491864469">Төхөөрөмжүүд</translation>
 <translation id="4631891353005174729"><ph name="APP_NAME_TYPE" />, <ph name="RATING_SCORE" /> одтой үнэлгээ</translation>
 <translation id="4633185660152240791">{0,plural, =1{Төхөөрөмжийг 1 хоногийн дотор өмнөх хувилбар луу нь өөрчилнө үү}other{Төхөөрөмжийг # хоногийн дотор өмнөх хувилбар луу нь өөрчилнө үү}}</translation>
+<translation id="4633636853437260449">Устгахын тулд Ctrl + W дээр дарна уу</translation>
 <translation id="4642092649622328492">Дэлгэцийн зургийг хэсэгчлэн дарах</translation>
 <translation id="4644727592819780893">Бүс нь камерыг багтаахад хэт жижиг байна</translation>
 <translation id="4648249871170053485"><ph name="APP_NAME" />, аппын зөвлөмж</translation>
@@ -760,6 +762,16 @@
 <translation id="5393156353051693207">Аппуудаа дахин эрэмбэлэхийн тулд хүссэн газраа удаан дарна уу</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" />-г <ph name="IN_PLACE_APP" /> дээр тавьсан байна. Фолдер үүсгэхийн тулд чөлөөлнө үү.</translation>
 <translation id="5397578532367286026">chrome.com дээр (<ph name="MANAGER_EMAIL" />) удирдагч энэ хэрэглэгчийн хэрэглээ болон түүхийг үзэх боломжтой.</translation>
+<translation id="5399673806694250334">Төлөвийн мэдээллийн хэсэг, хугацаа <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />,
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">Шуурхай тохиргоо. Мэдэгдлийн төвд хандахын тулд хайх + зүүн сумыг дарна уу.</translation>
 <translation id="5426063383988017631">Тохиргооны цэсийг хаасан</translation>
 <translation id="5428899915242071344">Сонгож эхлэх</translation>
@@ -1401,7 +1413,6 @@
 <translation id="9168436347345867845">Үүнийг дараа хийх</translation>
 <translation id="9178475906033259337"><ph name="QUERY" />-н 1 илэрцийг үзүүлж байна</translation>
 <translation id="9179259655489829027">Тус онцлог нь танаас нууц үг шаардахгүйгээр таныг түргэн хугацаанд хэрэглэгчид хандах боломжийг олгоно. Энэ онцлогийг зөвхөн итгэдэг бүртгэлд ашиглана уу.</translation>
-<translation id="9180906851711123156">Хаахын тулд Ctrl+W дээр дарна уу</translation>
 <translation id="9183456764293710005">Бүтэн дэлгэц томруулагч</translation>
 <translation id="9193626018745640770">Үл мэдэгдэх хүлээн авагчид дамжуулж байна</translation>
 <translation id="9194617393863864469">Өөр дансаар нэвтрэх...</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb
index f6bc23e4..4160a85 100644
--- a/ash/strings/ash_strings_mr.xtb
+++ b/ash/strings/ash_strings_mr.xtb
@@ -897,6 +897,7 @@
 <translation id="619279033188484792">तुमच्या <ph name="DEVICE_TYPE" /> वर तुमच्या फोनमधील अलीकडील फोटो, मीडिया आणि सूचना पहा</translation>
 <translation id="619335566042889110">आता पूर्णपणे चार्ज करा</translation>
 <translation id="6193431488227440296">डेव्हलपर</translation>
+<translation id="6210042900243040400">याआधी <ph name="EMAIL" /> मध्ये सेव्ह केलेले <ph name="NAME" /> कनेक्ट करा</translation>
 <translation id="6220928844947387476">तुम्ही आता एकाच वेळी स्वतःला आणि तुमची स्क्रीन रेकॉर्ड करू शकता</translation>
 <translation id="622484624075952240">Down</translation>
 <translation id="6231419273573514727">पेरिफेरल परफॉर्मन्स मर्यादित असू शकतो</translation>
@@ -1399,7 +1400,6 @@
 <translation id="9168436347345867845">ते नंतर करा</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> साठी एक परिणाम दाखवत आहे</translation>
 <translation id="9179259655489829027">हे वैशिष्ट्य तुम्हाला पासवर्ड शिवाय कोणत्याही साइन-इन केलेल्या वापरकर्त्यास जलदपणे ॲक्सेस करण्याची परवानगी  देते. तुमचा विश्वास असलेल्या खात्यांसाठीच फक्त या वैशिष्ट्याचा वापर करा.</translation>
-<translation id="9180906851711123156">बंद करण्यासाठी Ctrl+W दाबा</translation>
 <translation id="9183456764293710005">फुल-स्क्रीन मॅग्निफायर</translation>
 <translation id="9193626018745640770">एका अज्ञात मिळवणाऱ्यावर कास्ट करत आहे</translation>
 <translation id="9194617393863864469">दुसरा वापरकर्ता साइन इन करा...</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb
index 2671b72..b028ceb 100644
--- a/ash/strings/ash_strings_ms.xtb
+++ b/ash/strings/ash_strings_ms.xtb
@@ -327,6 +327,7 @@
 <translation id="2894949423239620203">Kabel boleh menjejaskan prestasi</translation>
 <translation id="2903844815300039659">Disambungkan ke <ph name="NAME" />, <ph name="STRENGTH" /></translation>
 <translation id="2914580577416829331">Tangkapan skrin</translation>
+<translation id="2925246975070834767">Cuba autozum supaya anda berada di tengah-tengah skrin. Hidupkan autozum dalam Tetapan Pantas.</translation>
 <translation id="2941112035454246133">Rendah</translation>
 <translation id="2942350706960889382">Penggadang Didok</translation>
 <translation id="2942516765047364088">Kedudukan rak</translation>
@@ -635,6 +636,7 @@
 <translation id="4628757576491864469">Peranti</translation>
 <translation id="4631891353005174729"><ph name="APP_NAME_TYPE" />, Rating bintang <ph name="RATING_SCORE" /></translation>
 <translation id="4633185660152240791">{0,plural, =1{Tukar peranti kepada versi sebelumnya dalam masa sehari}other{Tukar peranti kepada versi sebelumnya dalam masa # hari}}</translation>
+<translation id="4633636853437260449">Tekan Ctrl+W untuk memadam</translation>
 <translation id="4642092649622328492">Ambil tangkapan skrin separa</translation>
 <translation id="4644727592819780893">Rantau terlalu kecil untuk dimuatkan dengan kamera</translation>
 <translation id="4648249871170053485"><ph name="APP_NAME" />, Pengesyoran apl</translation>
@@ -1400,7 +1402,6 @@
 <translation id="9168436347345867845">Lakukan kemudian</translation>
 <translation id="9178475906033259337">Memaparkan 1 hasil carian untuk <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Ciri ini membolehkan anda mengakses dengan cepat mana-mana pengguna yang telah log masuk tanpa memerlukan kata laluan. Gunakan ciri ini dengan akaun yang dipercayai sahaja.</translation>
-<translation id="9180906851711123156">Tekan Ctrl+W untuk tutup</translation>
 <translation id="9183456764293710005">Penggadang skrin penuh</translation>
 <translation id="9193626018745640770">Menghantar pada penerima yang tidak diketahui</translation>
 <translation id="9194617393863864469">Log masuk pengguna lain...</translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb
index 38d1772..818d5d7 100644
--- a/ash/strings/ash_strings_my.xtb
+++ b/ash/strings/ash_strings_my.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">နှစ်သက်ရာနေရာတွင် တို့ထိ၍ ဖိထားပြီး သင့်အက်ပ်များကို ပြန်စီနိုင်သည်</translation>
 <translation id="5395308026110844773">ဖိုင်တွဲပြုလုပ်ရန် <ph name="IN_PLACE_APP" /> ပေါ်တွင် <ph name="DRAGGED_APP_NAME" /> ကို တင်သည်။</translation>
 <translation id="5397578532367286026">ဒီ အသုံးပြုသူ၏ သုံးစွဲမှု နှင့် မှတ်တမ်းကို chrome.com ရှိ (<ph name="MANAGER_EMAIL" />)၏ မန်နေဂျာက ဆန်းစစ် ကြည့်ရှု နိုင်သည်။</translation>
+<translation id="5399673806694250334">အခြေအနေပြ ဗန်း၊ အချိန် <ph name="TIME" />၊
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />၊
+        <ph name="MIC" />၊
+        <ph name="CAMERA" />၊
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />၊
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">အမြန် ဆက်တင်များ၊ အကြောင်းကြားချက်စင်တာကို ဝင်ကြည့်ရန် 'ရှာဖွေရန် + ဘယ်ဘက်' ကို နှိပ်ပါ။</translation>
 <translation id="5426063383988017631">ဆက်တင်များမီနူး ပိတ်ထားသည်</translation>
 <translation id="5428899915242071344">ရွေးချယ်ခြင်းကို စတင်ရန်</translation>
@@ -1399,7 +1409,6 @@
 <translation id="9168436347345867845">နောက်မှလုပ်ရန်</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> အတွက် ရလဒ် ၁ ခုကို ပြနေသည်</translation>
 <translation id="9179259655489829027">ဤဝန်ဆောင်မှုက လက်မှတ်ထိုးဝင်ထားသူ မည်သူမဆိုအား စကားဝှက်မလိုအပ်ဘဲ အသုံးပြုခွင့်ပေးပါသည်။ သင်ယုံကြည်စိတ်ချရသည့် အကောင့်များဖြင့်သာ ဤဝန်ဆောင်မှုကို အသုံးပြုပါ။</translation>
-<translation id="9180906851711123156">ပိတ်ရန် Ctrl+W နှိပ်ပါ</translation>
 <translation id="9183456764293710005">မျက်နှာပြင်အပြည့် မှန်ဘီလူး</translation>
 <translation id="9193626018745640770">အမည်မသိလက်ခံစက်တွင် ကာ့စ်လုပ်နေသည်</translation>
 <translation id="9194617393863864469">အခြားသူ အနေဖြင့် လက်မှတ်ထိုးဝင်ပါ...</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb
index fcf5a9b..b0e7b7e 100644
--- a/ash/strings/ash_strings_ne.xtb
+++ b/ash/strings/ash_strings_ne.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">तपाईं आफ्ना एपहरूको क्रम पुनः मिलाउन चाहनुहुन्छ भने कुनै पनि ठाउँमा टच एण्ड होल्ड गर्नुहोस्</translation>
 <translation id="5395308026110844773"><ph name="IN_PLACE_APP" /> का माथि <ph name="DRAGGED_APP_NAME" />, फोल्डर सिर्जना गर्न विमोचन गर्नुहोस्।</translation>
 <translation id="5397578532367286026">यो प्रयोगकर्ताको उपयोग र इतिहासलाई व्यवस्थापक (<ph name="MANAGER_EMAIL" />) ले chrome.com मा पुनरीक्षण गर्न सक्छ।</translation>
+<translation id="5399673806694250334">स्टेटस ट्रे, समय <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">द्रुत सेटिङहरू, सूचना केन्द्रमाथि पहुँच राख्न search + left बटन थिच्नुहोस्।</translation>
 <translation id="5426063383988017631">सेटिङ मेनु बन्द गरियो</translation>
 <translation id="5428899915242071344">पाठ चयन गर्न थालियोस्</translation>
@@ -897,6 +907,7 @@
 <translation id="619279033188484792"><ph name="DEVICE_TYPE" /> मा आफ्नो फोनका हालसालैका फोटो, मिडिया र सूचनाहरू हेर्नुहोस्</translation>
 <translation id="619335566042889110">अहिले नै फुल चार्ज गर्नुहोस्</translation>
 <translation id="6193431488227440296">डेभ</translation>
+<translation id="6210042900243040400">यसअघि <ph name="EMAIL" /> मा सेभ गरिएको <ph name="NAME" /> कनेक्ट गर्नुहोस्</translation>
 <translation id="6220928844947387476">तपाईं अब एकै पटक आफूसँगै आफ्नो स्क्रिन रेकर्ड गर्न सक्नुहुन्छ</translation>
 <translation id="622484624075952240">तल</translation>
 <translation id="6231419273573514727">सहायक यन्त्रले पूर्ण रूपमा काम नगर्न सक्छ</translation>
@@ -1398,7 +1409,6 @@
 <translation id="9168436347345867845">यो कार्य पछि गर्नुहोस्‌</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> सम्बन्धी १ परिणाम देखाउँदै</translation>
 <translation id="9179259655489829027">यस सुविधाले तपाईंलाई पासवर्ड प्रविष्ट नगरिकनै साइन इन भएका जुनसुकै प्रयोगकर्तामाथि द्रुत रूपमा पहुँच राख्न दिन्छ।आफूले विश्वास गर्ने खाताहरूमा मात्र यो सुविधाको प्रयोग गर्नुहोस्।</translation>
-<translation id="9180906851711123156">बन्द गर्न Ctrl+W थिच्नुहोस्</translation>
 <translation id="9183456764293710005">फुल स्क्रिन म्याग्निफायर</translation>
 <translation id="9193626018745640770">कुनै अज्ञात प्रापकमा cast गर्दै</translation>
 <translation id="9194617393863864469">अर्को प्रयोगकर्तालाई साइन इन गर्नुहोस् ...</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index 5816d4c..bf49f20 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">Tik ergens op het scherm en houd vast om je apps opnieuw te ordenen</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> bovenop <ph name="IN_PLACE_APP" />, laat los om een map te maken.</translation>
 <translation id="5397578532367286026">Het gebruik en de geschiedenis van deze gebruiker kunnen worden bekeken door de beheerder (<ph name="MANAGER_EMAIL" />) op chrome.com.</translation>
+<translation id="5399673806694250334">Statusvak, tijd <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">Snelle instellingen, druk op Zoeken + pijl-links om het meldingscentrum te openen.</translation>
 <translation id="5426063383988017631">Menu Instellingen gesloten</translation>
 <translation id="5428899915242071344">Selecteren starten</translation>
@@ -897,6 +907,7 @@
 <translation id="619279033188484792">Recente foto's, media en meldingen van je telefoon bekijken op je <ph name="DEVICE_TYPE" /></translation>
 <translation id="619335566042889110">Nu volledig opladen</translation>
 <translation id="6193431488227440296">Dev</translation>
+<translation id="6210042900243040400">Verbinding maken met <ph name="NAME" /> (eerder opgeslagen in <ph name="EMAIL" />)</translation>
 <translation id="6220928844947387476">Je kunt jezelf en je scherm nu tegelijkertijd opnemen</translation>
 <translation id="622484624075952240">Omlaag</translation>
 <translation id="6231419273573514727">De prestaties van randapparaten kunnen beperkt zijn</translation>
@@ -1395,7 +1406,6 @@
 <translation id="9168436347345867845">Later doen</translation>
 <translation id="9178475906033259337">1 resultaat bekijken voor <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Met deze functie kun je snel zonder wachtwoord toegang krijgen tot iedere ingelogde gebruiker. Gebruik deze functie alleen met accounts die je vertrouwt.</translation>
-<translation id="9180906851711123156">Druk op Ctrl + W om te sluiten</translation>
 <translation id="9183456764293710005">Vergrootglas voor volledig scherm</translation>
 <translation id="9193626018745640770">Casten naar een onbekende ontvanger</translation>
 <translation id="9194617393863864469">Als andere gebruiker inloggen...</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb
index 96b6a30..953cac4 100644
--- a/ash/strings/ash_strings_no.xtb
+++ b/ash/strings/ash_strings_no.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">Trykk og hold hvor som helst for å endre rekkefølge på appene</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> oppå <ph name="IN_PLACE_APP" /> – slipp for å opprette en mappe.</translation>
 <translation id="5397578532367286026">Bruken og loggen for denne brukeren kan gjennomgås av administratoren (<ph name="MANAGER_EMAIL" />) på chrome.com</translation>
+<translation id="5399673806694250334">Statusfelt, kl. <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">Hurtiginnstillinger – trykk på søk + venstre for å åpne varselsenteret.</translation>
 <translation id="5426063383988017631">Innstillinger-menyen er lukket</translation>
 <translation id="5428899915242071344">Begynn å merke</translation>
@@ -897,6 +907,7 @@
 <translation id="619279033188484792">Se nylige bilder, medier og varsler fra telefonen din på <ph name="DEVICE_TYPE" /></translation>
 <translation id="619335566042889110">Lad helt nå</translation>
 <translation id="6193431488227440296">Dev</translation>
+<translation id="6210042900243040400">Koble til <ph name="NAME" /> som tidligere har blitt lagret i <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Nå kan du ta opp deg selv og skjermen din samtidig</translation>
 <translation id="622484624075952240">Ned</translation>
 <translation id="6231419273573514727">Ytelsen til eksterne enheter kan være begrenset</translation>
@@ -1398,7 +1409,6 @@
 <translation id="9168436347345867845">Gjør det senere</translation>
 <translation id="9178475906033259337">Viser 1 resultat for <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Med denne funksjonen får du rask tilgang til påloggede brukere uten å måtte skrive inn passord. Du bør bare bruke denne funksjonen med kontoer du stoler på.</translation>
-<translation id="9180906851711123156">Trykk på Ctrl + W for å lukke</translation>
 <translation id="9183456764293710005">Lupe for hele skjermen</translation>
 <translation id="9193626018745640770">Caster på en ukjent mottaker</translation>
 <translation id="9194617393863864469">Logg på en annen bruker</translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb
index 761bdf7..91d8b50 100644
--- a/ash/strings/ash_strings_or.xtb
+++ b/ash/strings/ash_strings_or.xtb
@@ -1397,7 +1397,6 @@
 <translation id="9168436347345867845">ଏହାକୁ ପରେ କରନ୍ତୁ</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> ପାଇଁ 1ଟି ଫଳାଫଳ ଡିସ୍‌ପ୍ଲେ ହେଉଛି</translation>
 <translation id="9179259655489829027">ଏହି ବୈଶିଷ୍ଟ୍ୟ ଯେକୌଣସି ସାଇନ୍ ଇନ୍ କରିଥିବା ଉପଯୋଗକର୍ତ୍ତାଙ୍କୁ ବିନା ପାସ୍‌ୱାର୍ଡରେ ଶୀଘ୍ର ଆକ୍ସେସ୍ କରିବା ପାଇଁ ଆପଣଙ୍କୁ ଅନୁମତି ଦିଏ। କେବଳ ଆପଣ ବିଶ୍ୱାସ କରୁଥିବା ଆକାଉଣ୍ଟଗୁଡ଼ିକରେ ଏହି ବୈଶିଷ୍ଟ୍ୟ ବ୍ୟବହାର କରନ୍ତୁ।</translation>
-<translation id="9180906851711123156">ବନ୍ଦ କରିବାକୁ Ctrl+W ଦବାନ୍ତୁ</translation>
 <translation id="9183456764293710005">ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍ ମ୍ୟାଗ୍ନିଫାୟର୍</translation>
 <translation id="9193626018745640770">ଗୋଟିଏ ଅଜଣା ପ୍ରାପ୍ତକର୍ତ୍ତା ଉପରେ କାଷ୍ଟ କରାଯାଉଛି</translation>
 <translation id="9194617393863864469">ଅନ୍ୟଜଣେ ଉପଯୋଗକର୍ତ୍ତାଙ୍କୁ ସାଇନ୍-ଇନ୍ କରନ୍ତୁ...</translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb
index d38825f..9f3fd10 100644
--- a/ash/strings/ash_strings_pa.xtb
+++ b/ash/strings/ash_strings_pa.xtb
@@ -1410,7 +1410,6 @@
 <translation id="9168436347345867845">ਇਸਨੂੰ ਬਾਅਦ ਵਿੱਚ ਸੈੱਟਅੱਪ ਕਰੋ</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> ਲਈ 1 ਨਤੀਜਾ ਦਿਖਾਇਆ ਜਾ ਰਿਹਾ ਹੈ</translation>
 <translation id="9179259655489829027">ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਤੁਹਾਨੂੰ ਕਿਸੇ ਪਾਸਵਰਡ ਦੀ ਲੋੜ ਤੋਂ ਬਿਨਾਂ ਕਿਸੇ ਵੀ ਸਾਈਨ-ਇਨ ਵਰਤੋਂਕਾਰ ਤੱਕ ਛੇਤੀ ਪਹੁੰਚ ਕਰਨ ਦਿੰਦੀ ਹੈ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਵਰਤੋਂ ਸਿਰਫ਼ ਆਪਣੇ ਭਰੋਸੇਯੋਗ ਖਾਤਿਆਂ ਨਾਲ ਹੀ ਕਰੋ।</translation>
-<translation id="9180906851711123156">ਬੰਦ ਕਰਨ ਲਈ Ctrl+W ਦਬਾਓ</translation>
 <translation id="9183456764293710005">ਪੂਰੀ-ਸਕ੍ਰੀਨ ਵੱਡਦਰਸ਼ੀ</translation>
 <translation id="9193626018745640770">ਕਿਸੇ ਅਗਿਆਤ ਪ੍ਰਾਪਤਕਰਤਾ 'ਤੇ ਕਾਸਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</translation>
 <translation id="9194617393863864469">ਕਿਸੇ ਹੋਰ ਵਰਤੋਂਕਾਰ ਵਜੋਂ ਸਾਈਨ-ਇਨ ਕਰੋ…</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb
index 4522310..670ec5c 100644
--- a/ash/strings/ash_strings_pl.xtb
+++ b/ash/strings/ash_strings_pl.xtb
@@ -1397,7 +1397,6 @@
 <translation id="9168436347345867845">Później</translation>
 <translation id="9178475906033259337">Wyświetlam 1 wynik dla zapytania <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Ta funkcja umożliwia szybki dostęp do każdego konta zalogowanego użytkownika bez konieczności podawania hasła. Używaj jej tylko w przypadku kont, którym ufasz.</translation>
-<translation id="9180906851711123156">Aby zamknąć, naciśnij Ctrl+W</translation>
 <translation id="9183456764293710005">Lupa pełnego ekranu</translation>
 <translation id="9193626018745640770">Przesyłam do nieznanego odbiornika</translation>
 <translation id="9194617393863864469">Zaloguj innego użytkownika...</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index 49ffc3a..ab5f3ab 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">Toque em qualquer lugar na tela e a mantenha pressionada para reordenar os apps</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> sobre <ph name="IN_PLACE_APP" />, solte para criar pasta.</translation>
 <translation id="5397578532367286026">O uso e o histórico deste usuário podem ser analisados pelo administrador (<ph name="MANAGER_EMAIL" />) em chrome.com.</translation>
+<translation id="5399673806694250334">Bandeja de status: horário <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />,
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">Configurações rápidas, pressione "Pesquisa" + seta para a esquerda para acessar a central de notificações.</translation>
 <translation id="5426063383988017631">Menu de configurações fechado</translation>
 <translation id="5428899915242071344">Iniciar seleção</translation>
@@ -897,6 +907,7 @@
 <translation id="619279033188484792">Veja as fotos, mídias e notificações recentes do smartphone no <ph name="DEVICE_TYPE" />.</translation>
 <translation id="619335566042889110">Carregar totalmente agora</translation>
 <translation id="6193431488227440296">Dev</translation>
+<translation id="6210042900243040400">Conectar o dispositivo <ph name="NAME" /> salvo anteriormente em <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Agora é possível gravar você e a tela ao mesmo tempo</translation>
 <translation id="622484624075952240">Seta para baixo</translation>
 <translation id="6231419273573514727">O desempenho dos periféricos pode ser limitado</translation>
@@ -1398,7 +1409,6 @@
 <translation id="9168436347345867845">Mais tarde</translation>
 <translation id="9178475906033259337">Exibindo 1 resultado para <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Este recurso permite acessar rapidamente qualquer usuário conectado sem a necessidade de uma senha. Use esse recurso somente com contas em que você confia.</translation>
-<translation id="9180906851711123156">Pressione Ctrl+W para fechar</translation>
 <translation id="9183456764293710005">Lupa de tela cheia</translation>
 <translation id="9193626018745640770">Transmitindo para um destinatário desconhecido</translation>
 <translation id="9194617393863864469">Fazer login com outro usuário...</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb
index e26588f..e56195e 100644
--- a/ash/strings/ash_strings_pt-PT.xtb
+++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -1409,7 +1409,6 @@
 <translation id="9168436347345867845">Fazer isto mais tarde</translation>
 <translation id="9178475906033259337">A apresentar 1 resultado para <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Esta funcionalidade permite-lhe aceder rapidamente a qualquer utilizador com a sessão iniciada sem ser necessária uma palavra-passe. Utilize esta funcionalidade apenas com contas fidedignas.</translation>
-<translation id="9180906851711123156">Prima Ctrl + W para fechar</translation>
 <translation id="9183456764293710005">Lupa de ecrã inteiro</translation>
 <translation id="9193626018745640770">A transmitir para um recetor desconhecido…</translation>
 <translation id="9194617393863864469">Iniciar sessão com outro utilizador...</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index cb5f10e..e5c4222657 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">Atinge lung oriunde ca să-ți reordonezi aplicațiile</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> deasupra <ph name="IN_PLACE_APP" />, eliberează pentru a crea un dosar.</translation>
 <translation id="5397578532367286026">Datele privind utilizarea și istoricul ale acestui utilizator pot fi examinate de administrator (<ph name="MANAGER_EMAIL" />) pe chrome.com.</translation>
+<translation id="5399673806694250334">Bară de stare, ora <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">Setări rapide, Apasă pe tasta de căutare + stânga pentru a accesa centrul de notificări.</translation>
 <translation id="5426063383988017631">Meniul Setări închis</translation>
 <translation id="5428899915242071344">Începe selectarea</translation>
@@ -897,6 +907,7 @@
 <translation id="619279033188484792">Afișează fotografiile, elementele media și notificările recente ale telefonului pe <ph name="DEVICE_TYPE" /></translation>
 <translation id="619335566042889110">Încarcă complet acum</translation>
 <translation id="6193431488227440296">Dezvoltatori</translation>
+<translation id="6210042900243040400">Conectează <ph name="NAME" /> salvat anterior în <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Acum poți să te înregistrezi pe tine și ecranul tău în același timp</translation>
 <translation id="622484624075952240">Jos</translation>
 <translation id="6231419273573514727">Performanța dispozitivelor periferice poate fi limitată</translation>
@@ -1398,7 +1409,6 @@
 <translation id="9168436347345867845">Mai târziu</translation>
 <translation id="9178475906033259337">Se afișează un rezultat pentru <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Cu această funcție poți să accesezi rapid orice utilizator conectat fără solicitarea parolei. Folosește funcția numai pentru conturile în care ai încredere.</translation>
-<translation id="9180906851711123156">Apasă Ctrl + W pentru a închide</translation>
 <translation id="9183456764293710005">Lupă de ecran complet</translation>
 <translation id="9193626018745640770">Se proiectează pe un receiver necunoscut</translation>
 <translation id="9194617393863864469">Conectează-te cu alt nume de utilizator...</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index 94f01b6c..c05a253 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">Позже</translation>
 <translation id="9178475906033259337">Показан 1 результат поиска по запросу "<ph name="QUERY" />"</translation>
 <translation id="9179259655489829027">Эта функция позволяет быстро и без пароля получить доступ к любому аккаунту, в который выполнен вход. Используйте ее только для надежных аккаунтов.</translation>
-<translation id="9180906851711123156">Чтобы закрыть, нажмите клавиши Ctrl + W</translation>
 <translation id="9183456764293710005">Полноэкранная лупа</translation>
 <translation id="9193626018745640770">Трансляция на неизвестное устройство</translation>
 <translation id="9194617393863864469">Войти в другой аккаунт...</translation>
diff --git a/ash/strings/ash_strings_si.xtb b/ash/strings/ash_strings_si.xtb
index 09a9920..7a6b158 100644
--- a/ash/strings/ash_strings_si.xtb
+++ b/ash/strings/ash_strings_si.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">පසුව එය කරන්න</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> සඳහා ප්‍රතිඵල 1ක් දක්වමින්</translation>
 <translation id="9179259655489829027">මෙම විශේෂාංගය මුරපදයක අවශ්‍යතාවයෙන් තොරව ඕනෑම පුරන ලද පරිශීලකයෙකු වෙත ඉක්මනින් ප්‍රවේශ වීමට ඔබට ඉඩ දෙයි. ඔබ විශ්වාස කරන ගිණුම් සමඟ පමණක් මෙම විශේෂාංගය භාවිත කරන්න.</translation>
-<translation id="9180906851711123156">වැසීමට Ctrl+W ඔබන්න</translation>
 <translation id="9183456764293710005">පූර්ණ තිර විශාලකය</translation>
 <translation id="9193626018745640770">නොදන්නා ග්‍රාහකයෙකු මත විකාශය කරමින්</translation>
 <translation id="9194617393863864469">වෙනත් පරිශීලකයකු පිවිසෙන්න...</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb
index bc53dc4..c2540f3 100644
--- a/ash/strings/ash_strings_sk.xtb
+++ b/ash/strings/ash_strings_sk.xtb
@@ -897,6 +897,7 @@
 <translation id="619279033188484792">V zariadení <ph name="DEVICE_TYPE" /> si môžete pozrieť najnovšie fotky, médiá a upozornenia zo svojho telefónu</translation>
 <translation id="619335566042889110">Úplne nabiť</translation>
 <translation id="6193431488227440296">Vývoj.</translation>
+<translation id="6210042900243040400">Pripojte zariadenie <ph name="NAME" />, ktoré bolo v minulosti uložené v účte <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Teraz môžete súčasne nahrať seba aj svoju obrazovku</translation>
 <translation id="622484624075952240">Dole</translation>
 <translation id="6231419273573514727">Výkonnosť periférie môže byť obmedzená</translation>
@@ -1398,7 +1399,6 @@
 <translation id="9168436347345867845">Neskôr</translation>
 <translation id="9178475906033259337">Zobrazuje sa jeden výsledok pre <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Táto funkcia vám umožní rýchly prístup k ľubovoľnému prihlásenému používateľovi bez hesla. Používajte ju iba s dôveryhodnými účtami.</translation>
-<translation id="9180906851711123156">Zavrite stlačením klávesov Ctrl + W</translation>
 <translation id="9183456764293710005">Lupa na celú obrazovku</translation>
 <translation id="9193626018745640770">Prebieha prenášanie do neznámeho prijímača</translation>
 <translation id="9194617393863864469">Prihlásiť ďalšieho používateľa...</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index e150eeda..9b08a54b 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">Pozneje</translation>
 <translation id="9178475906033259337">Prikaz 1 rezultata za poizvedbo <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">S to funkcijo lahko hitro dostopate do poljubnega prijavljenega uporabnika, ne da bi vam bilo treba vnesti geslo. Uporabljajte to funkcijo samo z računi, ki jim zaupate.</translation>
-<translation id="9180906851711123156">Pritisnite Ctrl + W, če ga želite zapreti.</translation>
 <translation id="9183456764293710005">Celozaslonska lupa</translation>
 <translation id="9193626018745640770">Predvajanje v neznanem sprejemniku</translation>
 <translation id="9194617393863864469">Prijava drugega uporabnika ...</translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb
index 10b4824..50bb4116 100644
--- a/ash/strings/ash_strings_sq.xtb
+++ b/ash/strings/ash_strings_sq.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">Bëje më vonë</translation>
 <translation id="9178475906033259337">Po shfaq 1 rezultat për <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Ky funksion të lejon që të qasesh me shpejtësi te çdo përdorues i identifikuar pa kërkuar një fjalëkalim. Përdore këtë funksion vetëm me llogaritë që u beson.</translation>
-<translation id="9180906851711123156">Shtyp Ctrl + W për ta mbyllur</translation>
 <translation id="9183456764293710005">Zmadhuesi i ekranit të plotë</translation>
 <translation id="9193626018745640770">Po transmeton në një marrës të panjohur</translation>
 <translation id="9194617393863864469">Identifiko një përdorues tjetër...</translation>
diff --git a/ash/strings/ash_strings_sr-Latn.xtb b/ash/strings/ash_strings_sr-Latn.xtb
index b3b99ce5..2f6f445 100644
--- a/ash/strings/ash_strings_sr-Latn.xtb
+++ b/ash/strings/ash_strings_sr-Latn.xtb
@@ -760,6 +760,16 @@
 <translation id="5393156353051693207">Dodirnite i zadržite bilo gde da biste promenili redosled aplikacija</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> preko aplikacije <ph name="IN_PLACE_APP" />, otpustite da biste napravili direktorijum.</translation>
 <translation id="5397578532367286026">Menadžer (<ph name="MANAGER_EMAIL" />) može da pregleda korišćenje i istoriju ovog korisnika na chrome.com.</translation>
+<translation id="5399673806694250334">Statusna traka, vreme <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">Brza podešavanja, pritisnite taster za pretragu i strelicu ulevo da biste pristupili centru za obaveštenja.</translation>
 <translation id="5426063383988017631">Meni Podešavanja je zatvoren</translation>
 <translation id="5428899915242071344">Pokreni biranje</translation>
@@ -898,6 +908,7 @@
 <translation id="619279033188484792">Pregledajte nedavne slike, medijski sadržaj i obaveštenja telefona na uređaju <ph name="DEVICE_TYPE" /></translation>
 <translation id="619335566042889110">Odmah napunite do kraja</translation>
 <translation id="6193431488227440296">Razvojna</translation>
+<translation id="6210042900243040400">Povežite uređaj <ph name="NAME" /> prethodno sačuvan na <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Sada istovremeno možete da snimate sebe i ekran</translation>
 <translation id="622484624075952240">Nadole</translation>
 <translation id="6231419273573514727">Učinak perifernih uređaja će možda biti ograničen</translation>
@@ -1399,7 +1410,6 @@
 <translation id="9168436347345867845">Uradiću to kasnije</translation>
 <translation id="9178475906033259337">Prikazuje se jedan rezultat za: <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Ova funkcija vam omogućava da brzo pristupite bilo kom prijavljenom korisniku bez lozinke. Koristite ovu funkciju samo sa nalozima u koje imate poverenja.</translation>
-<translation id="9180906851711123156">Pritisnite Ctrl+W da biste zatvorili.</translation>
 <translation id="9183456764293710005">Lupa za ceo ekran</translation>
 <translation id="9193626018745640770">Prebacuje se na nepoznati prijemnik</translation>
 <translation id="9194617393863864469">Prijavite još jednog korisnika...</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb
index fb1b1d0..b22c930 100644
--- a/ash/strings/ash_strings_sr.xtb
+++ b/ash/strings/ash_strings_sr.xtb
@@ -760,6 +760,16 @@
 <translation id="5393156353051693207">Додирните и задржите било где да бисте променили редослед апликација</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> преко апликације <ph name="IN_PLACE_APP" />, отпустите да бисте направили директоријум.</translation>
 <translation id="5397578532367286026">Менаџер (<ph name="MANAGER_EMAIL" />) може да прегледа коришћење и историју овог корисника на chrome.com.</translation>
+<translation id="5399673806694250334">Статусна трака, време <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">Брза подешавања, притисните тастер за претрагу и стрелицу улево да бисте приступили центру за обавештења.</translation>
 <translation id="5426063383988017631">Мени Подешавања је затворен</translation>
 <translation id="5428899915242071344">Покрени бирање</translation>
@@ -898,6 +908,7 @@
 <translation id="619279033188484792">Прегледајте недавне слике, медијски садржај и обавештења телефона на уређају <ph name="DEVICE_TYPE" /></translation>
 <translation id="619335566042889110">Одмах напуните до краја</translation>
 <translation id="6193431488227440296">Развојна</translation>
+<translation id="6210042900243040400">Повежите уређај <ph name="NAME" /> претходно сачуван на <ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Сада истовремено можете да снимате себе и екран</translation>
 <translation id="622484624075952240">Надоле</translation>
 <translation id="6231419273573514727">Учинак периферних уређаја ће можда бити ограничен</translation>
@@ -1399,7 +1410,6 @@
 <translation id="9168436347345867845">Урадићу то касније</translation>
 <translation id="9178475906033259337">Приказује се један резултат за: <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Ова функција вам омогућава да брзо приступите било ком пријављеном кориснику без лозинке. Користите ову функцију само са налозима у које имате поверења.</translation>
-<translation id="9180906851711123156">Притисните Ctrl+W да бисте затворили.</translation>
 <translation id="9183456764293710005">Лупа за цео екран</translation>
 <translation id="9193626018745640770">Пребацује се на непознати пријемник</translation>
 <translation id="9194617393863864469">Пријавите још једног корисника...</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb
index d135b1fe..c95f2a20 100644
--- a/ash/strings/ash_strings_sv.xtb
+++ b/ash/strings/ash_strings_sv.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">Gör det senare</translation>
 <translation id="9178475906033259337">1 resultat visas för <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Med den här funktionen kan du snabbt öppna en inloggad användare utan att behöva ange lösenordet. Använd bara den här funktionen med konton som du litar på.</translation>
-<translation id="9180906851711123156">Stäng genom att trycka på Ctrl + W</translation>
 <translation id="9183456764293710005">Helskärmsförstoring</translation>
 <translation id="9193626018745640770">Castar till en okänd mottagare</translation>
 <translation id="9194617393863864469">Logga in med en annan användare ...</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb
index e532eed..f70e8ee 100644
--- a/ash/strings/ash_strings_sw.xtb
+++ b/ash/strings/ash_strings_sw.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">Gusa na ushikilie sehemu yoyote ili upange tena programu zako</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> iko juu ya <ph name="IN_PLACE_APP" />, achilia ili ufungue folda mpya.</translation>
 <translation id="5397578532367286026">Matumizi na historia ya mtumiaji huyu yanaweza kukaguliwa na msimamizi ( <ph name="MANAGER_EMAIL" /> ) kwenye chrome.com.</translation>
+<translation id="5399673806694250334">Trei ya hali, saa <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">Mipangilio ya Haraka, Bonyeza 'search + left' ili ufikie kituo cha arifa.</translation>
 <translation id="5426063383988017631">Menyu ya mipangilio imefungwa</translation>
 <translation id="5428899915242071344">Anza kuchagua</translation>
@@ -1399,7 +1409,6 @@
 <translation id="9168436347345867845">Ufanye baadaye</translation>
 <translation id="9178475906033259337">Inaonyesha matokeo moja ya <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Kipengele hiki kinakuruhusu ufikie kwa haraka mtumiaji yeyote aliyeingia katika akaunti bila ya kuweka nenosiri. Tumia kipengele hiki katika akaunti unazoamini pekee.</translation>
-<translation id="9180906851711123156">Bonyeza Ctrl+W ili ufunge</translation>
 <translation id="9183456764293710005">Kikuza Skrini Nzima</translation>
 <translation id="9193626018745640770">Inatuma kwenye kifaa au kwa mpokeaji usiyemjua</translation>
 <translation id="9194617393863864469">Ongeza akaunti nyingine...</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index 4f1f433..6cf18f3 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">பின்னர் செய்யலாம்</translation>
 <translation id="9178475906033259337"><ph name="QUERY" />க்கான ஒரு முடிவைக் காட்டுகிறது</translation>
 <translation id="9179259655489829027">கடவுச்சொல்லைக் கேட்காமல், உள்நுழைந்த பயனர் எவரையும் உடனடியாக அணுக இந்த அம்சம் உங்களை அனுமதிக்கிறது. நீங்கள் நம்பும் கணக்குகளுடன் மட்டும் இந்த அம்சத்தைப் பயன்படுத்தவும்.</translation>
-<translation id="9180906851711123156">மூட Ctrl+W அழுத்தவும்</translation>
 <translation id="9183456764293710005">முழுத்திரைப் பெரிதாக்கி</translation>
 <translation id="9193626018745640770">தெரியாத ரிசீவருக்கு அனுப்புகிறது</translation>
 <translation id="9194617393863864469">வேறொருவராக உள்நுழை...</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index 9a85809..1fc4f130 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -1410,7 +1410,6 @@
 <translation id="9168436347345867845">దీనిని తర్వాత చేయి</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> కోసం 1 ఫలితాన్ని ప్రదర్శిస్తోంది</translation>
 <translation id="9179259655489829027">ఈ ఫీచర్ ద్వారా పాస్‌వర్డ్ అవసరం లేకుండానే మీరు సైన్ ఇన్ చేసిన ఏ వినియోగదారునైనా త్వరగా యాక్సెస్ చేయగలుగుతారు. ఈ ఫీచర్‌ను మీరు విశ్వసించే ఖాతాలతో మాత్రమే ఉపయోగించండి.</translation>
-<translation id="9180906851711123156">మూసివేయడానికి Ctrl + W నొక్కండి</translation>
 <translation id="9183456764293710005">పూర్తి-స్క్రీన్‌ మ్యాగ్నిఫైయర్</translation>
 <translation id="9193626018745640770">తెలియని రిసీవర్‌లో ప్రసారం చేస్తోంది</translation>
 <translation id="9194617393863864469">మరొక వినియోగదారుగా సైన్ ఇన్ చేయండి...</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index e8aedcaa..ade6eb1b 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -327,6 +327,7 @@
 <translation id="2894949423239620203">สายสัญญาณอาจส่งผลต่อประสิทธิภาพ</translation>
 <translation id="2903844815300039659">เชื่อมต่อกับ <ph name="NAME" /> <ph name="STRENGTH" /></translation>
 <translation id="2914580577416829331">การจับภาพหน้าจอ</translation>
+<translation id="2925246975070834767">ลองใช้การซูมอัตโนมัติเพื่อให้คุณอยู่ตรงกลางหน้าจอ เปิดได้ในการตั้งค่าด่วน</translation>
 <translation id="2941112035454246133">ต่ำ</translation>
 <translation id="2942350706960889382">แว่นขยายหน้าจอบางส่วน</translation>
 <translation id="2942516765047364088">ตำแหน่งของชั้นวาง</translation>
@@ -634,6 +635,7 @@
 <translation id="4628757576491864469">อุปกรณ์</translation>
 <translation id="4631891353005174729"><ph name="APP_NAME_TYPE" />, การให้ดาว <ph name="RATING_SCORE" /></translation>
 <translation id="4633185660152240791">{0,plural, =1{เปลี่ยนอุปกรณ์เป็นเวอร์ชันก่อนหน้าภายใน 1 วัน}other{เปลี่ยนอุปกรณ์เป็นเวอร์ชันก่อนหน้าภายใน # วัน}}</translation>
+<translation id="4633636853437260449">กด Ctrl+W เพื่อลบ</translation>
 <translation id="4642092649622328492">ถ่ายภาพหน้าจอบางส่วน</translation>
 <translation id="4644727592819780893">พื้นที่เล็กเกินกว่าที่จะแสดงตัวอย่างกล้อง</translation>
 <translation id="4648249871170053485"><ph name="APP_NAME" />, แอปแนะนำ</translation>
@@ -1398,7 +1400,6 @@
 <translation id="9168436347345867845">ข้ามไปก่อน</translation>
 <translation id="9178475906033259337">กำลังแสดงผลการค้นหา 1 รายการสำหรับ "<ph name="QUERY" />"</translation>
 <translation id="9179259655489829027">ฟีเจอร์นี้ช่วยให้เข้าถึงผู้ใช้ที่ลงชื่อเข้าใช้แล้วได้อย่างรวดเร็วโดยไม่ต้องใช้รหัสผ่าน ใช้ฟีเจอร์นี้กับบัญชีที่คุณเชื่อถือเท่านั้น</translation>
-<translation id="9180906851711123156">กด Ctrl+W เพื่อปิด</translation>
 <translation id="9183456764293710005">แว่นขยายทั้งหน้าจอ</translation>
 <translation id="9193626018745640770">กำลังแคสต์ไปยังเครื่องรับที่ไม่รู้จัก</translation>
 <translation id="9194617393863864469">ลงชื่อเข้าใช้ด้วยชื่อผู้ใช้อื่น...</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb
index e3e90f0d..2136370 100644
--- a/ash/strings/ash_strings_tr.xtb
+++ b/ash/strings/ash_strings_tr.xtb
@@ -897,6 +897,7 @@
 <translation id="619279033188484792">Telefonunuzdaki son fotoğrafları, medya içeriklerini ve bildirimleri <ph name="DEVICE_TYPE" /> cihazınızda görün</translation>
 <translation id="619335566042889110">Şimdi tamamen şarj et</translation>
 <translation id="6193431488227440296">Geliştirme</translation>
+<translation id="6210042900243040400">Önceden <ph name="EMAIL" /> hesabına kaydedilmiş <ph name="NAME" /> cihazını bağlayın</translation>
 <translation id="6220928844947387476">Artık aynı anda hem kendinizi hem ekranınızı kaydedebilirsiniz</translation>
 <translation id="622484624075952240">Aşağı</translation>
 <translation id="6231419273573514727">Çevre birimlerinin performansı sınırlı olabilir</translation>
@@ -1398,7 +1399,6 @@
 <translation id="9168436347345867845">Daha sonra yap</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> için 1 sonuç gösteriliyor</translation>
 <translation id="9179259655489829027">Bu özellik oturum açmış tüm kullanıcılara şifre gerektirmeden hızlı bir şekilde erişmenize olanak verir. Bu özelliği sadece güvendiğiniz hesaplarda kullanın.</translation>
-<translation id="9180906851711123156">Kapatmak için Ctrl+W tuşlarına basın</translation>
 <translation id="9183456764293710005">Tam Ekran Büyüteci</translation>
 <translation id="9193626018745640770">Bilinmeyen bir alıcıya yayınlanıyor</translation>
 <translation id="9194617393863864469">Başka bir kullanıcı olarak oturum aç...</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index 496f6dd..9627dc0 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -1398,7 +1398,6 @@
 <translation id="9168436347345867845">Пізніше</translation>
 <translation id="9178475906033259337">Показано 1 результат для запиту "<ph name="QUERY" />"</translation>
 <translation id="9179259655489829027">Ця функція дає змогу швидко й без пароля змінити авторизованого користувача. Використовуйте її лише з обліковими записами, яким довіряєте.</translation>
-<translation id="9180906851711123156">Щоб закрити, натисніть Ctrl + W</translation>
 <translation id="9183456764293710005">Повноекранна лупа</translation>
 <translation id="9193626018745640770">Трансляція на невідомий пристрій</translation>
 <translation id="9194617393863864469">Увійти як інший користувач…</translation>
diff --git a/ash/strings/ash_strings_ur.xtb b/ash/strings/ash_strings_ur.xtb
index 633e2b3..9c69787 100644
--- a/ash/strings/ash_strings_ur.xtb
+++ b/ash/strings/ash_strings_ur.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">اپنی ایپس کو دوبارہ ترتیب دینے کے لیے کہیں بھی ٹچ کریں اور دبائے رکھیں</translation>
 <translation id="5395308026110844773"><ph name="IN_PLACE_APP" /> کے اوپر <ph name="DRAGGED_APP_NAME" />، فولڈر بنانے کیلئے ریلیز کریں۔</translation>
 <translation id="5397578532367286026">‏اس صارف کے استعمال اور سرگزشت کا chrome.com پر مینیجر (<ph name="MANAGER_EMAIL" />) کے ذریعے جائزہ لیا جا سکتا ہے۔</translation>
+<translation id="5399673806694250334">صورتحال کی ٹرے، وقت <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />،
+        <ph name="MIC" />,
+        <ph name="CAMERA" />،
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />،
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">فوری ترتیبات، اطلاع کے مرکز تک رسائی حاصل کرنے کے لیے تلاش + بائیں تیر والے بٹن کو دبائيں۔</translation>
 <translation id="5426063383988017631">ترتیبات کا مینو بند کیا گیا</translation>
 <translation id="5428899915242071344">منتخب کرنا شروع کریں</translation>
@@ -897,6 +907,7 @@
 <translation id="619279033188484792">اپنے <ph name="DEVICE_TYPE" /> پر اپنے فون کی حالیہ تصاویر، میڈیا اور اطلاعات دیکھیں</translation>
 <translation id="619335566042889110">اب پوری طرح چارج کریں</translation>
 <translation id="6193431488227440296">Dev</translation>
+<translation id="6210042900243040400"><ph name="EMAIL" /> میں پہلے سے محفوظ کردہ <ph name="NAME" /> سے منسلک ہوں</translation>
 <translation id="6220928844947387476">اب آپ اپنے آپ کو اور اپنی اسکرین کو ایک ہی وقت میں ریکارڈ کر سکتے ہیں</translation>
 <translation id="622484624075952240">نیچے</translation>
 <translation id="6231419273573514727">پیریفیرل کی کارکردگی محدود ہو سکتی ہے</translation>
@@ -1397,7 +1408,6 @@
 <translation id="9168436347345867845">اسے بعد میں کریں</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> کا 1 نتیجہ دکھایا جا رہا ہے</translation>
 <translation id="9179259655489829027">یہ خصوصیت آپ کو کسی بھی سائن ان کردہ صارف تک پاس ورڈ کا تقاضہ کیے بغیر تیزی سے رسائی حاصل کرنے کی اجازت دیتی ہے۔ یہ خصوصیت صرف اپنے معتبر اکاؤنٹس کے ساتھ استعمال کریں۔</translation>
-<translation id="9180906851711123156">‏بند کرنے کے لیے Ctrl + W‎ دبائیں</translation>
 <translation id="9183456764293710005">فُل اسکرین میگنیفائر</translation>
 <translation id="9193626018745640770">کسی نامعلوم موصول کنندہ پر کاسٹ کیا جا رہا ہے</translation>
 <translation id="9194617393863864469">کسی دوسرے صارف کے بطور سائن ان کریں…</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb
index 724ff75..bbfdc65 100644
--- a/ash/strings/ash_strings_uz.xtb
+++ b/ash/strings/ash_strings_uz.xtb
@@ -327,6 +327,7 @@
 <translation id="2894949423239620203">Kabel unumdorlikka taʼsir qilishi mumkin</translation>
 <translation id="2903844815300039659">Tarmoqqa ulandi: <ph name="NAME" />, <ph name="STRENGTH" /></translation>
 <translation id="2914580577416829331">Ekran tasvirlari</translation>
+<translation id="2925246975070834767">Doim ekran markazida boʻlish uchun avtozum funksiyasini sinang. Uni Tezkor sozlamalar orqali yoqish mumkin.</translation>
 <translation id="2941112035454246133">Past</translation>
 <translation id="2942350706960889382">Mahkamlangan lupa</translation>
 <translation id="2942516765047364088">Javon o‘rni</translation>
@@ -634,6 +635,7 @@
 <translation id="4628757576491864469">Qurilmalar</translation>
 <translation id="4631891353005174729"><ph name="APP_NAME_TYPE" />, Bahosi: <ph name="RATING_SCORE" /></translation>
 <translation id="4633185660152240791">{0,plural, =1{Qurilma tizimini bir kun ichida eski versiyaga qaytaring}other{Qurilma tizimini # kun ichida eski versiyaga qaytaring}}</translation>
+<translation id="4633636853437260449">Oʻchirish uchun Ctrl+W tugmalarini bosing</translation>
 <translation id="4642092649622328492">Qisman skrinshot olish</translation>
 <translation id="4644727592819780893">Hudud razm solish uchun biroz kichik</translation>
 <translation id="4648249871170053485"><ph name="APP_NAME" />, Ilova tavsiyasi</translation>
@@ -1409,7 +1411,6 @@
 <translation id="9168436347345867845">Keyinroq</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> – 1 ta natija chiqdi</translation>
 <translation id="9179259655489829027">Bu funksiya kirish bajarilgan istalgan hisobga tez va parolsiz ruxsat beradi. Faqatgina ishonchli hisoblarga qo‘llang.</translation>
-<translation id="9180906851711123156">Yopish uchun Ctrl+W tugmalarini bosing</translation>
 <translation id="9183456764293710005">Butun ekran rejimidagi lupa</translation>
 <translation id="9193626018745640770">Notanish qurilmaga translatsiya qilinmoqda</translation>
 <translation id="9194617393863864469">Boshqa hisobga kirish...</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index bcf6155..4325643 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -469,6 +469,7 @@
 <translation id="3708186454126126312">Đã kết nối trước đây</translation>
 <translation id="371370241367527062">Micrô mặt trước</translation>
 <translation id="3713734891607377840">Mở khi hoàn tất</translation>
+<translation id="3724279623330129812">Tính năng tự động thu phóng đã căn giữa máy ảnh</translation>
 <translation id="3726171378575546917"><ph name="UNAVAILABLE_APPS_ONE" />, <ph name="UNAVAILABLE_APPS_TWO" />, và <ph name="UNAVAILABLE_APPS_COUNT" /> ứng dụng khác không có trên thiết bị này.</translation>
 <translation id="3735740477244556633">Sắp xếp theo</translation>
 <translation id="3742055079367172538">Ảnh màn hình đã chụp</translation>
@@ -759,6 +760,16 @@
 <translation id="5393156353051693207">Chạm và giữ vị trí bất kỳ để sắp xếp lại ứng dụng</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> nằm trên <ph name="IN_PLACE_APP" />, thả để tạo thư mục.</translation>
 <translation id="5397578532367286026">Người quản lý (<ph name="MANAGER_EMAIL" />) trên chrome.com có thể xem lại mức sử dụng và lịch sử của người dùng này.</translation>
+<translation id="5399673806694250334">Khay trạng thái, thời gian <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">Cài đặt nhanh, Nhấn vào phím tìm kiếm + mũi tên trái để truy cập vào trung tâm thông báo.</translation>
 <translation id="5426063383988017631">Đã đóng trình đơn Cài đặt</translation>
 <translation id="5428899915242071344">Bắt đầu chọn</translation>
@@ -1399,7 +1410,6 @@
 <translation id="9168436347345867845">Thực hiện sau</translation>
 <translation id="9178475906033259337">Đang hiển thị 1 kết quả cho <ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Tính năng này cho phép bạn truy cập nhanh vào bất kỳ người dùng đã đăng nhập nào mà không cần mật khẩu. Chỉ sử dụng tính năng này với các tài khoản mà bạn tin tưởng.</translation>
-<translation id="9180906851711123156">Nhấn tổ hợp phím Ctrl+W để đóng</translation>
 <translation id="9183456764293710005">Phóng to toàn màn hình</translation>
 <translation id="9193626018745640770">Đang truyền trên bộ thu không xác định</translation>
 <translation id="9194617393863864469">Đăng nhập tài khoản khác...</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb
index 6045fad..d93ad02 100644
--- a/ash/strings/ash_strings_zh-CN.xtb
+++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -759,6 +759,16 @@
 <translation id="5393156353051693207">若要将您的应用重新排序,请轻触并按住任意位置</translation>
 <translation id="5395308026110844773">“<ph name="DRAGGED_APP_NAME" />”已拖至“<ph name="IN_PLACE_APP" />”上,松开即可创建文件夹。</translation>
 <translation id="5397578532367286026">管理员 (<ph name="MANAGER_EMAIL" />) 可在 chrome.com 上查看该用户的使用情况和历史记录。</translation>
+<translation id="5399673806694250334">状态栏,时间为 <ph name="TIME" />,
+        <ph name="BATTERY" />
+        <ph name="CHANNEL" />
+        <ph name="NETWORK" />,
+        <ph name="MIC" />,
+        <ph name="CAMERA" />,
+        <ph name="MANAGED" />
+        <ph name="NOTIFICATION" />,
+        <ph name="IME" />
+        <ph name="LOCALE" /></translation>
 <translation id="5400461572260843123">快捷设置,按搜索键 + 向左箭头键可访问通知中心。</translation>
 <translation id="5426063383988017631">已关闭“设置”菜单</translation>
 <translation id="5428899915242071344">开始选择</translation>
@@ -897,6 +907,7 @@
 <translation id="619279033188484792">在 <ph name="DEVICE_TYPE" /> 上查看手机中近期拍摄的照片、播放的媒体和收到的通知</translation>
 <translation id="619335566042889110">立即充满电</translation>
 <translation id="6193431488227440296">开发者</translation>
+<translation id="6210042900243040400">关联已保存到 <ph name="EMAIL" /> 的“<ph name="NAME" />”</translation>
 <translation id="6220928844947387476">现在,您可以同时录制您本人和屏幕内容</translation>
 <translation id="622484624075952240">向下箭头键</translation>
 <translation id="6231419273573514727">外围设备的性能可能会受到限制</translation>
@@ -1395,7 +1406,6 @@
 <translation id="9168436347345867845">以后再说</translation>
 <translation id="9178475906033259337">显示了 1 条与“<ph name="QUERY" />”相符的结果</translation>
 <translation id="9179259655489829027">借助此功能,您无需使用密码即可快速访问任何已登录的用户。请仅对您信任的帐号使用此功能。</translation>
-<translation id="9180906851711123156">按 Ctrl+W 即可关闭</translation>
 <translation id="9183456764293710005">全屏放大镜</translation>
 <translation id="9193626018745640770">正在投放至不明接收器</translation>
 <translation id="9194617393863864469">登录其他用户帐号…</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb
index 3dfa9c6..da015fb3 100644
--- a/ash/strings/ash_strings_zh-HK.xtb
+++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -906,6 +906,7 @@
 <translation id="619279033188484792">在 <ph name="DEVICE_TYPE" /> 上查看手機最近的相片、媒體和通知</translation>
 <translation id="619335566042889110">現已完全充滿</translation>
 <translation id="6193431488227440296">開發發佈途徑</translation>
+<translation id="6210042900243040400">連線至 <ph name="EMAIL" /> 先前儲存的 <ph name="NAME" /></translation>
 <translation id="6220928844947387476">您現在可以錄製鏡頭畫面和螢幕畫面</translation>
 <translation id="622484624075952240">向下鍵</translation>
 <translation id="6231419273573514727">周邊裝置的效能可能受到限制</translation>
@@ -1406,7 +1407,6 @@
 <translation id="9168436347345867845">稍後再說</translation>
 <translation id="9178475906033259337">顯示緊 1 個同「<ph name="QUERY" />」有關嘅結果</translation>
 <translation id="9179259655489829027">這項功能讓您可快速登入任何已登入的使用者帳戶,無需使用密碼。建議您只讓信任的帳戶使用此功能。</translation>
-<translation id="9180906851711123156">㩒一下 Ctrl+W 就可以閂咗佢</translation>
 <translation id="9183456764293710005">全螢幕放大鏡</translation>
 <translation id="9193626018745640770">正在投放到不明接收器</translation>
 <translation id="9194617393863864469">登入其他使用者…</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index 30b5dc1..3fb47fd 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -907,6 +907,7 @@
 <translation id="619279033188484792">透過 <ph name="DEVICE_TYPE" /> 查看手機上最近的相片、媒體和通知</translation>
 <translation id="619335566042889110">立即充飽電</translation>
 <translation id="6193431488227440296">開發版</translation>
+<translation id="6210042900243040400">連線到 <ph name="EMAIL" /> 先前儲存的「<ph name="NAME" />」</translation>
 <translation id="6220928844947387476">你現在可以同時錄製鏡頭畫面和螢幕畫面</translation>
 <translation id="622484624075952240">向下鍵</translation>
 <translation id="6231419273573514727">周邊裝置效能可能受到限制</translation>
@@ -1407,7 +1408,6 @@
 <translation id="9168436347345867845">稍後再說</translation>
 <translation id="9178475906033259337">目前正顯示 1 項與「<ph name="QUERY" />」相符的搜尋結果</translation>
 <translation id="9179259655489829027">這項功能可讓你快速存取任何已登入的使用者帳戶,不需提供密碼。使用這項功能時,請務必只存取你信任的帳戶。</translation>
-<translation id="9180906851711123156">按下 Ctrl + W 鍵即可關閉</translation>
 <translation id="9183456764293710005">全螢幕放大鏡</translation>
 <translation id="9193626018745640770">正在透過不明接收器投放</translation>
 <translation id="9194617393863864469">登入其他使用者帳戶...</translation>
diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb
index 980bd640..7c5c370 100644
--- a/ash/strings/ash_strings_zu.xtb
+++ b/ash/strings/ash_strings_zu.xtb
@@ -897,6 +897,7 @@
 <translation id="619279033188484792">Buka izithombe zakamuva zefoni yakho, imidiya, kanye nezaziso ku-<ph name="DEVICE_TYPE" /> yakho</translation>
 <translation id="619335566042889110">Shaja ngokugcwele manje</translation>
 <translation id="6193431488227440296">I-Dev</translation>
+<translation id="6210042900243040400">Xhuma i-<ph name="NAME" /> elondolozwe ngokwedlule ku-<ph name="EMAIL" /></translation>
 <translation id="6220928844947387476">Manje usungakwazi ukuzirekhoda wena nesikrini sakho ngesikhathi esifanayo</translation>
 <translation id="622484624075952240">Phansi</translation>
 <translation id="6231419273573514727">Ukusebenza kwemingcele kungakhawulelwa</translation>
@@ -1398,7 +1399,6 @@
 <translation id="9168436347345867845">Yenza emuva kwesikhathi</translation>
 <translation id="9178475906033259337">Ukubonisa umphumela ongu-1 we-<ph name="QUERY" /></translation>
 <translation id="9179259655489829027">Lesi sici sikuvumela ukuthi ufinyelele ngokushesha kunoma imuphi umsebenzisi ongene ngemvume ngaphandle kokudinga iphasiwedi. Sebenzisa kuphela lesi sici ngama-akhawunti owathembayo.</translation>
-<translation id="9180906851711123156">Cindezela u-Ctrl+W ukuze uvale</translation>
 <translation id="9183456764293710005">Isikhulisi sesikrini esigcwele</translation>
 <translation id="9193626018745640770">Isakaza kumamukeli ongaziwa</translation>
 <translation id="9194617393863864469">Ngena ngemvume komunye umsebenzisi...</translation>
diff --git a/ash/style/ash_color_provider.cc b/ash/style/ash_color_provider.cc
index 21f26a6..de37ffeb 100644
--- a/ash/style/ash_color_provider.cc
+++ b/ash/style/ash_color_provider.cc
@@ -196,37 +196,8 @@
 }
 
 SkColor AshColorProvider::GetContentLayerColor(ContentLayerType type) const {
-  return GetContentLayerColorImpl(type, IsDarkModeEnabled());
-}
-
-SkColor AshColorProvider::GetActiveDialogTitleBarColor() const {
-  return cros_styles::ResolveColor(cros_styles::ColorName::kDialogTitleBarColor,
-                                   IsDarkModeEnabled());
-}
-
-SkColor AshColorProvider::GetInactiveDialogTitleBarColor() const {
-  // TODO(wenbojie): Use a different inactive color in future.
-  return GetActiveDialogTitleBarColor();
-}
-
-std::pair<SkColor, float> AshColorProvider::GetInkDropBaseColorAndOpacity(
-    SkColor background_color) const {
-  if (background_color == gfx::kPlaceholderColor)
-    background_color = GetBackgroundColor();
-
-  const bool is_dark = color_utils::IsDark(background_color);
-  const SkColor base_color = is_dark ? SK_ColorWHITE : SK_ColorBLACK;
-  const float opacity = is_dark ? kLightInkDropOpacity : kDarkInkDropOpacity;
-  return std::make_pair(base_color, opacity);
-}
-
-SkColor AshColorProvider::GetBackgroundColor() const {
-  return GetBackgroundThemedColorImpl(GetBackgroundDefaultColor(),
-                                      IsDarkModeEnabled());
-}
-
-SkColor AshColorProvider::GetContentLayerColorImpl(ContentLayerType type,
-                                                   bool use_dark_color) const {
+  bool use_dark_color = IsDarkModeEnabled();
+  auto* color_provider = GetColorProvider();
   switch (type) {
     case ContentLayerType::kSeparatorColor:
     case ContentLayerType::kShelfHandleColor:
@@ -257,15 +228,13 @@
       return SkColorSetA(
           use_dark_color ? gfx::kGoogleBlue300 : gfx::kGoogleBlue600, 0x4C);
     case ContentLayerType::kSwitchTrackColorActive:
-      return GetSecondToneColor(GetContentLayerColorImpl(
-          ContentLayerType::kSwitchKnobColorActive, use_dark_color));
+      return color_provider->GetColor(kColorAshSwitchTrackColorActive);
     case ContentLayerType::kButtonLabelColorPrimary:
     case ContentLayerType::kButtonIconColorPrimary:
     case ContentLayerType::kBatteryBadgeColor:
       return use_dark_color ? gfx::kGoogleGrey900 : gfx::kGoogleGrey200;
     case ContentLayerType::kAppStateIndicatorColorInactive:
-      return GetDisabledColor(GetContentLayerColorImpl(
-          ContentLayerType::kAppStateIndicatorColor, use_dark_color));
+      return color_provider->GetColor(kColorAshAppStateIndicatorColorInactive);
     case ContentLayerType::kCurrentDeskColor:
       return use_dark_color ? SK_ColorWHITE : SK_ColorBLACK;
     case ContentLayerType::kSwitchAccessInnerStrokeColor:
@@ -276,6 +245,7 @@
       return use_dark_color ? SkColorSetA(SK_ColorWHITE, 0x0D)
                             : SkColorSetA(SK_ColorBLACK, 0x14);
     case ContentLayerType::kAppStateIndicatorColor:
+      return color_provider->GetColor(kColorAshAppStateIndicatorColor);
     case ContentLayerType::kButtonIconColor:
     case ContentLayerType::kButtonLabelColor:
       return use_dark_color ? gfx::kGoogleGrey200 : gfx::kGoogleGrey900;
@@ -292,6 +262,32 @@
   }
 }
 
+SkColor AshColorProvider::GetActiveDialogTitleBarColor() const {
+  return cros_styles::ResolveColor(cros_styles::ColorName::kDialogTitleBarColor,
+                                   IsDarkModeEnabled());
+}
+
+SkColor AshColorProvider::GetInactiveDialogTitleBarColor() const {
+  // TODO(wenbojie): Use a different inactive color in future.
+  return GetActiveDialogTitleBarColor();
+}
+
+std::pair<SkColor, float> AshColorProvider::GetInkDropBaseColorAndOpacity(
+    SkColor background_color) const {
+  if (background_color == gfx::kPlaceholderColor)
+    background_color = GetBackgroundColor();
+
+  const bool is_dark = color_utils::IsDark(background_color);
+  const SkColor base_color = is_dark ? SK_ColorWHITE : SK_ColorBLACK;
+  const float opacity = is_dark ? kLightInkDropOpacity : kDarkInkDropOpacity;
+  return std::make_pair(base_color, opacity);
+}
+
+SkColor AshColorProvider::GetBackgroundColor() const {
+  return GetBackgroundThemedColorImpl(GetBackgroundDefaultColor(),
+                                      IsDarkModeEnabled());
+}
+
 SkColor AshColorProvider::GetBackgroundDefaultColor() const {
   return IsDarkModeEnabled() ? gfx::kGoogleGrey900 : SK_ColorWHITE;
 }
diff --git a/ash/style/ash_color_provider.h b/ash/style/ash_color_provider.h
index 3300db3..aee899e 100644
--- a/ash/style/ash_color_provider.h
+++ b/ash/style/ash_color_provider.h
@@ -61,11 +61,6 @@
   SkColor GetBackgroundColor() const;
 
  private:
-  // Gets the color of |type| of the corresponding layer. Returns the color on
-  // dark mode if |use_dark_color| is true.
-  SkColor GetContentLayerColorImpl(ContentLayerType type,
-                                   bool use_dark_color) const;
-
   // Gets the background default color based on the current color mode.
   SkColor GetBackgroundDefaultColor() const;
 
diff --git a/ash/style/ash_color_provider_unittest.cc b/ash/style/ash_color_provider_unittest.cc
index c9b526a8e..3ea09eb 100644
--- a/ash/style/ash_color_provider_unittest.cc
+++ b/ash/style/ash_color_provider_unittest.cc
@@ -307,7 +307,7 @@
           SkColorSetRGB(0x20, 0x21, 0x24)},
          {ColorMode::kLight,
           ColorProvider::ContentLayerType::kAppStateIndicatorColorInactive,
-          SkColorSetARGB(0x61, 0x20, 0x21, 0x24)},
+          SkColorSetARGB(0x60, 0x20, 0x21, 0x24)},
 
          {ColorMode::kLight, ColorProvider::ContentLayerType::kShelfHandleColor,
           SkColorSetARGB(0x24, 0x0, 0x0, 0x0)},
@@ -333,7 +333,7 @@
           SkColorSetRGB(0xFF, 0xFF, 0xFF)},
          {ColorMode::kLight,
           ColorProvider::ContentLayerType::kSwitchTrackColorActive,
-          SkColorSetARGB(0x4D, 0x1A, 0x73, 0xE8)},
+          SkColorSetARGB(0x4C, 0x1A, 0x73, 0xE8)},
          {ColorMode::kLight,
           ColorProvider::ContentLayerType::kSwitchTrackColorInactive,
           SkColorSetARGB(0x4D, 0x5F, 0x63, 0x68)},
@@ -441,7 +441,7 @@
           SkColorSetRGB(0xE8, 0xEA, 0xED)},
          {ColorMode::kDark,
           ColorProvider::ContentLayerType::kAppStateIndicatorColorInactive,
-          SkColorSetARGB(0x61, 0xE8, 0xEA, 0xED)},
+          SkColorSetARGB(0x60, 0xE8, 0xEA, 0xED)},
 
          {ColorMode::kDark, ColorProvider::ContentLayerType::kShelfHandleColor,
           SkColorSetARGB(0x24, 0xFF, 0xFF, 0xFF)},
@@ -466,7 +466,7 @@
           SkColorSetRGB(0xBD, 0xC1, 0xC6)},
          {ColorMode::kDark,
           ColorProvider::ContentLayerType::kSwitchTrackColorActive,
-          SkColorSetARGB(0x4D, 0x8A, 0xB4, 0xF8)},
+          SkColorSetARGB(0x4C, 0x8A, 0xB4, 0xF8)},
          {ColorMode::kDark,
           ColorProvider::ContentLayerType::kSwitchTrackColorInactive,
           SkColorSetARGB(0x4D, 0xE8, 0xEA, 0xED)},
diff --git a/ash/system/holding_space/holding_space_item_chip_view.cc b/ash/system/holding_space/holding_space_item_chip_view.cc
index bb1e1961..a95c8ea 100644
--- a/ash/system/holding_space/holding_space_item_chip_view.cc
+++ b/ash/system/holding_space/holding_space_item_chip_view.cc
@@ -13,6 +13,7 @@
 #include "ash/public/cpp/holding_space/holding_space_controller.h"
 #include "ash/public/cpp/holding_space/holding_space_item.h"
 #include "ash/public/cpp/holding_space/holding_space_progress.h"
+#include "ash/public/cpp/holding_space/holding_space_util.h"
 #include "ash/public/cpp/rounded_image_view.h"
 #include "ash/resources/vector_icons/vector_icons.h"
 #include "ash/strings/grit/ash_strings.h"
@@ -491,14 +492,13 @@
   if (delegate())
     delegate()->OnHoldingSpaceItemViewSecondaryActionPressed(this);
 
-  // Pause.
-  if (secondary_action_pause_->GetVisible()) {
-    HoldingSpaceController::Get()->client()->PauseItems({item()});
-    return;
-  }
-
-  // Resume.
-  HoldingSpaceController::Get()->client()->ResumeItems({item()});
+  // Pause/Resume.
+  const HoldingSpaceCommandId command_id =
+      secondary_action_pause_->GetVisible()
+          ? HoldingSpaceCommandId::kPauseItem
+          : HoldingSpaceCommandId::kResumeItem;
+  if (!holding_space_util::ExecuteInProgressCommand(item(), command_id))
+    NOTREACHED();
 }
 
 void HoldingSpaceItemChipView::UpdateImage() {
@@ -642,10 +642,10 @@
   // NOTE: Only in-progress items currently support secondary actions.
   const bool has_secondary_action =
       !checkmark()->GetVisible() && !item()->progress().IsComplete() &&
-      (base::Contains(item()->in_progress_commands(),
-                      HoldingSpaceCommandId::kPauseItem) ||
-       base::Contains(item()->in_progress_commands(),
-                      HoldingSpaceCommandId::kResumeItem)) &&
+      (holding_space_util::SupportsInProgressCommand(
+           item(), HoldingSpaceCommandId::kPauseItem) ||
+       holding_space_util::SupportsInProgressCommand(
+           item(), HoldingSpaceCommandId::kResumeItem)) &&
       IsMouseHovered();
 
   if (!has_secondary_action) {
@@ -655,8 +655,8 @@
   }
 
   // Pause/resume.
-  const bool is_item_paused = base::Contains(
-      item()->in_progress_commands(), HoldingSpaceCommandId::kResumeItem);
+  const bool is_item_paused = holding_space_util::SupportsInProgressCommand(
+      item(), HoldingSpaceCommandId::kResumeItem);
   secondary_action_pause_->SetVisible(!is_item_paused);
   secondary_action_resume_->SetVisible(is_item_paused);
 
diff --git a/ash/system/holding_space/holding_space_item_view.cc b/ash/system/holding_space/holding_space_item_view.cc
index 60da819..112df85 100644
--- a/ash/system/holding_space/holding_space_item_view.cc
+++ b/ash/system/holding_space/holding_space_item_view.cc
@@ -9,6 +9,7 @@
 #include "ash/public/cpp/holding_space/holding_space_controller.h"
 #include "ash/public/cpp/holding_space/holding_space_item.h"
 #include "ash/public/cpp/holding_space/holding_space_progress.h"
+#include "ash/public/cpp/holding_space/holding_space_util.h"
 #include "ash/public/cpp/shelf_config.h"
 #include "ash/resources/vector_icons/vector_icons.h"
 #include "ash/style/ash_color_provider.h"
@@ -462,7 +463,10 @@
 
   // Cancel.
   if (primary_action_cancel_->GetVisible()) {
-    HoldingSpaceController::Get()->client()->CancelItems({item()});
+    if (!holding_space_util::ExecuteInProgressCommand(
+            item(), HoldingSpaceCommandId::kCancelItem)) {
+      NOTREACHED();
+    }
     return;
   }
 
@@ -498,9 +502,8 @@
   // NOTE: Only in-progress items currently support cancellation.
   const bool is_item_in_progress = !item()->progress().IsComplete();
   primary_action_cancel_->SetVisible(
-      is_item_in_progress &&
-      base::Contains(item()->in_progress_commands(),
-                     HoldingSpaceCommandId::kCancelItem));
+      is_item_in_progress && holding_space_util::SupportsInProgressCommand(
+                                 item(), HoldingSpaceCommandId::kCancelItem));
 
   // Pin.
   const bool is_item_pinned =
diff --git a/ash/system/holding_space/holding_space_tray_unittest.cc b/ash/system/holding_space/holding_space_tray_unittest.cc
index 5d1b61a..f5073fc 100644
--- a/ash/system/holding_space/holding_space_tray_unittest.cc
+++ b/ash/system/holding_space/holding_space_tray_unittest.cc
@@ -24,6 +24,7 @@
 #include "ash/shelf/shelf.h"
 #include "ash/shelf/shelf_widget.h"
 #include "ash/shell.h"
+#include "ash/strings/grit/ash_strings.h"
 #include "ash/system/holding_space/holding_space_animation_registry.h"
 #include "ash/system/holding_space/holding_space_item_view.h"
 #include "ash/system/holding_space/holding_space_tray_icon_preview.h"
@@ -49,6 +50,7 @@
 #include "ui/events/base_event_utils.h"
 #include "ui/gfx/geometry/transform_util.h"
 #include "ui/gfx/image/image_skia.h"
+#include "ui/gfx/paint_vector_icon.h"
 #include "ui/views/controls/menu/menu_controller.h"
 #include "ui/views/controls/menu/menu_item_view.h"
 #include "url/gurl.h"
@@ -64,6 +66,14 @@
 
 // Helpers ---------------------------------------------------------------------
 
+HoldingSpaceItem::InProgressCommand CreateInProgressCommand(
+    HoldingSpaceCommandId command_id,
+    int label_id,
+    HoldingSpaceItem::InProgressCommand::Handler handler = base::DoNothing()) {
+  return HoldingSpaceItem::InProgressCommand(
+      command_id, label_id, &gfx::kNoneIcon, std::move(handler));
+}
+
 // A wrapper around `views::View::GetVisible()` with a null check for `view`.
 bool IsViewVisible(const views::View* view) {
   return view && view->GetVisible();
@@ -2661,10 +2671,26 @@
               HoldingSpaceProgress(0, 100))};
 
   // In-progress download items typically support in-progress commands.
+  std::vector<const HoldingSpaceItem*> cancelled_items;
+  std::vector<const HoldingSpaceItem*> paused_items;
   for (HoldingSpaceItem* item : items) {
-    EXPECT_TRUE(
-        item->SetInProgressCommands({HoldingSpaceCommandId::kCancelItem,
-                                     HoldingSpaceCommandId::kPauseItem}));
+    EXPECT_TRUE(item->SetInProgressCommands(
+        {CreateInProgressCommand(
+             HoldingSpaceCommandId::kCancelItem,
+             IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_CANCEL,
+             base::BindLambdaForTesting([&](const HoldingSpaceItem* item,
+                                            HoldingSpaceCommandId command_id) {
+               DCHECK_EQ(command_id, HoldingSpaceCommandId::kCancelItem);
+               cancelled_items.push_back(item);
+             })),
+         CreateInProgressCommand(
+             HoldingSpaceCommandId::kPauseItem,
+             IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_PAUSE,
+             base::BindLambdaForTesting([&](const HoldingSpaceItem* item,
+                                            HoldingSpaceCommandId command_id) {
+               DCHECK_EQ(command_id, HoldingSpaceCommandId::kPauseItem);
+               paused_items.push_back(item);
+             }))}));
   }
 
   // Show UI.
@@ -2698,10 +2724,14 @@
     ViewDrawnWaiter().Wait(primary_action);
 
     // Click the 1st item's primary action. Selection state shouldn't change.
-    EXPECT_CALL(*client(), CancelItems(ElementsAre(item_views[0]->item())));
+    EXPECT_TRUE(cancelled_items.empty());
     Click(primary_action);
+    EXPECT_THAT(cancelled_items, ElementsAre(item_views[0]->item()));
     EXPECT_TRUE(item_views[0]->selected());
     EXPECT_FALSE(item_views[1]->selected());
+
+    // Reset tracking.
+    cancelled_items.clear();
   }
 
   // Move mouse to the 2nd item.
@@ -2715,8 +2745,9 @@
     ViewDrawnWaiter().Wait(primary_action);
 
     // Click the 2nd item's primary action. Selection state should change.
-    EXPECT_CALL(*client(), CancelItems(ElementsAre(item_views[1]->item())));
+    EXPECT_TRUE(cancelled_items.empty());
     Click(primary_action);
+    EXPECT_THAT(cancelled_items, ElementsAre(item_views[1]->item()));
     EXPECT_FALSE(item_views[0]->selected());
     EXPECT_FALSE(item_views[1]->selected());
   }
@@ -2732,10 +2763,14 @@
     ViewDrawnWaiter().Wait(secondary_action);
 
     // Click the 2nd item's secondary action. Selection state shouldn't change.
-    EXPECT_CALL(*client(), PauseItems(ElementsAre(item_views[1]->item())));
+    EXPECT_TRUE(paused_items.empty());
     Click(secondary_action);
+    EXPECT_THAT(paused_items, ElementsAre(item_views[1]->item()));
     EXPECT_FALSE(item_views[0]->selected());
     EXPECT_TRUE(item_views[1]->selected());
+
+    // Reset tracking.
+    paused_items.clear();
   }
 
   // Move mouse to the 1st item.
@@ -2749,8 +2784,9 @@
     ViewDrawnWaiter().Wait(secondary_action);
 
     // Click the 1st item's secondary action. Selection state should change.
-    EXPECT_CALL(*client(), PauseItems(ElementsAre(item_views[0]->item())));
+    EXPECT_TRUE(paused_items.empty());
     Click(secondary_action);
+    EXPECT_THAT(paused_items, ElementsAre(item_views[0]->item()));
     EXPECT_FALSE(item_views[0]->selected());
     EXPECT_FALSE(item_views[1]->selected());
   }
@@ -3031,9 +3067,11 @@
 
   // In-progress download items typically support in-progress commands.
   if (HoldingSpaceItem::IsDownload(item->type())) {
-    EXPECT_TRUE(
-        item->SetInProgressCommands({HoldingSpaceCommandId::kCancelItem,
-                                     HoldingSpaceCommandId::kPauseItem}));
+    EXPECT_TRUE(item->SetInProgressCommands(
+        {CreateInProgressCommand(HoldingSpaceCommandId::kCancelItem,
+                                 IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_CANCEL),
+         CreateInProgressCommand(HoldingSpaceCommandId::kPauseItem,
+                                 IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_PAUSE)}));
   }
 
   // Show holding space UI.
diff --git a/ash/system/holding_space/holding_space_view_delegate.cc b/ash/system/holding_space/holding_space_view_delegate.cc
index c7fdf7e..a969e5e 100644
--- a/ash/system/holding_space/holding_space_view_delegate.cc
+++ b/ash/system/holding_space/holding_space_view_delegate.cc
@@ -11,6 +11,7 @@
 #include "ash/public/cpp/holding_space/holding_space_metrics.h"
 #include "ash/public/cpp/holding_space/holding_space_model.h"
 #include "ash/public/cpp/holding_space/holding_space_progress.h"
+#include "ash/public/cpp/holding_space/holding_space_util.h"
 #include "ash/resources/vector_icons/vector_icons.h"
 #include "ash/strings/grit/ash_strings.h"
 #include "ash/system/holding_space/holding_space_drag_util.h"
@@ -20,6 +21,7 @@
 #include "base/bind.h"
 #include "base/callback_helpers.h"
 #include "base/containers/contains.h"
+#include "base/containers/cxx20_erase_vector.h"
 #include "net/base/mime_util.h"
 #include "ui/accessibility/ax_action_data.h"
 #include "ui/accessibility/ax_enums.mojom.h"
@@ -492,22 +494,17 @@
   data->SetFilenames(filenames);
 }
 
-void HoldingSpaceViewDelegate::ExecuteCommand(int command_id, int event_flags) {
+void HoldingSpaceViewDelegate::ExecuteCommand(int command, int event_flags) {
   const std::vector<const HoldingSpaceItem*> items(GetItems(GetSelection()));
   DCHECK_GE(items.size(), 1u);
 
+  const auto command_id = static_cast<HoldingSpaceCommandId>(command);
   HoldingSpaceClient* const client = HoldingSpaceController::Get()->client();
-  switch (static_cast<HoldingSpaceCommandId>(command_id)) {
-    case HoldingSpaceCommandId::kCancelItem:
-      client->CancelItems(items);
-      break;
+  switch (command_id) {
     case HoldingSpaceCommandId::kCopyImageToClipboard:
       DCHECK_EQ(items.size(), 1u);
       client->CopyImageToClipboard(*items.front(), base::DoNothing());
       break;
-    case HoldingSpaceCommandId::kPauseItem:
-      client->PauseItems(items);
-      break;
     case HoldingSpaceCommandId::kPinItem:
       client->PinItems(items);
       break;
@@ -524,9 +521,6 @@
           },
           std::cref(items)));
       break;
-    case HoldingSpaceCommandId::kResumeItem:
-      client->ResumeItems(items);
-      break;
     case HoldingSpaceCommandId::kShowInFolder:
       DCHECK_EQ(items.size(), 1u);
       client->ShowItemInFolder(*items.front(), base::DoNothing());
@@ -535,7 +529,14 @@
       client->UnpinItems(items);
       break;
     default:
-      NOTREACHED();
+      if (holding_space_util::IsInProgressCommand(command_id)) {
+        for (const HoldingSpaceItem* item : items) {
+          if (!holding_space_util::ExecuteInProgressCommand(item, command_id))
+            NOTREACHED();
+        }
+      } else {
+        NOTREACHED();
+      }
       break;
   }
 }
@@ -554,9 +555,10 @@
   std::vector<const HoldingSpaceItemView*> selection = GetSelection();
   DCHECK_GE(selection.size(), 1u);
 
-  bool is_pausable = true;
-  bool is_resumable = true;
-  bool is_cancelable = true;
+  // Whether any item in `selection` is complete.
+  bool is_any_item_complete = false;
+
+  // Whether all items in `selection` are removable.
   bool is_removable = true;
 
   // A value for `is_pinnable` will only be present if the `selection` contains
@@ -564,29 +566,32 @@
   // items are ignored with respect to pin-/unpin-ability.
   absl::optional<bool> is_pinnable;
 
+  // A value for `in_progress_commands` will only be present if the `selection`
+  // does *not* contain any items which are complete.
+  absl::optional<std::vector<HoldingSpaceItem::InProgressCommand>>
+      in_progress_commands;
+
   HoldingSpaceModel* const model = HoldingSpaceController::Get()->model();
   for (const HoldingSpaceItemView* view : selection) {
     const HoldingSpaceItem* item = view->item();
 
-    // NOTE: The "Pause"/"Resume"/"Cancel" commands are only currently supported
-    // by in-progress holding space items.
-    if (!item->progress().IsComplete()) {
-      // The "Pause" command should only be present if *all* of the selected
-      // holding space items are pausable.
-      is_pausable &= base::Contains(item->in_progress_commands(),
-                                    HoldingSpaceCommandId::kPauseItem);
-
-      // The "Resume" command should only be present if *all* of the selected
-      // holding space items are resumable.
-      is_resumable &= base::Contains(item->in_progress_commands(),
-                                     HoldingSpaceCommandId::kResumeItem);
-
-      // The "Cancel" command should only be present if *all* of the selected
-      // holding space items are cancelable.
-      is_cancelable &= base::Contains(item->in_progress_commands(),
-                                      HoldingSpaceCommandId::kCancelItem);
+    // In-progress commands are only available if supported by the entire
+    // `selection`. In-progress commands supported by only a subset of the
+    // `selection` are removed.
+    if (!item->progress().IsComplete() && !is_any_item_complete) {
+      if (!in_progress_commands.has_value()) {
+        in_progress_commands = item->in_progress_commands();
+      } else {
+        base::EraseIf(in_progress_commands.value(),
+                      [&](const HoldingSpaceItem::InProgressCommand&
+                              in_progress_command) {
+                        return !holding_space_util::SupportsInProgressCommand(
+                            item, in_progress_command.command_id);
+                      });
+      }
     } else {
-      is_pausable = is_resumable = is_cancelable = false;
+      in_progress_commands = absl::nullopt;
+      is_any_item_complete = true;
     }
 
     // The "Remove" command should only be present if *all* of the selected
@@ -616,28 +621,18 @@
   using MenuSectionModel = std::vector<MenuItemModel>;
   std::vector<MenuSectionModel> menu_sections(1);
 
-  if (is_pausable) {
-    menu_sections.back().emplace_back(
-        MenuItemModel{.command_id = HoldingSpaceCommandId::kPauseItem,
-                      .label_id = IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_PAUSE,
-                      .icon = kPauseIcon});
+  // In-progress commands.
+  if (in_progress_commands.has_value()) {
+    for (const HoldingSpaceItem::InProgressCommand& in_progress_command :
+         in_progress_commands.value()) {
+      menu_sections.back().emplace_back(
+          MenuItemModel{.command_id = in_progress_command.command_id,
+                        .label_id = in_progress_command.label_id,
+                        .icon = *in_progress_command.icon});
+    }
   }
 
-  if (is_resumable) {
-    menu_sections.back().emplace_back(
-        MenuItemModel{.command_id = HoldingSpaceCommandId::kResumeItem,
-                      .label_id = IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_RESUME,
-                      .icon = kResumeIcon});
-  }
-
-  if (is_cancelable) {
-    menu_sections.back().emplace_back(
-        MenuItemModel{.command_id = HoldingSpaceCommandId::kCancelItem,
-                      .label_id = IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_CANCEL,
-                      .icon = kCancelIcon});
-  }
-
-  // The "Pause"/"Resume"/"Cancel" commands are separated from other commands.
+  // The in-progress commands are separated from other commands.
   if (!menu_sections.back().empty())
     menu_sections.emplace_back();
 
diff --git a/ash/system/power/tray_power.cc b/ash/system/power/tray_power.cc
index 0de404d..76292ff 100644
--- a/ash/system/power/tray_power.cc
+++ b/ash/system/power/tray_power.cc
@@ -42,7 +42,6 @@
 
 PowerTrayView::PowerTrayView(Shelf* shelf) : TrayItemView(shelf) {
   CreateImageView();
-  UpdateStatus();
 
   PowerStatus::Get()->AddObserver(this);
 }
@@ -78,6 +77,7 @@
 
 void PowerTrayView::OnThemeChanged() {
   TrayItemView::OnThemeChanged();
+  UpdateStatus();
   UpdateImage(/*icon_color_changed=*/true);
 }
 
@@ -118,9 +118,6 @@
     return;
   info_ = info;
 
-  if (!icon_color_changed)
-    return;
-
   // Note: The icon color (both fg and bg) changes when the UI in in OOBE mode.
   const SkColor icon_fg_color = TrayIconColor(session_state_);
   const SkColor icon_bg_color = color_utils::GetResultingPaintColor(
diff --git a/ash/test/ash_pixel_test_init_params.h b/ash/test/ash_pixel_test_init_params.h
new file mode 100644
index 0000000..3ffdc2b
--- /dev/null
+++ b/ash/test/ash_pixel_test_init_params.h
@@ -0,0 +1,26 @@
+// Copyright (c) 2022 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_TEST_ASH_PIXEL_TEST_INIT_PARAMS_H_
+#define ASH_TEST_ASH_PIXEL_TEST_INIT_PARAMS_H_
+
+namespace ash::pixel_test {
+
+// Lists the wallpaper types supported during the pixel test setup.
+enum class WallpaperInitType {
+  // Initializes a regular wallpaper.
+  kRegular,
+
+  // Initializes a policy wallpaper.
+  kPolicy
+};
+
+// The params that control the pixel test setup.
+struct InitParams {
+  WallpaperInitType wallpaper_init_type = WallpaperInitType::kRegular;
+};
+
+}  // namespace ash::pixel_test
+
+#endif  // ASH_TEST_ASH_PIXEL_TEST_INIT_PARAMS_H_
diff --git a/ash/test/ash_test_base.cc b/ash/test/ash_test_base.cc
index e2558cf..c270c0f 100644
--- a/ash/test/ash_test_base.cc
+++ b/ash/test/ash_test_base.cc
@@ -133,7 +133,8 @@
   params.start_session = start_session_;
   params.delegate = std::move(delegate);
   params.local_state = local_state();
-  params.is_pixel_test = is_pixel_test_;
+  params.pixel_test_init_params =
+      (pixel_diff_init_params_ ? &*pixel_diff_init_params_ : nullptr);
   ash_test_helper_ = std::make_unique<AshTestHelper>();
   ash_test_helper_->SetUp(std::move(params));
 }
@@ -316,6 +317,13 @@
 }
 
 void AshTestBase::PrepareForPixelDiffTest() {
+  // Expect this function to be called before setup. Because the code that
+  // stabilizes the system UI for pixel tests should be executed during setup.
+  CHECK(!setup_called_);
+
+  CHECK(!pixel_diff_init_params_);
+  pixel_diff_init_params_ = pixel_test::InitParams();
+
   // In pixel tests, we want to take screenshots then compare them with the
   // benchmark images. Therefore, enable pixel output in tests.
   base::CommandLine::ForCurrentProcess()->AppendSwitch(
@@ -325,12 +333,17 @@
   // are stable.
   base::CommandLine::ForCurrentProcess()->AppendSwitch(
       switches::kStabilizeTimeDependentViewForTests);
+}
 
-  // Expect this function to be called before setup. Because the code that
-  // stabilizes the system UI for pixel tests should be executed during setup.
+void AshTestBase::SetPixelTestInitParam(const pixel_test::InitParams& params) {
+  // The init params are required during setup. Therefore, the params should be
+  // set before setup is called.
   CHECK(!setup_called_);
 
-  is_pixel_test_ = true;
+  // `PrepareForPixelDiffTest()` should be called before.
+  CHECK(pixel_diff_init_params_);
+
+  pixel_diff_init_params_ = params;
 }
 
 void AshTestBase::SetUserPref(const std::string& user_email,
diff --git a/ash/test/ash_test_base.h b/ash/test/ash_test_base.h
index 9a44a1f..6425d774a 100644
--- a/ash/test/ash_test_base.h
+++ b/ash/test/ash_test_base.h
@@ -14,6 +14,7 @@
 #include "ash/constants/app_types.h"
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/session/test_session_controller_client.h"
+#include "ash/test/ash_pixel_test_init_params.h"
 #include "ash/wm/desks/desks_util.h"
 #include "ash/wm/overview/overview_types.h"
 #include "base/compiler_specific.h"
@@ -183,10 +184,18 @@
   // Attach |window| to the current shell's root window.
   void ParentWindowInPrimaryRootWindow(aura::Window* window);
 
-  // Prepares for the pixel diff test. NOTE: this function should be called
-  // before `SetUp()`.
+  // Prepares for the pixel diff test. When getting called, this function sets
+  // the default pixel diff test init params. Users need to call
+  // `SetPixelTestInitParam()` if they want to customize the pixel test setup.
+  // NOTE: this function should be called before `setup_called_` becomes true.
   void PrepareForPixelDiffTest();
 
+  // Sets the pixel diff test init params. Only called if users want to
+  // customize the pixel test setup.
+  // NOTE: `PrepareForPixelDiffTest()` has to be called before. In addition,
+  // call this function before `setup_called_` becomes true.
+  void SetPixelTestInitParam(const pixel_test::InitParams& params);
+
   // Returns the EventGenerator that uses screen coordinates and works
   // across multiple displays. It creates a new generator if it
   // hasn't been created yet.
@@ -332,8 +341,9 @@
   // SetUp() doesn't activate session if this is set to false.
   bool start_session_ = true;
 
-  // True if the test is a pixel diff test. Set by `PrepareForPixelDiffTest()`.
-  bool is_pixel_test_ = false;
+  // The parameters to initialize the pixel diff test. Used only when the ash
+  // test is also a pixel diff test.
+  absl::optional<pixel_test::InitParams> pixel_diff_init_params_;
 
   // |task_environment_| is initialized-once at construction time but
   // subclasses may elect to provide their own.
diff --git a/ash/test/ash_test_helper.cc b/ash/test/ash_test_helper.cc
index 9409f83..920478d 100644
--- a/ash/test/ash_test_helper.cc
+++ b/ash/test/ash_test_helper.cc
@@ -49,6 +49,7 @@
 #include "ui/aura/window.h"
 #include "ui/aura/window_tree_host.h"
 #include "ui/base/ime/ash/mock_input_method_manager.h"
+#include "ui/color/color_provider_manager.h"
 #include "ui/display/display_switches.h"
 #include "ui/display/manager/display_manager.h"
 #include "ui/display/test/display_manager_test_api.h"
@@ -190,6 +191,10 @@
   statistics_provider_.reset();
   command_line_.reset();
 
+  // Purge ColorProviderManager between tests so that we don't accumulate
+  // ColorProviderInitializers. crbug.com/1349232.
+  ui::ColorProviderManager::ResetForTesting();
+
   AuraTestHelper::TearDown();
 
   // Cleanup the global state for InputMethodManager, but only if
@@ -233,10 +238,13 @@
 }
 
 void AshTestHelper::SetUp(InitParams init_params) {
-  // Constructing `ui_stabilizer_` sets the locale. Therefore, building
-  // `ui_stabilizer_` before the code that establishes the Ash UI.
-  if (init_params.is_pixel_test)
-    ui_stabilizer_ = std::make_unique<AshTestUiStabilizer>();
+  // Build `ui_stabilizer_` only for a pixel diff test.
+  if (init_params.pixel_test_init_params) {
+    // Constructing `ui_stabilizer_` sets the locale. Therefore, building
+    // `ui_stabilizer_` before the code that establishes the Ash UI.
+    ui_stabilizer_ = std::make_unique<AshTestUiStabilizer>(
+        *init_params.pixel_test_init_params);
+  }
 
   // This block of objects are conditionally initialized here rather than in the
   // constructor to make it easier for test classes to override them.
@@ -367,7 +375,8 @@
   AccelerometerReader::GetInstance()->SetECLidAngleDriverStatusForTesting(
       ECLidAngleDriverStatus::NOT_SUPPORTED);
 
-  if (init_params.is_pixel_test) {
+  if (ui_stabilizer_) {
+    DCHECK(init_params.pixel_test_init_params);
     const gfx::Size primary_display_size =
         display::Screen::GetScreen()
             ->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow())
diff --git a/ash/test/ash_test_helper.h b/ash/test/ash_test_helper.h
index 37773d2..ac1a8dba 100644
--- a/ash/test/ash_test_helper.h
+++ b/ash/test/ash_test_helper.h
@@ -56,6 +56,10 @@
 class MockInputMethodManager;
 }  // namespace input_method
 
+namespace pixel_test {
+struct InitParams;
+}  // namespace pixel_test
+
 // A helper class that does common initialization required for Ash. Creates a
 // root window and an ash::Shell instance with a test delegate.
 class AshTestHelper : public aura::test::AuraTestHelper {
@@ -72,8 +76,8 @@
     std::unique_ptr<ShellDelegate> delegate;
     PrefService* local_state = nullptr;
 
-    // True if the initialized test is a pixel diff test.
-    bool is_pixel_test = false;
+    // Used only when setting up a pixel diff test.
+    base::raw_ptr<pixel_test::InitParams> pixel_test_init_params = nullptr;
   };
 
   // Instantiates/destroys an AshTestHelper. This can happen in a
diff --git a/ash/test/ash_test_ui_stabilizer.cc b/ash/test/ash_test_ui_stabilizer.cc
index cc73f0e..d836f382 100644
--- a/ash/test/ash_test_ui_stabilizer.cc
+++ b/ash/test/ash_test_ui_stabilizer.cc
@@ -35,8 +35,9 @@
 
 }  // namespace
 
-AshTestUiStabilizer::AshTestUiStabilizer()
-    : scoped_locale_(base::test::ScopedRestoreICUDefaultLocale(kLocale)),
+AshTestUiStabilizer::AshTestUiStabilizer(const pixel_test::InitParams& params)
+    : params_(params),
+      scoped_locale_(base::test::ScopedRestoreICUDefaultLocale(kLocale)),
       time_zone_(base::test::ScopedRestoreDefaultTimezone(kTimeZone)) {}
 
 AshTestUiStabilizer::~AshTestUiStabilizer() = default;
@@ -62,14 +63,27 @@
   auto* controller = Shell::Get()->wallpaper_controller();
   controller->set_wallpaper_reload_no_delay_for_test();
 
-  gfx::ImageSkia wallpaper_image = CreateImage(wallpaper_size, kWallPaperColor);
-  controller->ShowWallpaperImage(
-      wallpaper_image,
-      WallpaperInfo{/*in_location=*/std::string(),
-                    /*in_layout=*/WALLPAPER_LAYOUT_STRETCH,
-                    /*in_type=*/WallpaperType::kDefault,
-                    /*in_date=*/base::Time::Now().LocalMidnight()},
-      /*preview_mode=*/false, /*always_on_top=*/false);
+  switch (params_.wallpaper_init_type) {
+    case pixel_test::WallpaperInitType::kRegular: {
+      gfx::ImageSkia wallpaper_image =
+          CreateImage(wallpaper_size, kWallPaperColor);
+      controller->ShowWallpaperImage(
+          wallpaper_image,
+          WallpaperInfo{/*in_location=*/std::string(),
+                        /*in_layout=*/WALLPAPER_LAYOUT_STRETCH,
+                        /*in_type=*/WallpaperType::kDefault,
+                        /*in_date=*/base::Time::Now().LocalMidnight()},
+          /*preview_mode=*/false, /*always_on_top=*/false);
+      break;
+    }
+    case pixel_test::WallpaperInitType::kPolicy:
+      controller->set_bypass_decode_for_testing();
+
+      // A dummy file path is sufficient for setting a default policy wallpaper.
+      controller->SetDevicePolicyWallpaperPath(base::FilePath("tmp.png"));
+
+      break;
+  }
 }
 
 void AshTestUiStabilizer::SetBatteryState() {
diff --git a/ash/test/ash_test_ui_stabilizer.h b/ash/test/ash_test_ui_stabilizer.h
index ef6fb8a..c9416317 100644
--- a/ash/test/ash_test_ui_stabilizer.h
+++ b/ash/test/ash_test_ui_stabilizer.h
@@ -5,6 +5,7 @@
 #ifndef ASH_TEST_ASH_TEST_UI_STABILIZER_H_
 #define ASH_TEST_ASH_TEST_UI_STABILIZER_H_
 
+#include "ash/test/ash_pixel_test_init_params.h"
 #include "ash/wallpaper/test_wallpaper_controller_client.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/test/icu_test_util.h"
@@ -18,7 +19,7 @@
 // A test helper class that sets up the system UI for pixel tests.
 class AshTestUiStabilizer {
  public:
-  AshTestUiStabilizer();
+  explicit AshTestUiStabilizer(const pixel_test::InitParams& params);
   AshTestUiStabilizer(const AshTestUiStabilizer&) = delete;
   AshTestUiStabilizer& operator=(const AshTestUiStabilizer&) = delete;
   ~AshTestUiStabilizer();
@@ -39,6 +40,8 @@
   // change during pixel tests.
   void SetBatteryState();
 
+  const pixel_test::InitParams params_;
+
   // Used for setting the locale and the time zone.
   const base::test::ScopedRestoreICUDefaultLocale scoped_locale_;
   const base::test::ScopedRestoreDefaultTimezone time_zone_;
diff --git a/ash/tooltips/tooltip_controller_unittest.cc b/ash/tooltips/tooltip_controller_unittest.cc
index 882d9e4..381a07d 100644
--- a/ash/tooltips/tooltip_controller_unittest.cc
+++ b/ash/tooltips/tooltip_controller_unittest.cc
@@ -129,6 +129,7 @@
   Shell::Get()->cursor_manager()->EnableMouseEvents();
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(Shell::Get()->cursor_manager()->IsCursorVisible());
+  generator.MoveMouseBy(0, 1);
   helper_->UpdateIfRequired(TooltipTrigger::kCursor);
   EXPECT_TRUE(helper_->IsTooltipVisible());
 }
diff --git a/ash/wallpaper/wallpaper_pref_manager.cc b/ash/wallpaper/wallpaper_pref_manager.cc
index 9a2ef87..eb16f2c 100644
--- a/ash/wallpaper/wallpaper_pref_manager.cc
+++ b/ash/wallpaper/wallpaper_pref_manager.cc
@@ -18,6 +18,7 @@
 #include "ash/shell.h"
 #include "base/bind.h"
 #include "base/check.h"
+#include "base/containers/adapters.h"
 #include "base/containers/flat_map.h"
 #include "base/files/file_path.h"
 #include "base/memory/raw_ptr.h"
@@ -458,8 +459,8 @@
     DictionaryPrefUpdate daily_google_photos_ids_update(
         local_state_, prefs::kRecentDailyGooglePhotosWallpapers);
     base::Value::List id_list;
-    for (auto id = ids.rbegin(); id != ids.rend(); id++) {
-      id_list.Append(base::NumberToString(*id));
+    for (const auto& id : base::Reversed(ids)) {
+      id_list.Append(base::NumberToString(id));
     }
     base::Value id_list_value(std::move(id_list));
     daily_google_photos_ids_update->SetKey(account_id.GetUserEmail(),
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_en-GB.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_en-GB.xtb
index 016a54cc..288a14a9 100644
--- a/ash/webui/camera_app_ui/resources/strings/camera_strings_en-GB.xtb
+++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_en-GB.xtb
@@ -7,6 +7,7 @@
 <translation id="1258009455399840361">Rotate 90 degrees clockwise</translation>
 <translation id="1276998909102132017">Gallery images</translation>
 <translation id="1300209025925956156">Scan your document</translation>
+<translation id="1309250603447638106">Downloading updates for document scanning</translation>
 <translation id="137991641490787891"><ph name="ASPECT_RATIO_WIDTH" />. Search + left arrow to access.</translation>
 <translation id="1393338179284529051">Quad HD</translation>
 <translation id="1430915738399379752">Print</translation>
@@ -47,6 +48,7 @@
 <translation id="2816865716882637212">HD</translation>
 <translation id="28682968802727151">Mirror preview</translation>
 <translation id="2879583609344924966"><ph name="CAMERA" /> is plugged in.</translation>
+<translation id="2904654629665923749">Document scan available</translation>
 <translation id="2968794441791257519">Photos and videos taken with the camera will be moved to the Downloads folder. You can access them in Files.
 
         Apps with storage permissions will have access to your photos and videos.</translation>
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_mk.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_mk.xtb
index 47a77b09..364da88 100644
--- a/ash/webui/camera_app_ui/resources/strings/camera_strings_mk.xtb
+++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_mk.xtb
@@ -7,6 +7,7 @@
 <translation id="1258009455399840361">Ротирајте 90 степени во насока на стрелките на часовникот</translation>
 <translation id="1276998909102132017">Слики од галеријата</translation>
 <translation id="1300209025925956156">Скенирајте го документот</translation>
+<translation id="1309250603447638106">Преземете ги ажурирањата за скенирање документи</translation>
 <translation id="137991641490787891"><ph name="ASPECT_RATIO_WIDTH" />. Search + стрелка налево за пристап.</translation>
 <translation id="1393338179284529051">Quad HD</translation>
 <translation id="1430915738399379752">Печати</translation>
@@ -47,6 +48,7 @@
 <translation id="2816865716882637212">HD</translation>
 <translation id="28682968802727151">Преглед на отсликување</translation>
 <translation id="2879583609344924966"><ph name="CAMERA" /> е приклучена.</translation>
+<translation id="2904654629665923749">Достапно е скенирање документи</translation>
 <translation id="2968794441791257519">Фотографиите и видеата снимени со камерата ќе се преместат во папката „Преземања“. До нив може да пристапувате од „Датотеки“.
 
         Апликациите со дозволи за складирање ќе имаат пристап до вашите фотографии и видеа.</translation>
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_ml.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_ml.xtb
index a106c04..6c427f7 100644
--- a/ash/webui/camera_app_ui/resources/strings/camera_strings_ml.xtb
+++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_ml.xtb
@@ -7,6 +7,7 @@
 <translation id="1258009455399840361">ഘടികാരദിശയിൽ 90 ഡിഗ്രി റൊട്ടേറ്റ് ചെയ്യുക</translation>
 <translation id="1276998909102132017">ഗാലറി ചിത്രങ്ങൾ</translation>
 <translation id="1300209025925956156">നിങ്ങളുടെ ഡോക്യുമെന്റ് സ്‌കാൻ ചെയ്യുക</translation>
+<translation id="1309250603447638106">ഡോക്യുമെന്റ് സ്‌കാൻ ചെയ്യലിനുള്ള അപ്ഡേറ്റുകൾ ഡൗൺലോഡ് ചെയ്യുന്നു</translation>
 <translation id="137991641490787891"><ph name="ASPECT_RATIO_WIDTH" />. ആക്‌സസ് ചെയ്യാൻ തിരയൽ + ഇടത്തേയ്ക്കുള്ള അമ്പടയാളം അമർത്തുക.</translation>
 <translation id="1393338179284529051">Quad HD</translation>
 <translation id="1430915738399379752">പ്രിന്റ് ചെയ്യുക</translation>
@@ -47,6 +48,7 @@
 <translation id="2816865716882637212">HD</translation>
 <translation id="28682968802727151">മിറർ പ്രിവ്യു</translation>
 <translation id="2879583609344924966"><ph name="CAMERA" /> പ്ലഗ്-ഇൻ ചെയ്‌തിരിക്കുന്നു.</translation>
+<translation id="2904654629665923749">ഡോക്യുമെന്റ് സ്‌കാൻ ലഭ്യമാണ്</translation>
 <translation id="2968794441791257519">ക്യാമറ ഉപയോഗിച്ച് എടുത്ത ഫോട്ടോകളും വീഡിയോകളും 'ഡൗൺലോഡുകൾ' ഫോൾഡറിലേക്ക് നീക്കും. നിങ്ങൾക്ക് അവ Files-ൽ ആക്‌സസ് ചെയ്യാനാവും.
 
 സ്‌റ്റോറേജ് അനുമതികളുള്ള ആപ്പുകൾക്ക് നിങ്ങളുടെ ഫോട്ടോകളിലേക്കും വീഡിയോകളിലേക്കും ആക്‌സസ് ഉണ്ടായിരിക്കും.</translation>
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_vi.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_vi.xtb
index 0732bccc..5a55814 100644
--- a/ash/webui/camera_app_ui/resources/strings/camera_strings_vi.xtb
+++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_vi.xtb
@@ -7,6 +7,7 @@
 <translation id="1258009455399840361">Xoay 90 độ theo chiều kim đồng hồ</translation>
 <translation id="1276998909102132017">Ảnh trong thư viện</translation>
 <translation id="1300209025925956156">Quét tài liệu của bạn</translation>
+<translation id="1309250603447638106">Đang tải bản cập nhật xuống để sử dụng tính năng quét tài liệu</translation>
 <translation id="137991641490787891"><ph name="ASPECT_RATIO_WIDTH" />. Hãy nhấn tổ hợp phím Tìm kiếm + Mũi tên trái để truy cập.</translation>
 <translation id="1393338179284529051">Quad HD</translation>
 <translation id="1430915738399379752">In</translation>
@@ -47,6 +48,7 @@
 <translation id="2816865716882637212">HD</translation>
 <translation id="28682968802727151">Xem trước gương</translation>
 <translation id="2879583609344924966">Đã cắm <ph name="CAMERA" /> vào thiết bị.</translation>
+<translation id="2904654629665923749">Có tính năng quét tài liệu</translation>
 <translation id="2968794441791257519">Ảnh và video mà bạn chụp và quay bằng máy ảnh sẽ được chuyển đến thư mục Tệp đã tải xuống. Bạn có thể truy cập vào những nội dung này trong ứng dụng Files.
 
         Ứng dụng có quyền truy cập vào bộ nhớ sẽ có quyền truy cập vào ảnh và video của bạn.</translation>
diff --git a/ash/webui/common/resources/navigation_selector.js b/ash/webui/common/resources/navigation_selector.js
index 09a161e..595382c 100644
--- a/ash/webui/common/resources/navigation_selector.js
+++ b/ash/webui/common/resources/navigation_selector.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import './navigation_icons.html.js';
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/shared_style_css.m.js';
 import 'chrome://resources/cr_elements/shared_vars_css.m.js';
 import 'chrome://resources/polymer/v3_0/iron-collapse/iron-collapse.js';
diff --git a/ash/webui/diagnostics_ui/resources/ip_config_info_drawer.js b/ash/webui/diagnostics_ui/resources/ip_config_info_drawer.js
index 229bc602..d8c186f 100644
--- a/ash/webui/diagnostics_ui/resources/ip_config_info_drawer.js
+++ b/ash/webui/diagnostics_ui/resources/ip_config_info_drawer.js
@@ -4,7 +4,7 @@
 
 import './data_point.js';
 import './diagnostics_shared_css.js';
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 
 import {I18nBehavior} from 'chrome://resources/js/i18n_behavior.m.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
diff --git a/ash/webui/facial_ml_app_ui/BUILD.gn b/ash/webui/facial_ml_app_ui/BUILD.gn
new file mode 100644
index 0000000..601682d
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/BUILD.gn
@@ -0,0 +1,26 @@
+# Copyright 2022 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("//build/config/chromeos/ui_mode.gni")
+import("//ui/webui/resources/tools/generate_grd.gni")
+
+assert(!is_official_build,
+       "Facial ML App is only built for unofficial builds for now")
+assert(is_chromeos_ash, "Facial ML App is ash-chrome only")
+
+static_library("facial_ml_app_ui") {
+  sources = [
+    "facial_ml_app_ui.cc",
+    "facial_ml_app_ui.h",
+    "url_constants.cc",
+    "url_constants.h",
+  ]
+
+  deps = [
+    "//ash/webui/resources:facial_ml_app_resources",
+    "//ash/webui/system_apps/public:system_web_app_config",
+    "//content/public/browser",
+    "//ui/webui",
+  ]
+}
diff --git a/ash/webui/facial_ml_app_ui/DEPS b/ash/webui/facial_ml_app_ui/DEPS
new file mode 100644
index 0000000..b9b8672
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/DEPS
@@ -0,0 +1,5 @@
+include_rules = [
+  # Do not depend on chrome (use a delegate instead).
+  "-chrome",
+  "+ui/webui",
+]
diff --git a/ash/webui/facial_ml_app_ui/DIR_METADATA b/ash/webui/facial_ml_app_ui/DIR_METADATA
new file mode 100644
index 0000000..c66f5d5
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/DIR_METADATA
@@ -0,0 +1,4 @@
+buganizer {
+  component_id: 1210432
+}
+os: CHROME_OS
diff --git a/ash/webui/facial_ml_app_ui/OWNERS b/ash/webui/facial_ml_app_ui/OWNERS
new file mode 100644
index 0000000..308ba7a
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/OWNERS
@@ -0,0 +1,7 @@
+googleo@chromium.org
+yipingchen@chromium.org
+
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
+
+# Internal Component: b/components/1210432
diff --git a/ash/webui/facial_ml_app_ui/facial_ml_app_ui.cc b/ash/webui/facial_ml_app_ui/facial_ml_app_ui.cc
new file mode 100644
index 0000000..fcd48065
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/facial_ml_app_ui.cc
@@ -0,0 +1,53 @@
+// Copyright 2022 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/webui/facial_ml_app_ui/facial_ml_app_ui.h"
+
+#include <utility>
+
+#include "ash/webui/facial_ml_app_ui/url_constants.h"
+#include "ash/webui/grit/ash_facial_ml_app_resources.h"
+#include "ash/webui/grit/ash_facial_ml_app_resources_map.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/browser/web_ui.h"
+#include "content/public/browser/web_ui_data_source.h"
+#include "content/public/common/url_constants.h"
+#include "ui/webui/webui_allowlist.h"
+
+namespace ash {
+
+FacialMLAppUI::FacialMLAppUI(content::WebUI* web_ui)
+    : ui::MojoWebUIController(web_ui) {
+  auto* browser_context = web_ui->GetWebContents()->GetBrowserContext();
+  content::WebUIDataSource* trusted_source =
+      content::WebUIDataSource::CreateAndAdd(browser_context,
+                                             kChromeUIFacialMLAppHost);
+  trusted_source->AddResourcePath("", IDR_ASH_FACIAL_ML_APP_INDEX_HTML);
+  trusted_source->AddResourcePaths(
+      base::make_span(kAshFacialMlAppResources, kAshFacialMlAppResourcesSize));
+
+#if !DCHECK_IS_ON()
+  // Skip default page setting in the product mode, so the developers will get
+  // an error page if anything is wrong.
+  trusted_source->SetDefaultResource(IDR_ASH_FACIAL_ML_APP_INDEX_HTML);
+#endif  // !DCHECK_IS_ON()
+
+  // Register common permissions for chrome://facial_ml pages.
+  auto* webui_allowlist = WebUIAllowlist::GetOrCreate(browser_context);
+  const url::Origin app_origin =
+      url::Origin::Create(GURL(kChromeUIFacialMLAppURL));
+  webui_allowlist->RegisterAutoGrantedPermissions(
+      app_origin, {
+                      ContentSettingsType::COOKIES,
+                      ContentSettingsType::JAVASCRIPT,
+                      ContentSettingsType::IMAGES,
+                      ContentSettingsType::SOUND,
+                  });
+}
+
+FacialMLAppUI::~FacialMLAppUI() = default;
+
+WEB_UI_CONTROLLER_TYPE_IMPL(FacialMLAppUI)
+
+}  // namespace ash
diff --git a/ash/webui/facial_ml_app_ui/facial_ml_app_ui.h b/ash/webui/facial_ml_app_ui/facial_ml_app_ui.h
new file mode 100644
index 0000000..da46b40
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/facial_ml_app_ui.h
@@ -0,0 +1,36 @@
+// Copyright 2022 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_WEBUI_FACIAL_ML_APP_UI_FACIAL_ML_APP_UI_H_
+#define ASH_WEBUI_FACIAL_ML_APP_UI_FACIAL_ML_APP_UI_H_
+
+#include "ash/webui/facial_ml_app_ui/url_constants.h"
+#include "ash/webui/system_apps/public/system_web_app_ui_config.h"
+#include "content/public/browser/webui_config.h"
+#include "ui/webui/mojo_web_ui_controller.h"
+
+namespace ash {
+
+class FacialMLAppUI : public ui::MojoWebUIController {
+ public:
+  explicit FacialMLAppUI(content::WebUI* web_ui);
+  FacialMLAppUI(const FacialMLAppUI&) = delete;
+  FacialMLAppUI& operator=(const FacialMLAppUI&) = delete;
+  ~FacialMLAppUI() override;
+
+ private:
+  WEB_UI_CONTROLLER_TYPE_DECL();
+};
+
+// The WebUIConfig for chrome://facial-ml/.
+class FacialMLAppUIConfig : public SystemWebAppUIConfig<FacialMLAppUI> {
+ public:
+  FacialMLAppUIConfig()
+      : SystemWebAppUIConfig(kChromeUIFacialMLAppHost,
+                             SystemWebAppType::FACIAL_ML) {}
+};
+
+}  // namespace ash
+
+#endif  // ASH_WEBUI_FACIAL_ML_APP_UI_FACIAL_ML_APP_UI_H_
diff --git a/ash/webui/facial_ml_app_ui/resources/trusted/BUILD.gn b/ash/webui/facial_ml_app_ui/resources/trusted/BUILD.gn
new file mode 100644
index 0000000..210dd2fc
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/resources/trusted/BUILD.gn
@@ -0,0 +1,43 @@
+# Copyright 2022 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("//build/config/chromeos/ui_mode.gni")
+import("//tools/typescript/ts_library.gni")
+import("//ui/webui/resources/tools/generate_grd.gni")
+
+assert(is_chromeos_ash, "Facial ML App is ash-chrome only")
+
+ts_library("trusted_ts") {
+  root_dir = "."
+  out_dir = "$target_gen_dir/tsc"
+
+  in_files = [ "main.ts" ]
+
+  tsconfig_base = "../../tsconfig_base.json"
+  composite = true
+
+  # Allows TSC to check the generated mojom-webui/ directory when it encounters
+  # imports.
+  path_mappings =
+      [ "/*|" + rebase_path("$root_gen_dir/mojom-webui/*", target_gen_dir) ]
+}
+
+generate_grd("trusted_grd") {
+  grd_prefix = "ash_facial_ml_app"
+  out_grd = "$target_gen_dir/${grd_prefix}_resources.grd"
+
+  input_files = [
+    "app_icon_192.png",
+    "app_icon_512.png",
+    "index.html",
+  ]
+  input_files_base_dir = rebase_path(".", "//")
+
+  # trusted_ts.manifest is generated by :trusted_ts and adds all of the in_files
+  # to the grd.
+  manifest_files =
+      filter_include(get_target_outputs(":trusted_ts"), [ "*.manifest" ])
+
+  deps = [ ":trusted_ts" ]
+}
diff --git a/ash/webui/facial_ml_app_ui/resources/trusted/app_icon_192.png b/ash/webui/facial_ml_app_ui/resources/trusted/app_icon_192.png
new file mode 100644
index 0000000..6cbe617f
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/resources/trusted/app_icon_192.png
Binary files differ
diff --git a/ash/webui/facial_ml_app_ui/resources/trusted/app_icon_512.png b/ash/webui/facial_ml_app_ui/resources/trusted/app_icon_512.png
new file mode 100644
index 0000000..c72db625
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/resources/trusted/app_icon_512.png
Binary files differ
diff --git a/ash/webui/facial_ml_app_ui/resources/trusted/index.html b/ash/webui/facial_ml_app_ui/resources/trusted/index.html
new file mode 100644
index 0000000..8b326752
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/resources/trusted/index.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<!-- Copyright 2022 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. -->
+<html>
+  <head>
+    <link rel="stylesheet" href="chrome://resources/chromeos/colors/cros_styles.css">
+    <meta charset="utf-8">
+  <title>Facial ML App</title>
+  </head>
+  <body>
+    <div id="content"></div>
+    <script src="main.js" type="module"></script>
+  </body>
+</html>
diff --git a/ash/webui/facial_ml_app_ui/resources/trusted/main.ts b/ash/webui/facial_ml_app_ui/resources/trusted/main.ts
new file mode 100644
index 0000000..eb83028
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/resources/trusted/main.ts
@@ -0,0 +1,9 @@
+// Copyright 2022 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.
+
+// Example of fill the content.
+(async () => {
+  const content = document.querySelector<HTMLElement>('#content')!;
+  content.textContent = 'Hello Facial ML user!';
+})();
diff --git a/ash/webui/facial_ml_app_ui/tsconfig_base.json b/ash/webui/facial_ml_app_ui/tsconfig_base.json
new file mode 100644
index 0000000..33f7126
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/tsconfig_base.json
@@ -0,0 +1,6 @@
+{
+  "extends": "../../../tools/typescript/tsconfig_base.json",
+  "compilerOptions": {
+    "allowJs": true
+  }
+}
diff --git a/ash/webui/facial_ml_app_ui/url_constants.cc b/ash/webui/facial_ml_app_ui/url_constants.cc
new file mode 100644
index 0000000..523add6
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/url_constants.cc
@@ -0,0 +1,12 @@
+// Copyright 2022 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/webui/facial_ml_app_ui/url_constants.h"
+
+namespace ash {
+
+const char kChromeUIFacialMLAppHost[] = "facial-ml";
+const char kChromeUIFacialMLAppURL[] = "chrome://facial-ml";
+
+}  // namespace ash
diff --git a/ash/webui/facial_ml_app_ui/url_constants.h b/ash/webui/facial_ml_app_ui/url_constants.h
new file mode 100644
index 0000000..a7bf74e
--- /dev/null
+++ b/ash/webui/facial_ml_app_ui/url_constants.h
@@ -0,0 +1,15 @@
+// Copyright 2022 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_WEBUI_FACIAL_ML_APP_UI_URL_CONSTANTS_H_
+#define ASH_WEBUI_FACIAL_ML_APP_UI_URL_CONSTANTS_H_
+
+namespace ash {
+
+extern const char kChromeUIFacialMLAppHost[];
+extern const char kChromeUIFacialMLAppURL[];
+
+}  // namespace ash
+
+#endif  // ASH_WEBUI_FACIAL_ML_APP_UI_URL_CONSTANTS_H_
diff --git a/ash/webui/os_feedback_ui/backend/feedback_service_provider.cc b/ash/webui/os_feedback_ui/backend/feedback_service_provider.cc
index d9714a4..3a10d81 100644
--- a/ash/webui/os_feedback_ui/backend/feedback_service_provider.cc
+++ b/ash/webui/os_feedback_ui/backend/feedback_service_provider.cc
@@ -73,6 +73,11 @@
   os_feedback_ui::metrics::EmitFeedbackAppPostSubmitAction(action);
 }
 
+void FeedbackServiceProvider::RecordPreSubmitAction(
+    os_feedback_ui::mojom::FeedbackAppPreSubmitAction action) {
+  os_feedback_ui::metrics::EmitFeedbackAppPreSubmitAction(action);
+}
+
 void FeedbackServiceProvider::BindInterface(
     mojo::PendingReceiver<os_feedback_ui::mojom::FeedbackServiceProvider>
         receiver) {
diff --git a/ash/webui/os_feedback_ui/backend/feedback_service_provider.h b/ash/webui/os_feedback_ui/backend/feedback_service_provider.h
index cda1b0e..c5d2bd5 100644
--- a/ash/webui/os_feedback_ui/backend/feedback_service_provider.h
+++ b/ash/webui/os_feedback_ui/backend/feedback_service_provider.h
@@ -39,6 +39,8 @@
   void OpenSystemInfoDialog() override;
   void RecordPostSubmitAction(
       os_feedback_ui::mojom::FeedbackAppPostSubmitAction) override;
+  void RecordPreSubmitAction(
+      os_feedback_ui::mojom::FeedbackAppPreSubmitAction) override;
 
   void BindInterface(
       mojo::PendingReceiver<os_feedback_ui::mojom::FeedbackServiceProvider>
diff --git a/ash/webui/os_feedback_ui/backend/histogram_util.cc b/ash/webui/os_feedback_ui/backend/histogram_util.cc
index 4903818..f586185 100644
--- a/ash/webui/os_feedback_ui/backend/histogram_util.cc
+++ b/ash/webui/os_feedback_ui/backend/histogram_util.cc
@@ -16,6 +16,11 @@
   base::UmaHistogramEnumeration(kFeedbackAppPostSubmitAction, action);
 }
 
+void EmitFeedbackAppPreSubmitAction(mojom::FeedbackAppPreSubmitAction action) {
+  // TODO(longbowei) Add preSubmit actions and use switch case statement.
+  base::UmaHistogramBoolean(kFeedbackAppViewedScreenshot, true);
+}
+
 void EmitFeedbackAppIncludedScreenshot(bool included_screenshot) {
   base::UmaHistogramBoolean(kFeedbackAppIncludedScreenshot,
                             included_screenshot);
diff --git a/ash/webui/os_feedback_ui/backend/histogram_util.h b/ash/webui/os_feedback_ui/backend/histogram_util.h
index 153bac2e..ce3dd85 100644
--- a/ash/webui/os_feedback_ui/backend/histogram_util.h
+++ b/ash/webui/os_feedback_ui/backend/histogram_util.h
@@ -18,11 +18,15 @@
     "Feedback.ChromeOSApp.PostSubmitAction";
 constexpr char kFeedbackAppIncludedScreenshot[] =
     "Feedback.ChromeOSApp.IncludedScreenshot";
+constexpr char kFeedbackAppViewedScreenshot[] =
+    "Feedback.ChromeOSApp.ViewedScreenshot";
 
 void EmitFeedbackAppOpenDuration(const base::TimeDelta& time_elapsed);
 
 void EmitFeedbackAppPostSubmitAction(mojom::FeedbackAppPostSubmitAction action);
 
+void EmitFeedbackAppPreSubmitAction(mojom::FeedbackAppPreSubmitAction action);
+
 void EmitFeedbackAppIncludedScreenshot(bool included_screenshot);
 
 }  // namespace ash::os_feedback_ui::metrics
diff --git a/ash/webui/os_feedback_ui/mojom/os_feedback_ui.mojom b/ash/webui/os_feedback_ui/mojom/os_feedback_ui.mojom
index b6834d5..9d8cc474 100644
--- a/ash/webui/os_feedback_ui/mojom/os_feedback_ui.mojom
+++ b/ash/webui/os_feedback_ui/mojom/os_feedback_ui.mojom
@@ -145,6 +145,20 @@
   // tools/metrics/histograms/enums.xml.
 };
 
+// User actions before sending the feedback.
+enum FeedbackAppPreSubmitAction {
+  // User clicked the help content on search page.
+  kViewedHelpContent,
+  // User viewed the screenshot on share data page.
+  kViewedScreenshot,
+  // User viewed the selected image to be attached on share data page.
+  kViewedImage,
+  // User viewed the system and app info on share data page.
+  kViewedSystemAndAppInfo,
+  // User viewed the metrics on share data page.
+  kViewedMetrics
+};
+
 // Provides services needed by the feedback UI to display data and send reports.
 // Implemented in the browser process and called by the Feedback SWA
 // (a renderer process).
@@ -168,4 +182,6 @@
   OpenSystemInfoDialog();
   // Record the metrics of users' first action on confirmation page.
   RecordPostSubmitAction(FeedbackAppPostSubmitAction action);
+  // Record metrics of users' action before sending the feedback.
+  RecordPreSubmitAction(FeedbackAppPreSubmitAction action);
 };
diff --git a/ash/webui/os_feedback_ui/resources/fake_feedback_service_provider.js b/ash/webui/os_feedback_ui/resources/fake_feedback_service_provider.js
index d6a0d24b..967f88fa 100644
--- a/ash/webui/os_feedback_ui/resources/fake_feedback_service_provider.js
+++ b/ash/webui/os_feedback_ui/resources/fake_feedback_service_provider.js
@@ -4,7 +4,7 @@
 
 import {FakeMethodResolver} from 'chrome://resources/ash/common/fake_method_resolver.js';
 
-import {FeedbackAppPostSubmitAction, FeedbackContext, FeedbackServiceProviderInterface, Report, SendReportStatus} from './feedback_types.js';
+import {FeedbackAppPostSubmitAction, FeedbackAppPreSubmitAction, FeedbackContext, FeedbackServiceProviderInterface, Report, SendReportStatus} from './feedback_types.js';
 
 /**
  * @fileoverview
@@ -48,6 +48,9 @@
 
     /** @type {?FeedbackAppPostSubmitAction} */
     this.postSubmitAction_ = null;
+
+    /** @type {Map<FeedbackAppPreSubmitAction, number>} */
+    this.preSubmitActionMap_ = new Map();
   }
 
   /**
@@ -200,4 +203,21 @@
       this.postSubmitAction_ = action;
     }
   }
+
+  /**
+   * @param {!FeedbackAppPreSubmitAction} action
+   * @return {number}
+   */
+  getRecordPreSubmitActionCallCount(action) {
+    return this.preSubmitActionMap_.get(action) || 0;
+  }
+
+  /**
+   * @param {!FeedbackAppPreSubmitAction} action
+   * @return {void}
+   */
+  recordPreSubmitAction(action) {
+    this.preSubmitActionMap_.set(
+        action, this.preSubmitActionMap_.get(action) + 1 || 1);
+  }
 }
diff --git a/ash/webui/os_feedback_ui/resources/feedback_types.js b/ash/webui/os_feedback_ui/resources/feedback_types.js
index f5ba66b..a88c4ca 100644
--- a/ash/webui/os_feedback_ui/resources/feedback_types.js
+++ b/ash/webui/os_feedback_ui/resources/feedback_types.js
@@ -78,6 +78,12 @@
  */
 export const FeedbackContext = ash.osFeedbackUi.mojom.FeedbackContext;
 
+/**
+ * Type alias for FeedbackAppPreSubmitAction.
+ * @typedef {ash.osFeedbackUi.mojom.FeedbackAppPreSubmitAction}
+ */
+export const FeedbackAppPreSubmitAction =
+    ash.osFeedbackUi.mojom.FeedbackAppPreSubmitAction;
 
 /**
  * Type alias for FeedbackAppPostSubmitAction.
diff --git a/ash/webui/os_feedback_ui/resources/share_data_page.js b/ash/webui/os_feedback_ui/resources/share_data_page.js
index 7e62002..eab39434 100644
--- a/ash/webui/os_feedback_ui/resources/share_data_page.js
+++ b/ash/webui/os_feedback_ui/resources/share_data_page.js
@@ -14,7 +14,7 @@
 
 import {FEEDBACK_LEGAL_HELP_URL, FEEDBACK_PRIVACY_POLICY_URL, FEEDBACK_TERMS_OF_SERVICE_URL} from './feedback_constants.js';
 import {FeedbackFlowState} from './feedback_flow.js';
-import {AttachedFile, FeedbackContext, FeedbackServiceProviderInterface, Report} from './feedback_types.js';
+import {AttachedFile, FeedbackAppPreSubmitAction, FeedbackContext, FeedbackServiceProviderInterface, Report} from './feedback_types.js';
 import {getFeedbackServiceProvider} from './mojo_interface_provider.js';
 
 /**
@@ -114,6 +114,8 @@
   handleScreenshotClick_() {
     this.$.screenshotDialog.showModal();
     this.$.closeDialogButton.focus();
+    this.feedbackServiceProvider_.recordPreSubmitAction(
+        FeedbackAppPreSubmitAction.kViewedScreenshot);
   }
 
   /** @protected */
diff --git a/ash/webui/resources/BUILD.gn b/ash/webui/resources/BUILD.gn
index 4c9b2dd..42ebc2e 100644
--- a/ash/webui/resources/BUILD.gn
+++ b/ash/webui/resources/BUILD.gn
@@ -319,6 +319,12 @@
   output_dir = "$root_gen_dir/chromeos"
 }
 
+# Resources used by chrome://facial-ml
+ash_generated_grit("facial_ml_app_resources") {
+  source = "$root_gen_dir/ash/webui/facial_ml_app_ui/resources/trusted/ash_facial_ml_app_resources.grd"
+  deps = [ "//ash/webui/facial_ml_app_ui/resources/trusted:trusted_grd" ]
+}
+
 # Resources used by chrome://eche-app
 ash_generated_grit("eche_app_resources") {
   source = "$root_gen_dir/ash/webui/eche_app_ui/ash_eche_app_resources.grd"
diff --git a/ash/webui/shimless_rma/resources/calibration_component_chip.html b/ash/webui/shimless_rma/resources/calibration_component_chip.html
index 6a763c7f..25aba21 100644
--- a/ash/webui/shimless_rma/resources/calibration_component_chip.html
+++ b/ash/webui/shimless_rma/resources/calibration_component_chip.html
@@ -61,12 +61,13 @@
 </style>
 
 <cr-button id="componentButton" on-click="onComponentButtonClicked_"
-    disabled="[[disabled]]">
-  <div id="labelDiv">
-    <iron-icon id="infoIcon" icon="shimless-icon:info" hidden="[[!failed]]" class="small-icon">
+    disabled="[[disabled]]" aria-labelledby="componentName componentId">
+  <div id="labelDiv" aria-hidden="true">
+    <iron-icon id="infoIcon" icon="shimless-icon:info" hidden="[[!failed]]"
+        class="small-icon">
     </iron-icon>
     <span id="componentName">[[componentName]]</span>
-    <div>[[componentId]]</div>
+    <div id="componentId">[[componentId]]</div>
   </div>
   <iron-icon id="checkIcon" icon="shimless-icon24:check-circle"
       hidden="[[!shouldShowCheckIcon_(checked, disabled)]]">
diff --git a/ash/webui/shimless_rma/resources/fake_data.js b/ash/webui/shimless_rma/resources/fake_data.js
index 4ebc492..a91f84be 100644
--- a/ash/webui/shimless_rma/resources/fake_data.js
+++ b/ash/webui/shimless_rma/resources/fake_data.js
@@ -177,6 +177,11 @@
 /** @type {!Array<!Component>} */
 export const fakeComponentsForRepairStateTest = [
   {
+    component: ComponentType.kAudioCodec,
+    state: ComponentRepairStatus.kMissing,
+    identifier: 'Audio_XYZ',
+  },
+  {
     component: ComponentType.kCamera,
     state: ComponentRepairStatus.kOriginal,
     identifier: 'Camera_XYZ_1',
@@ -191,6 +196,31 @@
     state: ComponentRepairStatus.kReplaced,
     identifier: 'Touchpad_XYZ_2',
   },
+  {
+    component: ComponentType.kStorage,
+    state: ComponentRepairStatus.kMissing,
+    identifier: 'Storage_XYZ',
+  },
+  {
+    component: ComponentType.kVpdCached,
+    state: ComponentRepairStatus.kMissing,
+    identifier: 'VpdCached_XYZ',
+  },
+  {
+    component: ComponentType.kNetwork,
+    state: ComponentRepairStatus.kOriginal,
+    identifier: 'Network_XYZ',
+  },
+  {
+    component: ComponentType.kCamera,
+    state: ComponentRepairStatus.kOriginal,
+    identifier: 'Camera_XYZ_2',
+  },
+  {
+    component: ComponentType.kTouchsreen,
+    state: ComponentRepairStatus.kMissing,
+    identifier: 'Touchscreen_XYZ',
+  },
 ];
 
 /** @type {!Array<!CalibrationComponentStatus>} */
diff --git a/ash/webui/shimless_rma/resources/onboarding_select_components_page.html b/ash/webui/shimless_rma/resources/onboarding_select_components_page.html
index 3fcba02..dcb7bc3 100644
--- a/ash/webui/shimless_rma/resources/onboarding_select_components_page.html
+++ b/ash/webui/shimless_rma/resources/onboarding_select_components_page.html
@@ -12,9 +12,10 @@
   </div>
   <div slot="right-pane">
     <div class="scroll-container">
-      <div class="component-grid repair">
+      <div id="componentList" class="component-grid repair">
         <template is="dom-repeat" items="{{componentCheckboxes_}}" as="component">
           <repair-component-chip id="[[component.id]]"
+            unique-id="[[component.uniqueId]]"
             checked="{{component.checked}}"
             disabled$="[[isComponentDisabled_(component.disabled,
                 allButtonsDisabled)]]"
diff --git a/ash/webui/shimless_rma/resources/onboarding_select_components_page.js b/ash/webui/shimless_rma/resources/onboarding_select_components_page.js
index 684f8cb..b128a3c 100644
--- a/ash/webui/shimless_rma/resources/onboarding_select_components_page.js
+++ b/ash/webui/shimless_rma/resources/onboarding_select_components_page.js
@@ -9,7 +9,7 @@
 
 import {assert} from 'chrome://resources/js/assert.m.js';
 import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/js/i18n_behavior.m.js';
-import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {afterNextRender, html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {ComponentTypeToId} from './data.js';
 import {getShimlessRmaService} from './mojo_interface_provider.js';
@@ -19,6 +19,7 @@
 /**
  * @typedef {{
  *   component: !ComponentType,
+ *   uniqueId: number,
  *   id: string,
  *   identifier: string,
  *   name: string,
@@ -34,6 +35,8 @@
  * that were replaced during repair.
  */
 
+const NUM_COLUMNS = 2;
+
 /**
  * @constructor
  * @extends {PolymerElement}
@@ -69,6 +72,16 @@
 
       /** @private {string} */
       reworkFlowLinkText_: {type: String, value: ''},
+
+      /**
+       * The index into componentCheckboxes_ for keyboard navigation between
+       * components.
+       * @private
+       */
+      focusedComponentIndex_: {
+        type: Number,
+        value: -1,
+      },
     };
   }
 
@@ -80,6 +93,89 @@
     super();
     /** @private {ShimlessRmaServiceInterface} */
     this.shimlessRmaService_ = getShimlessRmaService();
+
+    /**
+     * The componentClickedCallback_ callback is used to capture events when
+     * components are clicked, so that the page can put the focus on the
+     * component that was clicked.
+     * @private {?Function}
+     */
+    this.componentClicked_ = (event) => {
+      const componentIndex = this.componentCheckboxes_.findIndex(
+          component => component.uniqueId === event.detail);
+
+      if (componentIndex === -1 ||
+          this.componentCheckboxes_[componentIndex].disabled) {
+        return;
+      }
+
+      this.focusedComponentIndex_ = componentIndex;
+      this.focusOnCurrentComponent_();
+    };
+
+    /**
+     * Handles keyboard navigation over the list of components.
+     * @private {?Function}
+     */
+    this.handleKeyDownEvent = (event) => {
+      if (event.key !== 'ArrowRight' && event.key !== 'ArrowDown' &&
+          event.key !== 'ArrowLeft' && event.key !== 'ArrowUp') {
+        return;
+      }
+
+      // If there are no selectable components, do nothing.
+      if (this.focusedComponentIndex_ === -1) {
+        return;
+      }
+
+      // Don't use keyboard navigation if the user tabbed out of the
+      // component list.
+      if (!this.shadowRoot.activeElement ||
+          this.shadowRoot.activeElement.tagName !== 'REPAIR-COMPONENT-CHIP') {
+        return;
+      }
+
+      if (event.key === 'ArrowRight' || event.key === 'ArrowDown') {
+        // The Down button should send you down the column, so we go forward
+        // by two components, which is the size of the row.
+        let step = 1;
+        if (event.key === 'ArrowDown') {
+          step = NUM_COLUMNS;
+        }
+
+        let newIndex = this.focusedComponentIndex_ + step;
+        // Keep skipping disabled components until we encounter one that is
+        // not disabled.
+        while (newIndex < this.componentCheckboxes_.length &&
+               this.componentCheckboxes_[newIndex].disabled) {
+          newIndex += step;
+        }
+        // Check that we haven't ended up outside of the array before
+        // applying the changes.
+        if (newIndex < this.componentCheckboxes_.length) {
+          this.focusedComponentIndex_ = newIndex;
+        }
+      }
+
+      // The left and up arrows work similarly to down and right, but go
+      // backwards.
+      if (event.key === 'ArrowLeft' || event.key === 'ArrowUp') {
+        let step = 1;
+        if (event.key === 'ArrowUp') {
+          step = NUM_COLUMNS;
+        }
+
+        let newIndex = this.focusedComponentIndex_ - step;
+        while (newIndex >= 0 && this.componentCheckboxes_[newIndex].disabled) {
+          newIndex -= step;
+        }
+        if (newIndex >= 0) {
+          this.focusedComponentIndex_ = newIndex;
+        }
+      }
+
+      this.focusOnCurrentComponent_();
+    };
   }
 
   /** @override */
@@ -89,6 +185,15 @@
     this.getComponents_();
     enableNextButton(this);
 
+
+
+    // Whenever we tab into the list of components, we need to focus on the one
+    // we were focused on, when we tabbed out.
+    const componentList = this.shadowRoot.querySelector('#componentList');
+    componentList.addEventListener('focusin', (event) => {
+      this.focusOnCurrentComponent_();
+    });
+
     // Hide the gradient when the list is scrolled to the end.
     this.shadowRoot.querySelector('.scroll-container')
         .addEventListener('scroll', (event) => {
@@ -111,10 +216,11 @@
         return;
       }
 
-      this.componentCheckboxes_ = result.components.map(item => {
+      this.componentCheckboxes_ = result.components.map((item, index) => {
         assert(item.component);
         return {
           component: item.component,
+          uniqueId: index,
           id: ComponentTypeToId[item.component],
           identifier: item.identifier,
           name: this.i18n(ComponentTypeToId[item.component]),
@@ -122,9 +228,44 @@
           disabled: item.state === ComponentRepairStatus.kMissing,
         };
       });
+
+      // Focus on the first clickable component at the beginning.
+      this.focusedComponentIndex_ =
+          this.componentCheckboxes_.findIndex(component => !component.disabled);
+      afterNextRender(this, () => {
+        this.focusOnCurrentComponent_();
+      });
     });
   }
 
+  /** @override */
+  connectedCallback() {
+    super.connectedCallback();
+    window.addEventListener('keydown', this.handleKeyDownEvent);
+    window.addEventListener(
+        'click-repair-component-button', this.componentClicked_);
+  }
+
+  /** @override */
+  disconnectedCallback() {
+    super.disconnectedCallback();
+    window.removeEventListener('keydown', this.handleKeyDownEvent);
+    window.removeEventListener(
+        'click-repair-component-button', this.componentClicked_);
+  }
+
+  /**
+   * Make the page focus on the component at focusedComponentIndex_.
+   * @private
+   */
+  focusOnCurrentComponent_() {
+    if (this.focusedComponentIndex_ != -1) {
+      const componentChip = this.shadowRoot.querySelector(`[unique-id="${
+          this.componentCheckboxes_[this.focusedComponentIndex_].uniqueId}"]`);
+      componentChip.shadowRoot.querySelector('#componentButton').focus();
+    }
+  }
+
   /**
    * @return {!Array<!Component>}
    * @private
diff --git a/ash/webui/shimless_rma/resources/reimaging_device_information_page.html b/ash/webui/shimless_rma/resources/reimaging_device_information_page.html
index 532ba2a..163d591 100644
--- a/ash/webui/shimless_rma/resources/reimaging_device_information_page.html
+++ b/ash/webui/shimless_rma/resources/reimaging_device_information_page.html
@@ -24,6 +24,7 @@
 
   cr-input {
     --cr-input-error-display: none;
+    --cr-form-field-label-color: var(--shimless-hint-text-color);
     margin-inline-end: 20px;
   }
 
@@ -72,12 +73,9 @@
   <div slot="right-pane">
     <div class="input-wrapper">
       <div class="input-row">
-        <label id="serialNumberLabel" class="cr-form-field-label">
-          [[i18n('confirmDeviceInfoSerialNumberLabel')]]
-        </label>
-        <div class="input-holder">
+        <div class="input-holder" aria-labelledby="serialNumberLabel">
           <cr-input id="serialNumber" value="{{serialNumber_}}" 
-              aria-labelledby="serialNumberLabel"
+              label="[[i18n('confirmDeviceInfoSerialNumberLabel')]]"
               disabled="[[allButtonsDisabled]]">
           </cr-input>
           <cr-button id="resetSerialNumber"
@@ -88,14 +86,9 @@
         </div>
       </div>
       <div class="input-row">
-        <label id="dramPartNumberLabel" class="cr-form-field-label">
-          [[i18n('confirmDeviceInfoDramPartNumberLabel')]]
-        </label>
         <div class="input-holder">
-          <cr-input
-              id="dramPartNumber"
-              value="{{dramPartNumber_}}"
-              aria-labelledby="dramPartNumberLabel"
+          <cr-input id="dramPartNumber" value="{{dramPartNumber_}}"
+              label="[[i18n('confirmDeviceInfoDramPartNumberLabel')]]"
               disabled="[[allButtonsDisabled]]">
           </cr-input>
           <cr-button id="resetDramPartNumber"
@@ -132,14 +125,16 @@
         <div class="input-holder">
           <select id="whiteLabelSelect" class="md-select"
               on-change="onSelectedWhiteLabelChange_"
-              aria-labelledby="whiteLabelLabel" disabled="[[allButtonsDisabled]]">
+              aria-labelledby="whiteLabelLabel"
+              disabled="[[allButtonsDisabled]]">
             <template is="dom-repeat" items="[[whiteLabels_]]" as="whiteLabel">
               <option value="[[whiteLabel]]">
                 [[whiteLabel]]
               </option>
             </template>
           </select>
-          <cr-button id="resetWhiteLabel" on-click="onResetWhiteLabelButtonClicked_"
+          <cr-button id="resetWhiteLabel"
+              on-click="onResetWhiteLabelButtonClicked_"
               disabled="[[disableResetWhiteLabel_]]">
             [[i18n('confirmDeviceInfoResetButtonLabel')]]
           </cr-button>
@@ -152,8 +147,8 @@
         <iron-icon icon="shimless-icon:info" id="infoIcon"
             class="cr-form-field-label">
         </iron-icon>
-        <paper-tooltip for="infoIcon">
-          <div id="tooltipContent">[[i18n('confirmDeviceInfoSkuWarning')]]</div> 
+        <paper-tooltip for="infoIcon" aria-hidden="true">
+          <div id="tooltipContent">[[i18n('confirmDeviceInfoSkuWarning')]]</div>
         </paper-tooltip>
       </div>
       <div class="input-holder">
diff --git a/ash/webui/shimless_rma/resources/repair_component_chip.html b/ash/webui/shimless_rma/resources/repair_component_chip.html
index 9f172e37..6208eae 100644
--- a/ash/webui/shimless_rma/resources/repair_component_chip.html
+++ b/ash/webui/shimless_rma/resources/repair_component_chip.html
@@ -81,8 +81,9 @@
 
 <div id="componentButtonWrapper">
   <cr-button id="componentButton" disabled="[[disabled]]"
-      on-click="onComponentButtonClicked_">
-    <div id="labelDiv">
+      on-click="onComponentButtonClicked_"
+      aria-labelledby="componentName componentIdentifier">
+    <div id="labelDiv" aria-hidden="true">
       <span id="componentName">[[componentName]]</span>
       <div id="componentIdentifier">[[componentIdentifier]]</div>
     </div>
@@ -94,6 +95,7 @@
     </iron-icon>
   </cr-button>
 </div>
-<paper-tooltip for="componentButtonWrapper" hidden="[[!disabled]]">
+<paper-tooltip for="componentButtonWrapper" hidden="[[!disabled]]"
+    aria-hidden="true">
   [[i18n('undetectedComponentText')]]
 </paper-tooltip>
diff --git a/ash/webui/shimless_rma/resources/repair_component_chip.js b/ash/webui/shimless_rma/resources/repair_component_chip.js
index ccc422c..fe4ae4bb 100644
--- a/ash/webui/shimless_rma/resources/repair_component_chip.js
+++ b/ash/webui/shimless_rma/resources/repair_component_chip.js
@@ -60,6 +60,13 @@
       /** @type {string} */
       componentIdentifier: {type: String, value: ''},
 
+      /** @type {number} */
+      uniqueId: {
+        reflectToAttribute: true,
+        type: Number,
+        value: '',
+      },
+
       /** @type {boolean} */
       isFirstClickableComponent: {
         type: Boolean,
@@ -73,6 +80,14 @@
   /** @protected */
   onComponentButtonClicked_() {
     this.checked = !this.checked;
+
+    // Notify the page that the component chip was clicked, so that the page can
+    // put the focus on it.
+    this.dispatchEvent(new CustomEvent('click-repair-component-button', {
+      bubbles: true,
+      composed: true,
+      detail: this.uniqueId,
+    }));
   }
 
   /** @private */
diff --git a/ash/webui/shimless_rma/resources/shimless_rma_shared_css.html b/ash/webui/shimless_rma/resources/shimless_rma_shared_css.html
index 37553f75..5674521 100644
--- a/ash/webui/shimless_rma/resources/shimless_rma_shared_css.html
+++ b/ash/webui/shimless_rma/resources/shimless_rma_shared_css.html
@@ -145,6 +145,11 @@
       width: 100%;
     }
 
+    /**
+     * NOTE: If you change the number of columns, don't forget to update the
+     * NUM_COLUMNS constant in the keyboard navigation code. Otherwise the down
+     * and up arrows won't work as expected.
+     */
     .component-grid.repair {
       grid-template-columns: auto auto;
     }
diff --git a/ash/webui/system_apps/public/system_web_app_type.h b/ash/webui/system_apps/public/system_web_app_type.h
index ac2d0b47..9138a11b 100644
--- a/ash/webui/system_apps/public/system_web_app_type.h
+++ b/ash/webui/system_apps/public/system_web_app_type.h
@@ -102,6 +102,14 @@
   // contact: skuhne@google.com
   OS_FLAGS = 23,
 
+  // Facial ML app aims to provide UI interactions to help Facial ML team
+  // train their models on CrOS. This is an internal app that is only enabled
+  // on pre-released Chromebooks with appropriate hardware.
+  //
+  // Source: //ash/webui/facial_ml_app_ui/
+  // contact: googleo@google.com
+  FACIAL_ML = 24,
+
   // When adding a new System App, remember to:
   //
   // 1. Add a corresponding histogram suffix in WebAppSystemAppInternalName
@@ -137,7 +145,7 @@
   //
   // 7. Have one of System Web App Platform owners review the CL.
   //    See: //ash/webui/PLATFORM_OWNERS
-  kMaxValue = OS_FLAGS,
+  kMaxValue = FACIAL_ML,
 };
 
 }  // namespace ash
diff --git a/ash/wm/window_restore/window_restore_controller.cc b/ash/wm/window_restore/window_restore_controller.cc
index 79a9a29..1fa7a2d 100644
--- a/ash/wm/window_restore/window_restore_controller.cc
+++ b/ash/wm/window_restore/window_restore_controller.cc
@@ -24,6 +24,7 @@
 #include "base/auto_reset.h"
 #include "base/bind.h"
 #include "base/check_op.h"
+#include "base/containers/adapters.h"
 #include "base/containers/contains.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "components/account_id/account_id.h"
@@ -183,12 +184,11 @@
 
   // Only the topmost unminimize restored window can be activated.
   auto siblings = desk_container->children();
-  for (auto child_iter = siblings.rbegin(); child_iter != siblings.rend();
-       ++child_iter) {
-    if (WindowState::Get(*child_iter)->IsMinimized())
+  for (auto* const sibling : base::Reversed(siblings)) {
+    if (WindowState::Get(sibling)->IsMinimized())
       continue;
 
-    return window == (*child_iter);
+    return window == sibling;
   }
 
   return false;
diff --git a/base/allocator/partition_allocator/partition_address_space.cc b/base/allocator/partition_allocator/partition_address_space.cc
index 49d061a9..880ca9b 100644
--- a/base/allocator/partition_allocator/partition_address_space.cc
+++ b/base/allocator/partition_allocator/partition_address_space.cc
@@ -25,7 +25,10 @@
 
 #if BUILDFLAG(IS_WIN)
 #include <windows.h>
+#if defined(PA_USE_DYNAMICALLY_SIZED_GIGA_CAGE)
+#include <VersionHelpers.h>  // For IsWindows8Point1OrGreater().
 #endif
+#endif  // BUILDFLAG(IS_WIN)
 
 namespace partition_alloc::internal {
 
@@ -117,10 +120,12 @@
 }
 #else
 PA_ALWAYS_INLINE size_t PartitionAddressSpace::RegularPoolSize() {
-  return kRegularPoolSize;
+  return IsWindows8Point1OrGreater() ? kRegularPoolSize
+                                     : kRegularPoolSizeForLegacyWindows;
 }
 PA_ALWAYS_INLINE size_t PartitionAddressSpace::BRPPoolSize() {
-  return kBRPPoolSize;
+  return IsWindows8Point1OrGreater() ? kBRPPoolSize
+                                     : kBRPPoolSizeForLegacyWindows;
 }
 #endif  // BUILDFLAG(IS_IOS)
 #endif  // defined(PA_USE_DYNAMICALLY_SIZED_GIGA_CAGE)
diff --git a/base/allocator/partition_allocator/partition_address_space.h b/base/allocator/partition_allocator/partition_address_space.h
index 473136d..e7b8369 100644
--- a/base/allocator/partition_allocator/partition_address_space.h
+++ b/base/allocator/partition_allocator/partition_address_space.h
@@ -200,6 +200,16 @@
   static constexpr size_t kBRPPoolSize = kPoolMaxSize;
   static_assert(base::bits::IsPowerOfTwo(kRegularPoolSize) &&
                 base::bits::IsPowerOfTwo(kBRPPoolSize));
+#if defined(PA_USE_DYNAMICALLY_SIZED_GIGA_CAGE)
+  // We can't afford pool sizes as large as kPoolMaxSize on Windows <8.1 (see
+  // crbug.com/1101421 and crbug.com/1217759).
+  static constexpr size_t kRegularPoolSizeForLegacyWindows = 4 * kGiB;
+  static constexpr size_t kBRPPoolSizeForLegacyWindows = 4 * kGiB;
+  static_assert(kRegularPoolSizeForLegacyWindows < kRegularPoolSize);
+  static_assert(kBRPPoolSizeForLegacyWindows < kBRPPoolSize);
+  static_assert(base::bits::IsPowerOfTwo(kRegularPoolSizeForLegacyWindows) &&
+                base::bits::IsPowerOfTwo(kBRPPoolSizeForLegacyWindows));
+#endif  // defined(PA_USE_DYNAMICALLY_SIZED_GIGA_CAGE)
   static constexpr size_t kConfigurablePoolMaxSize = kPoolMaxSize;
   static constexpr size_t kConfigurablePoolMinSize = 1 * kGiB;
   static_assert(kConfigurablePoolMinSize <= kConfigurablePoolMaxSize);
diff --git a/base/allocator/partition_allocator/partition_alloc_config.h b/base/allocator/partition_allocator/partition_alloc_config.h
index 866c187..a034688 100644
--- a/base/allocator/partition_allocator/partition_alloc_config.h
+++ b/base/allocator/partition_allocator/partition_alloc_config.h
@@ -30,13 +30,20 @@
 #define PA_STARSCAN_NEON_SUPPORTED
 #endif
 
-#if BUILDFLAG(IS_IOS)
+#if defined(PA_HAS_64_BITS_POINTERS) && (BUILDFLAG(IS_IOS) || BUILDFLAG(IS_WIN))
 // Use dynamically sized GigaCage. This allows to query the size at run-time,
-// before initialization, instead of using a hardcoded constexpr. This is needed
-// on iOS because iOS test processes can't handle a large cage (see
-// crbug.com/1250788).
+// before initialization, instead of using a hardcoded constexpr.
+//
+// This is needed on iOS because iOS test processes can't handle a large cage
+// (see crbug.com/1250788).
+//
+// This is needed on Windows, because OS versions <8.1 incur commit charge even
+// on reserved address space, thus don't handle large cage well (see
+// crbug.com/1101421 and crbug.com/1217759).
+//
+// This setting is specific to 64-bit, as 32-bit has a different implementation.
 #define PA_USE_DYNAMICALLY_SIZED_GIGA_CAGE
-#endif
+#endif  // defined(PA_HAS_64_BITS_POINTERS) && BUILDFLAG(IS_WIN)
 
 #if defined(PA_HAS_64_BITS_POINTERS) && \
     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID))
diff --git a/base/fuchsia/scheduler.h b/base/fuchsia/scheduler.h
index 9a2478b..8f9bd0e 100644
--- a/base/fuchsia/scheduler.h
+++ b/base/fuchsia/scheduler.h
@@ -15,11 +15,11 @@
 // this constants.
 constexpr TimeDelta kAudioSchedulingPeriod = Milliseconds(10);
 
-// Reserve 10% or one CPU core for audio threads.
+// Reserve 30% of one CPU core for audio threads.
 // TODO(crbug.com/1174811): A different value may need to be used for WebAudio
 // threads (see media::FuchsiaAudioOutputDevice). A higher capacity may need to
 // be allocated in that case.
-constexpr float kAudioSchedulingCapacity = 0.1;
+constexpr float kAudioSchedulingCapacity = 0.3;
 
 // Scheduling interval to use for display threads.
 // TODO(crbug.com/1224707): Add scheduling period to Thread::Options and remove
diff --git a/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java b/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java
index 7058f23..9403781 100644
--- a/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java
+++ b/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java
@@ -638,6 +638,9 @@
             if (file.getName().equals("lib")) {
                 continue;
             }
+            if (file.getName().equals("chromium_tests_root")) {
+                continue;
+            }
             if (file.getName().equals("incremental-install-files")) {
                 continue;
             }
diff --git a/build/android/pylib/instrumentation/instrumentation_test_instance.py b/build/android/pylib/instrumentation/instrumentation_test_instance.py
index b0212c15..3352556 100644
--- a/build/android/pylib/instrumentation/instrumentation_test_instance.py
+++ b/build/android/pylib/instrumentation/instrumentation_test_instance.py
@@ -606,6 +606,7 @@
     self._data_deps = None
     self._data_deps_delegate = None
     self._runtime_deps_path = None
+    self._store_data_in_app_directory = False
     self._initializeDataDependencyAttributes(args, data_deps_delegate)
 
     self._annotations = None
@@ -782,7 +783,7 @@
     self._data_deps = []
     self._data_deps_delegate = data_deps_delegate
     self._runtime_deps_path = args.runtime_deps_path
-
+    self._store_data_in_app_directory = args.store_data_in_app_directory
     if not self._runtime_deps_path:
       logging.warning('No data dependencies will be pushed.')
 
@@ -1002,6 +1003,10 @@
     return self._skia_gold_properties
 
   @property
+  def store_data_in_app_directory(self):
+    return self._store_data_in_app_directory
+
+  @property
   def store_tombstones(self):
     return self._store_tombstones
 
diff --git a/build/android/pylib/local/device/local_device_environment.py b/build/android/pylib/local/device/local_device_environment.py
index 8f2c86e..edb168ab 100644
--- a/build/android/pylib/local/device/local_device_environment.py
+++ b/build/android/pylib/local/device/local_device_environment.py
@@ -84,7 +84,7 @@
   return decorator
 
 
-def place_nomedia_on_device(dev, device_root):
+def place_nomedia_on_device(dev, device_root, run_as=None, as_root=False):
   """Places .nomedia file in test data root.
 
   This helps to prevent system from scanning media files inside test data.
@@ -94,8 +94,14 @@
     device_root: Base path on device to place .nomedia file.
   """
 
-  dev.RunShellCommand(['mkdir', '-p', device_root], check_return=True)
-  dev.WriteFile('%s/.nomedia' % device_root, 'https://crbug.com/796640')
+  dev.RunShellCommand(['mkdir', '-p', device_root],
+                      run_as=run_as,
+                      as_root=as_root,
+                      check_return=True)
+  dev.WriteFile('%s/.nomedia' % device_root,
+                'https://crbug.com/796640',
+                run_as=run_as,
+                as_root=as_root)
 
 
 # TODO(1262303): After Telemetry is supported by python3 we can re-add
diff --git a/build/android/pylib/local/device/local_device_instrumentation_test_run.py b/build/android/pylib/local/device/local_device_instrumentation_test_run.py
index d85618a6..a239d60 100644
--- a/build/android/pylib/local/device/local_device_instrumentation_test_run.py
+++ b/build/android/pylib/local/device/local_device_instrumentation_test_run.py
@@ -191,14 +191,22 @@
     self._shared_prefs_to_restore = []
     self._skia_gold_session_manager = None
     self._skia_gold_work_dir = None
+    self._target_package = _GetTargetPackageName(test_instance.test_apk)
 
   #override
   def TestPackage(self):
     return self._test_instance.suite
 
+  def _GetDataStorageRootDirectory(self, device):
+    if self._test_instance.store_data_in_app_directory:
+      # TODO(rmhasan): Add check to makes sure api level > 27. Selinux
+      # policy on Oreo does not allow app to read files from app data dir
+      # that were not put there by the app.
+      return device.GetApplicationDataDirectory(self._target_package)
+    return device.GetExternalStoragePath()
+
   #override
   def SetUp(self):
-    target_package = _GetTargetPackageName(self._test_instance.test_apk)
 
     @local_device_environment.handle_shard_failures_with(
         self._env.DenylistDevice)
@@ -383,7 +391,7 @@
         cmd = ['am', 'set-debug-app', '--persistent']
         if self._test_instance.wait_for_java_debugger:
           cmd.append('-w')
-        cmd.append(target_package)
+        cmd.append(self._target_package)
         dev.RunShellCommand(cmd, check_return=True)
 
       @trace_event.traced
@@ -418,20 +426,32 @@
 
       @instrumentation_tracing.no_tracing
       def push_test_data(dev):
-        device_root = posixpath.join(dev.GetExternalStoragePath(),
-                                     'chromium_tests_root')
+        test_data_root_dir = posixpath.join(
+            self._GetDataStorageRootDirectory(dev), 'chromium_tests_root')
         host_device_tuples_substituted = [
-            (h, local_device_test_run.SubstituteDeviceRoot(d, device_root))
-            for h, d in host_device_tuples]
+            (h,
+             local_device_test_run.SubstituteDeviceRoot(d, test_data_root_dir))
+            for h, d in host_device_tuples
+        ]
         logging.info('Pushing data dependencies.')
         for h, d in host_device_tuples_substituted:
           logging.debug('  %r -> %r', h, d)
-        local_device_environment.place_nomedia_on_device(dev, device_root)
+
+        as_root = self._test_instance.store_data_in_app_directory
+        local_device_environment.place_nomedia_on_device(dev,
+                                                         test_data_root_dir,
+                                                         as_root=as_root)
         dev.PushChangedFiles(host_device_tuples_substituted,
-                             delete_device_stale=True)
+                             delete_device_stale=True,
+                             as_root=as_root)
+
         if not host_device_tuples_substituted:
-          dev.RunShellCommand(['rm', '-rf', device_root], check_return=True)
-          dev.RunShellCommand(['mkdir', '-p', device_root], check_return=True)
+          dev.RunShellCommand(['rm', '-rf', test_data_root_dir],
+                              check_return=True,
+                              as_root=as_root)
+          dev.RunShellCommand(['mkdir', '-p', test_data_root_dir],
+                              check_return=True,
+                              as_root=as_root)
 
       @trace_event.traced
       def create_flag_changer(dev):
@@ -493,7 +513,7 @@
     if self._test_instance.wait_for_java_debugger:
       logging.warning('*' * 80)
       logging.warning('Waiting for debugger to attach to process: %s',
-                      target_package)
+                      self._target_package)
       logging.warning('*' * 80)
 
   #override
@@ -798,6 +818,9 @@
       self._CreateFlagChangerIfNeeded(device)
       self._flag_changers[str(device)].PushFlags(add=flags_to_add)
 
+    if self._test_instance.store_data_in_app_directory:
+      extras.update({'fetchTestDataFromAppDataDir': 'true'})
+
     time_ms = lambda: int(time.time() * 1e3)
     start_ms = time_ms()
 
@@ -1084,11 +1107,15 @@
       logging.info('Could not get tests from pickle: %s', e)
     logging.info('Getting tests by having %s list them.',
                  self._test_instance.junit4_runner_class)
+    # We need to use GetAppWritablePath instead of GetExternalStoragePath
+    # here because we will not have applied legacy storage workarounds on R+
+    # yet.
+    # TODO(rmhasan): Figure out how to create the temp file inside the test
+    # app's data directory. Currently when the temp file is created read
+    # permissions are only given to the app's user id. Therefore we can't
+    # pull the file from the device.
     def list_tests(d):
       def _run(dev):
-        # We need to use GetAppWritablePath instead of GetExternalStoragePath
-        # here because we will not have applied legacy storage workarounds on R+
-        # yet.
         with device_temp_file.DeviceTempFile(
             dev.adb, suffix='.json',
             dir=dev.GetAppWritablePath()) as dev_test_list_json:
diff --git a/build/android/pylib/local/device/local_device_instrumentation_test_run_test.py b/build/android/pylib/local/device/local_device_instrumentation_test_run_test.py
index 42af76ab..083236a 100755
--- a/build/android/pylib/local/device/local_device_instrumentation_test_run_test.py
+++ b/build/android/pylib/local/device/local_device_instrumentation_test_run_test.py
@@ -9,6 +9,7 @@
 
 
 import unittest
+import mock  # pylint: disable=import-error
 
 from pylib.base import base_test_result
 from pylib.base import mock_environment
@@ -164,6 +165,33 @@
     with self.assertRaises(ValueError):
       local_device_instrumentation_test_run._ReplaceUncommonChars(original)
 
+  def testStoreDataInAppDir(self):
+    env = mock.MagicMock()
+    test_instance = mock.MagicMock()
+    test_instance.store_data_in_app_directory = True
+    device = mock.MagicMock()
+
+    device.GetApplicationDataDirectory.return_value = 'app_dir'
+    device.GetExternalStoragePath.return_value = 'external_dir'
+    test_run = (
+        local_device_instrumentation_test_run.LocalDeviceInstrumentationTestRun(
+            env, test_instance))
+    self.assertEqual(test_run._GetDataStorageRootDirectory(device), 'app_dir')
+
+  def testStoreDataInExternalDir(self):
+    env = mock.MagicMock()
+    test_instance = mock.MagicMock()
+    test_instance.store_data_in_app_directory = False
+    device = mock.MagicMock()
+
+    device.GetApplicationDataDirectory.return_value = 'app_dir'
+    device.GetExternalStoragePath.return_value = 'external_dir'
+    test_run = (
+        local_device_instrumentation_test_run.LocalDeviceInstrumentationTestRun(
+            env, test_instance))
+    self.assertEqual(test_run._GetDataStorageRootDirectory(device),
+                     'external_dir')
+
 
 if __name__ == '__main__':
   unittest.main(verbosity=2)
diff --git a/build/android/test_runner.py b/build/android/test_runner.py
index 3cee6c5..107bf56 100755
--- a/build/android/test_runner.py
+++ b/build/android/test_runner.py
@@ -472,6 +472,11 @@
       '--apk-under-test',
       help='Path or name of the apk under test.')
   parser.add_argument(
+      '--store-data-in-app-directory',
+      action='store_true',
+      help='Store test data in the application\'s data directory. By default '
+      'the test data is stored in the external storage folder.')
+  parser.add_argument(
       '--module',
       action='append',
       dest='modules',
diff --git a/cc/animation/animation_unittest.cc b/cc/animation/animation_unittest.cc
index 42203ab..2d35841a 100644
--- a/cc/animation/animation_unittest.cc
+++ b/cc/animation/animation_unittest.cc
@@ -7,6 +7,7 @@
 #include <memory>
 
 #include "base/strings/stringprintf.h"
+#include "base/test/gtest_util.h"
 #include "base/time/time.h"
 #include "cc/animation/animation_delegate.h"
 #include "cc/animation/animation_host.h"
@@ -470,6 +471,28 @@
       element_id_, ElementListType::ACTIVE, TargetProperty::FILTER));
 }
 
+using AnimationDeathTest = AnimationTest;
+
+TEST_F(AnimationDeathTest, RemoveAddInSameFrame) {
+  client_.RegisterElementId(element_id_, ElementListType::ACTIVE);
+  host_->AddAnimationTimeline(timeline_);
+  timeline_->AttachAnimation(animation_);
+  animation_->AttachElement(element_id_);
+
+  EXPECT_TRUE(client_.mutators_need_commit());
+  client_.set_mutators_need_commit(false);
+
+  const int keyframe_model_id =
+      AddOpacityTransitionToAnimation(animation_.get(), 1., .7f, .3f, false);
+  host_->PushPropertiesTo(host_impl_, client_.GetPropertyTrees());
+
+  animation_->RemoveKeyframeModel(keyframe_model_id);
+  AddOpacityTransitionToAnimation(animation_.get(), 1., .7f, .3f, false,
+                                  keyframe_model_id);
+  EXPECT_DCHECK_DEATH(
+      host_->PushPropertiesTo(host_impl_, client_.GetPropertyTrees()));
+}
+
 TEST_F(AnimationTest, AddRemoveAnimationCausesSetNeedsCommit) {
   client_.RegisterElementId(element_id_, ElementListType::ACTIVE);
   host_->AddAnimationTimeline(timeline_);
diff --git a/cc/animation/element_animations_unittest.cc b/cc/animation/element_animations_unittest.cc
index 63d3e3d4..d7d288e 100644
--- a/cc/animation/element_animations_unittest.cc
+++ b/cc/animation/element_animations_unittest.cc
@@ -1151,9 +1151,11 @@
       ScrollOffsetAnimationCurveFactory::CreateEaseInOutAnimationForTesting(
           target_value));
 
-  int keyframe_model_id = 1;
+  int keyframe_model_id = AnimationIdProvider::NextKeyframeModelId();
+  int group_id = AnimationIdProvider::NextGroupId();
+
   std::unique_ptr<KeyframeModel> keyframe_model(KeyframeModel::Create(
-      std::move(curve), keyframe_model_id, 0,
+      std::move(curve), keyframe_model_id, group_id,
       KeyframeModel::TargetPropertyId(TargetProperty::SCROLL_OFFSET)));
   keyframe_model->set_needs_synchronized_start_time(true);
   animation_->AddKeyframeModel(std::move(keyframe_model));
@@ -1178,11 +1180,14 @@
   EXPECT_FALSE(animation_impl_->keyframe_effect()
                    ->scroll_offset_animation_was_interrupted());
 
+  keyframe_model_id = AnimationIdProvider::NextKeyframeModelId();
+  group_id = AnimationIdProvider::NextGroupId();
+
   // Now, test the 2-argument version of RemoveKeyframeModel.
   curve = ScrollOffsetAnimationCurveFactory::CreateEaseInOutAnimationForTesting(
       target_value);
   keyframe_model = KeyframeModel::Create(
-      std::move(curve), keyframe_model_id, 0,
+      std::move(curve), keyframe_model_id, group_id,
       KeyframeModel::TargetPropertyId(TargetProperty::SCROLL_OFFSET));
   keyframe_model->set_needs_synchronized_start_time(true);
   animation_->AddKeyframeModel(std::move(keyframe_model));
diff --git a/cc/animation/keyframe_model.cc b/cc/animation/keyframe_model.cc
index 95d6a7a..67a0be6 100644
--- a/cc/animation/keyframe_model.cc
+++ b/cc/animation/keyframe_model.cc
@@ -20,6 +20,16 @@
 
 namespace cc {
 
+namespace {
+#if DCHECK_IS_ON()
+int GetNextDebugId() {
+  static int g_nextDebugId = 0;
+  g_nextDebugId++;
+  return g_nextDebugId;
+}
+#endif
+}  // namespace
+
 // static
 const KeyframeModel* KeyframeModel::ToCcKeyframeModel(
     const gfx::KeyframeModel* keyframe_model) {
@@ -92,6 +102,9 @@
   to_return->set_fill_mode(fill_mode());
   DCHECK(!to_return->is_controlling_instance_);
   to_return->is_controlling_instance_ = true;
+#if DCHECK_IS_ON()
+  to_return->debug_id_ = debug_id_;
+#endif
   return to_return;
 }
 
@@ -104,12 +117,16 @@
                          target_property_id.target_property_type()),
       group_(group_id),
       target_property_id_(std::move(target_property_id)),
+#if DCHECK_IS_ON()
+      debug_id_(GetNextDebugId()),
+#endif
       needs_synchronized_start_time_(false),
       received_finished_event_(false),
       is_controlling_instance_(false),
       is_impl_only_(false),
       affects_active_elements_(true),
-      affects_pending_elements_(true) {}
+      affects_pending_elements_(true) {
+}
 
 KeyframeModel::~KeyframeModel() = default;
 
@@ -158,6 +175,12 @@
 }
 
 void KeyframeModel::PushPropertiesTo(KeyframeModel* other) const {
+#if DCHECK_IS_ON()
+  DCHECK_EQ(debug_id_, other->debug_id_)
+      << "Attempted to push properties to a model with a mismatched debug id "
+         "(i.e., different keyframe models). This can happen when keyframe "
+         "model ids are reused.";
+#endif
   other->element_id_ = element_id_;
   if (run_state() == KeyframeModel::PAUSED ||
       other->run_state() == KeyframeModel::PAUSED) {
diff --git a/cc/animation/keyframe_model.h b/cc/animation/keyframe_model.h
index 2c9edb9..8bc551f3 100644
--- a/cc/animation/keyframe_model.h
+++ b/cc/animation/keyframe_model.h
@@ -8,6 +8,7 @@
 #include <memory>
 #include <string>
 
+#include "base/check.h"
 #include "base/time/time.h"
 #include "cc/animation/animation_export.h"
 #include "cc/paint/element_id.h"
@@ -156,6 +157,11 @@
   // value on.
   ElementId element_id_;
 
+#if DCHECK_IS_ON()
+  // This id is unique, modulo overflow. Permits quick instance equality checks.
+  int debug_id_ = 0;
+#endif
+
   bool needs_synchronized_start_time_;
   bool received_finished_event_;
 
diff --git a/cc/metrics/video_playback_roughness_reporter.cc b/cc/metrics/video_playback_roughness_reporter.cc
index 07d3232..fe8f3d9 100644
--- a/cc/metrics/video_playback_roughness_reporter.cc
+++ b/cc/metrics/video_playback_roughness_reporter.cc
@@ -7,6 +7,7 @@
 #include <algorithm>
 
 #include "base/callback_helpers.h"
+#include "base/containers/adapters.h"
 #include "base/cxx17_backports.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/numerics/safe_conversions.h"
@@ -84,19 +85,18 @@
 void VideoPlaybackRoughnessReporter::FramePresented(TokenType token,
                                                     base::TimeTicks timestamp,
                                                     bool reliable_timestamp) {
-  for (auto it = frames_.rbegin(); it != frames_.rend(); it++) {
-    FrameInfo& info = *it;
-    if (token == it->token) {
-      if (info.decode_time.has_value()) {
-        auto time_since_decode = timestamp - info.decode_time.value();
+  for (auto& frame : base::Reversed(frames_)) {
+    if (token == frame.token) {
+      if (frame.decode_time.has_value()) {
+        auto time_since_decode = timestamp - frame.decode_time.value();
         UMA_HISTOGRAM_TIMES("Media.VideoFrameSubmitter", time_since_decode);
       }
 
       if (reliable_timestamp)
-        info.presentation_time = timestamp;
+        frame.presentation_time = timestamp;
       break;
     }
-    if (viz::FrameTokenGT(token, it->token))
+    if (viz::FrameTokenGT(token, frame.token))
       break;
   }
 }
diff --git a/cc/test/animation_test_common.cc b/cc/test/animation_test_common.cc
index d03b457..24cfe2b 100644
--- a/cc/test/animation_test_common.cc
+++ b/cc/test/animation_test_common.cc
@@ -29,7 +29,8 @@
                          double duration,
                          float start_opacity,
                          float end_opacity,
-                         bool use_timing_function) {
+                         bool use_timing_function,
+                         int id) {
   std::unique_ptr<gfx::KeyframedFloatAnimationCurve> curve(
       gfx::KeyframedFloatAnimationCurve::Create());
 
@@ -43,8 +44,6 @@
   curve->AddKeyframe(gfx::FloatKeyframe::Create(base::Seconds(duration),
                                                 end_opacity, nullptr));
 
-  int id = AnimationIdProvider::NextKeyframeModelId();
-
   std::unique_ptr<KeyframeModel> keyframe_model(KeyframeModel::Create(
       std::move(curve), id, AnimationIdProvider::NextGroupId(),
       KeyframeModel::TargetPropertyId(TargetProperty::OPACITY)));
@@ -291,9 +290,11 @@
                                     double duration,
                                     float start_opacity,
                                     float end_opacity,
-                                    bool use_timing_function) {
-  return AddOpacityTransition(animation, duration, start_opacity, end_opacity,
-                              use_timing_function);
+                                    bool use_timing_function,
+                                    absl::optional<int> id) {
+  return AddOpacityTransition(
+      animation, duration, start_opacity, end_opacity, use_timing_function,
+      id ? *id : AnimationIdProvider::NextKeyframeModelId());
 }
 
 int AddAnimatedFilterToAnimation(Animation* animation,
diff --git a/cc/test/animation_test_common.h b/cc/test/animation_test_common.h
index b90a6fe4..ca71aae 100644
--- a/cc/test/animation_test_common.h
+++ b/cc/test/animation_test_common.h
@@ -90,7 +90,8 @@
                                     double duration,
                                     float start_opacity,
                                     float end_opacity,
-                                    bool use_timing_function);
+                                    bool use_timing_function,
+                                    absl::optional<int> id = absl::nullopt);
 
 int AddAnimatedFilterToAnimation(Animation* animation,
                                  double duration,
diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc
index b85b4b5..c631c494 100644
--- a/cc/trees/property_tree.cc
+++ b/cc/trees/property_tree.cc
@@ -494,7 +494,7 @@
       break;
     scroller_id = scroll_node->parent_id;
   }
-  return -accumulated_scroll_offset;
+  return data->accumulated_scroll_origin - accumulated_scroll_offset;
 }
 
 bool TransformTree::ShouldUndoOverscroll(const TransformNode* node) const {
diff --git a/cc/trees/property_tree.h b/cc/trees/property_tree.h
index 6c05ffe..5880323f 100644
--- a/cc/trees/property_tree.h
+++ b/cc/trees/property_tree.h
@@ -312,6 +312,7 @@
 struct AnchorScrollContainersData {
   int inner_most_scroll_container_id = kInvalidPropertyNodeId;
   int outer_most_scroll_container_id = kInvalidPropertyNodeId;
+  gfx::Vector2d accumulated_scroll_origin;
 };
 
 struct StickyPositionNodeData {
diff --git a/chrome/VERSION b/chrome/VERSION
index 7746fec..d8d6f979 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=106
 MINOR=0
-BUILD=5219
+BUILD=5220
 PATCH=0
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index 6a788830..68254db 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -4237,6 +4237,7 @@
     "java/src/org/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper.java",
     "java/src/org/chromium/chrome/browser/tab/TabFavicon.java",
     "java/src/org/chromium/chrome/browser/tab/TabImpl.java",
+    "java/src/org/chromium/chrome/browser/tab/TabUtils.java",
     "java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl.java",
     "java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java",
     "java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index 09b1169..790f7a47 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -914,7 +914,6 @@
   "java/src/org/chromium/chrome/browser/payments/AutofillAddress.java",
   "java/src/org/chromium/chrome/browser/payments/AutofillContact.java",
   "java/src/org/chromium/chrome/browser/payments/AutofillPaymentAppCreator.java",
-  "java/src/org/chromium/chrome/browser/payments/AutofillPaymentAppFactory.java",
   "java/src/org/chromium/chrome/browser/payments/AutofillPaymentInstrument.java",
   "java/src/org/chromium/chrome/browser/payments/CardEditor.java",
   "java/src/org/chromium/chrome/browser/payments/ChromePaymentRequestFactory.java",
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
index c181e0f..a3ee8a9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
@@ -516,6 +516,7 @@
         transition.addTarget(SelectableItemView.class);
         Scene scene = new Scene(mRootView, mContentView);
         TransitionManager.go(scene, transition);
+        mContentView.requestFocus();
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentAppFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentAppFactory.java
deleted file mode 100644
index e66427a..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentAppFactory.java
+++ /dev/null
@@ -1,216 +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.
-
-package org.chromium.chrome.browser.payments;
-
-import android.os.Handler;
-import android.text.TextUtils;
-
-import androidx.annotation.Nullable;
-
-import org.chromium.chrome.browser.autofill.PersonalDataManager;
-import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile;
-import org.chromium.chrome.browser.autofill.PersonalDataManager.CreditCard;
-import org.chromium.components.payments.BasicCardUtils;
-import org.chromium.components.payments.MethodStrings;
-import org.chromium.components.payments.PaymentApp;
-import org.chromium.components.payments.PaymentAppFactoryDelegate;
-import org.chromium.components.payments.PaymentAppFactoryInterface;
-import org.chromium.components.payments.PaymentAppFactoryParams;
-import org.chromium.content_public.browser.RenderFrameHost;
-import org.chromium.content_public.browser.WebContents;
-import org.chromium.payments.mojom.PaymentDetailsModifier;
-import org.chromium.payments.mojom.PaymentItem;
-import org.chromium.payments.mojom.PaymentMethodData;
-import org.chromium.payments.mojom.PaymentOptions;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/** Creates one payment app per card on file in Autofill. */
-public class AutofillPaymentAppFactory implements PaymentAppFactoryInterface {
-    private Handler mHandler;
-
-    // PaymentAppFactoryInterface implementation.
-    @Override
-    public void create(PaymentAppFactoryDelegate delegate) {
-        Creator creator = new Creator(delegate);
-        if (mHandler == null) mHandler = new Handler();
-        mHandler.post(() -> {
-            boolean canMakePayment = creator.createPaymentApps();
-            delegate.onCanMakePaymentCalculated(canMakePayment);
-            delegate.onDoneCreatingPaymentApps(AutofillPaymentAppFactory.this);
-        });
-    }
-
-    /**
-     * Create an instance of {@link AutofillPaymentAppFactory.Creator}.
-     * @param delegate The delegate of a payment app factory.
-     * @return The created instance.
-     */
-    public static AutofillPaymentAppCreator createAppCreator(PaymentAppFactoryDelegate delegate) {
-        return new Creator(delegate);
-    }
-
-    /**
-     * @param methodData The payment methods and their corresponding data.
-     * @return Whether the method data supports making payments with an autofill payment app.
-     */
-    /* package */ static boolean canMakePayments(Map<String, PaymentMethodData> methodData) {
-        return !extractNetworksFromMethodData(methodData).isEmpty();
-    }
-
-    /**
-     * Extracts network strings from the given method data.
-     * @param methodData The payment methods and their corresponding data.
-     * @return A set of strings representing the payment networks.
-     */
-    private static Set<String> extractNetworksFromMethodData(
-            Map<String, PaymentMethodData> methodData) {
-        if (!methodData.containsKey(MethodStrings.BASIC_CARD)) return Collections.emptySet();
-        PaymentMethodData data = methodData.get(MethodStrings.BASIC_CARD);
-        return BasicCardUtils.convertBasicCardToNetworks(data);
-    }
-
-    /** Creates one payment app per Autofill card on file that matches the given payment request. */
-    private static final class Creator implements AutofillPaymentAppCreator {
-        private final PaymentAppFactoryDelegate mDelegate;
-        private final boolean mCanMakePayment;
-        private final Set<String> mNetworks;
-
-        // The caller should ensure the params has not been closed before creating this.
-        private Creator(PaymentAppFactoryDelegate delegate) {
-            assert !delegate.getParams().hasClosed();
-            mDelegate = delegate;
-            mNetworks = extractNetworksFromMethodData(mDelegate.getParams().getMethodData());
-            mCanMakePayment = !mNetworks.isEmpty();
-        }
-
-        /** @return Whether can make payments with basic card. */
-        private boolean createPaymentApps() {
-            if (mDelegate.getParams().hasClosed() || !mCanMakePayment) return false;
-
-            List<CreditCard> cards = PersonalDataManager.getInstance().getCreditCardsToSuggest(
-                    /*includeServerCards=*/false);
-            int numberOfCards = cards.size();
-            for (int i = 0; i < numberOfCards; i++) {
-                // createPaymentAppForCard(card) returns null if the card network or type does not
-                // match mNetworks.
-                PaymentApp app = createPaymentAppForCard(cards.get(i));
-                if (app != null) mDelegate.onPaymentAppCreated(app);
-            }
-
-            return true;
-        }
-
-        // AutofillPaymentAppCreator interface.
-        @Override
-        @Nullable
-        public PaymentApp createPaymentAppForCard(CreditCard card) {
-            if (!mCanMakePayment || mDelegate.getParams().hasClosed()) return null;
-
-            if (!mNetworks.contains(card.getBasicCardIssuerNetwork())) return null;
-
-            AutofillProfile billingAddress = TextUtils.isEmpty(card.getBillingAddressId())
-                    ? null
-                    : PersonalDataManager.getInstance().getProfile(card.getBillingAddressId());
-
-            if (billingAddress != null
-                    && AutofillAddress.checkAddressCompletionStatus(
-                               billingAddress, AutofillAddress.CompletenessCheckType.IGNORE_PHONE)
-                            != AutofillAddress.CompletionStatus.COMPLETE) {
-                billingAddress = null;
-            }
-
-            if (billingAddress == null) card.setBillingAddressId(null);
-
-            return new AutofillPaymentInstrument(mDelegate.getParams().getWebContents(), card,
-                    billingAddress, MethodStrings.BASIC_CARD);
-        }
-    }
-
-    /**
-     * Checks for usable Autofill card on file.
-     *
-     * @param webContents The web contents where PaymentRequest was invoked.
-     * @param methodData The payment methods and their corresponding data.
-     * @return Whether there's a usable Autofill card on file.
-     */
-    /* package */ static boolean hasUsableAutofillCard(
-            WebContents webContents, Map<String, PaymentMethodData> methodData) {
-        PaymentAppFactoryParams params = new PaymentAppFactoryParams() {
-            @Override
-            public WebContents getWebContents() {
-                return webContents;
-            }
-
-            @Override
-            public Map<String, PaymentMethodData> getMethodData() {
-                return methodData;
-            }
-
-            @Override
-            public boolean hasClosed() {
-                return false;
-            }
-
-            @Override
-            public RenderFrameHost getRenderFrameHost() {
-                // AutofillPaymentAppFactory.Creator doesn't need RenderFrameHost.
-                assert false : "getRenderFrameHost() should not be called";
-                return null;
-            }
-
-            @Override
-            public boolean isOffTheRecord() {
-                // AutofillPaymentAppFactory.Creator doesn't need to know isOffTheRecord.
-                assert false : "isOffTheRecord() should not be called";
-                return false;
-            }
-
-            @Override
-            public PaymentOptions getPaymentOptions() {
-                // AutofillPaymentAppFactory.Creator doesn't need PaymentOptions.
-                assert false : "getPaymentOptions() should not be called";
-                return null;
-            }
-
-            @Override
-            public PaymentItem getRawTotal() {
-                // AutofillPaymentAppFactory.Creator doesn't need raw totals.
-                assert false : "getRawTotals() should not be called";
-                return null;
-            }
-
-            @Override
-            public Map<String, PaymentDetailsModifier> getUnmodifiableModifiers() {
-                // AutofillPaymentAppFactory.Creator doesn't need modifiers.
-                assert false : "getUnmodifiableModifiers() should not be called";
-                return null;
-            }
-        };
-        final class UsableCardFinder implements PaymentAppFactoryDelegate {
-            private boolean mResult;
-
-            @Override
-            public PaymentAppFactoryParams getParams() {
-                return params;
-            }
-
-            @Override
-            public void onPaymentAppCreated(PaymentApp app) {
-                app.setHaveRequestedAutofillData(true);
-                assert app instanceof AutofillPaymentInstrument;
-                if (((AutofillPaymentInstrument) app).strictCanMakePayment()) mResult = true;
-            }
-        };
-        UsableCardFinder usableCardFinder = new UsableCardFinder();
-        Creator creator = new Creator(/*delegate=*/usableCardFinder);
-        // Synchronously invokes usableCardFinder.onPaymentAppCreated(app).
-        creator.createPaymentApps();
-        return usableCardFinder.mResult;
-    }
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ChromePaymentRequestService.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ChromePaymentRequestService.java
index d37ee95c..0e7e58a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ChromePaymentRequestService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ChromePaymentRequestService.java
@@ -22,11 +22,7 @@
 import org.chromium.components.payments.ErrorStrings;
 import org.chromium.components.payments.JourneyLogger;
 import org.chromium.components.payments.PaymentApp;
-import org.chromium.components.payments.PaymentAppFactoryDelegate;
-import org.chromium.components.payments.PaymentAppFactoryInterface;
-import org.chromium.components.payments.PaymentAppService;
 import org.chromium.components.payments.PaymentAppType;
-import org.chromium.components.payments.PaymentFeatureList;
 import org.chromium.components.payments.PaymentHandlerHost;
 import org.chromium.components.payments.PaymentRequestParams;
 import org.chromium.components.payments.PaymentRequestService;
@@ -127,23 +123,6 @@
         }
 
         /**
-         * Creates an instance of Autofill payment app factory.
-         * @return The instance, can be null for testing.
-         */
-        @Nullable
-        default PaymentAppFactoryInterface createAutofillPaymentAppFactory() {
-            return new AutofillPaymentAppFactory();
-        }
-
-        /**
-         * Whether an autofill transaction is allowed to be made.
-         * @return The instance, can be null for testing.
-         */
-        default boolean canMakeAutofillPayment(Map<String, PaymentMethodData> methodData) {
-            return AutofillPaymentAppFactory.canMakePayments(methodData);
-        }
-
-        /**
          * @param renderFrameHost The frame that issues the payment request.
          * @return Whether the WebContents of the merchant frame is alive and visible.
          */
@@ -267,24 +246,6 @@
 
     // Implements BrowserPaymentRequest:
     @Override
-    public void addPaymentAppFactories(
-            PaymentAppService service, PaymentAppFactoryDelegate delegate) {
-        if (PaymentFeatureList.isEnabled(PaymentFeatureList.PAYMENT_REQUEST_BASIC_CARD)) {
-            String autofillFactoryId = AutofillPaymentAppFactory.class.getName();
-            if (!service.containsFactory(autofillFactoryId)) {
-                service.addUniqueFactory(
-                        mDelegate.createAutofillPaymentAppFactory(), autofillFactoryId);
-            }
-            if (mDelegate.canMakeAutofillPayment(mSpec.getMethodData())) {
-                mPaymentUiService.setAutofillPaymentAppCreator(
-                        AutofillPaymentAppFactory.createAppCreator(
-                                /*delegate=*/delegate));
-            }
-        }
-    }
-
-    // Implements BrowserPaymentRequest:
-    @Override
     public String showOrSkipAppSelector(boolean isShowWaitingForUpdatedDetails, PaymentItem total,
             boolean shouldSkipAppSelector) {
         Activity activity = mDelegate.getActivity(mWebContents);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/DEPS b/chrome/android/java/src/org/chromium/chrome/browser/tab/DEPS
index cb9c1cf..0a81b43d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/DEPS
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/DEPS
@@ -96,6 +96,8 @@
     "+components/navigation_interception/android/java/src/org/chromium/components/navigation_interception",
     "+components/security_state/content/android/java/src/org/chromium/components/security_state/SecurityStateModel.java",
     "+components/version_info/android",
+    "+components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java",
+    "+components/user_prefs/android/java/src/org/chromium/components/user_prefs/UserPrefs.java",
   ],
   'TabStateBrowserControlsVisibilityDelegate\.java': [
     "+chrome/browser/util/android/java/src/org/chromium/chrome/browser/util/ChromeAccessibilityUtil.java",
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
index adbd664..31d7fde 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
@@ -4,6 +4,8 @@
 
 package org.chromium.chrome.browser.tab;
 
+import static org.chromium.components.content_settings.PrefNames.DESKTOP_SITE_PERIPHERAL_SETTING_ENABLED;
+
 import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.content.Context;
@@ -55,11 +57,14 @@
 import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
 import org.chromium.components.embedder_support.util.UrlConstants;
 import org.chromium.components.embedder_support.view.ContentView;
+import org.chromium.components.prefs.PrefService;
 import org.chromium.components.security_state.ConnectionSecurityLevel;
 import org.chromium.components.security_state.SecurityStateModel;
 import org.chromium.components.url_formatter.UrlFormatter;
+import org.chromium.components.user_prefs.UserPrefs;
 import org.chromium.components.version_info.VersionInfo;
 import org.chromium.content_public.browser.ChildProcessImportance;
+import org.chromium.content_public.browser.ContentFeatureList;
 import org.chromium.content_public.browser.LoadUrlParams;
 import org.chromium.content_public.browser.WebContents;
 import org.chromium.content_public.browser.WebContentsAccessibility;
@@ -1662,6 +1667,15 @@
         }
         boolean shouldRequestDesktopSite =
                 TabUtils.readRequestDesktopSiteContentSettings(profile, url);
+        if (!shouldRequestDesktopSite
+                && ContentFeatureList.isEnabled(
+                        ContentFeatureList.REQUEST_DESKTOP_SITE_ADDITIONS)) {
+            // TODO(shuyng): Make additional setting compatible with site level setting.
+            PrefService prefService = UserPrefs.get(profile);
+            boolean peripheralPref =
+                    prefService.getBoolean(DESKTOP_SITE_PERIPHERAL_SETTING_ENABLED);
+            shouldRequestDesktopSite = TabUtils.isHardwareKeyboardAvailable(this) && peripheralPref;
+        }
         if (shouldRequestDesktopSite != currentRequestDesktopSite) {
             // The user is not forcing any mode and we determined that we need to
             // change, therefore we are using TRUE or FALSE option. On Android TRUE mean
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java
index 807ef18..1032104 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java
@@ -19,6 +19,7 @@
 
 import org.chromium.base.ApplicationStatus;
 import org.chromium.base.MathUtils;
+import org.chromium.base.annotations.CalledByNative;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.profiles.Profile;
@@ -253,6 +254,19 @@
     }
 
     /**
+     * Return whether hardware keyboard is available, including QWERTY and 12Key keyboards.
+     * @param tab The tab used to retrieve context for keyboard configuration.
+     * TODO(shuyng): Create ConfigurationChangedObserver to update the current value in C++; to
+     * avoid extra JNI request on each navigation.
+     */
+    @CalledByNative
+    public static boolean isHardwareKeyboardAvailable(Tab tab) {
+        int keyboard = tab.getContext().getResources().getConfiguration().keyboard;
+        return keyboard == Configuration.KEYBOARD_QWERTY
+                || keyboard == Configuration.KEYBOARD_12KEY;
+    }
+
+    /**
      * Return aspect ratio for grid tab card based on form factor and orientation.
      * @param context - Context of the application.
      * @return Aspect ratio for the grid tab card.
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/media/PictureInPictureActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/media/PictureInPictureActivityTest.java
index 0857e46..2b1a9331 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/media/PictureInPictureActivityTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/media/PictureInPictureActivityTest.java
@@ -119,11 +119,12 @@
     @MediumTest
     @MinAndroidSdkLevel(Build.VERSION_CODES.O)
     public void testStartActivity() throws Throwable {
-        startPictureInPictureActivity();
+        PictureInPictureActivity activity = startPictureInPictureActivity();
 
         // The LaunchIntoPipHelper should have been called.
         Assert.assertTrue(mBounds != null);
         Criteria.checkThat(mBounds, Matchers.is(mSourceRectHint));
+        testExitOn(activity, () -> activity.close());
     }
 
     @Test
@@ -148,9 +149,10 @@
     @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE)
     public void testMakeEnterPictureInPictureWithBadSourceRect() throws Throwable {
         mSourceRectHint.left = -1;
-        startPictureInPictureActivity();
+        PictureInPictureActivity activity = startPictureInPictureActivity();
         // The pip helper should not be called with trivially bad bounds.
         Assert.assertTrue(mBounds == null);
+        testExitOn(activity, () -> activity.close());
     }
 
     @Test
@@ -185,6 +187,7 @@
         TestThreadUtils.runOnUiThreadBlocking(
                 () -> view.layout(0, 0, unreasonableSize, unreasonableSize));
         verify(mNativeMock, times(0)).onViewSizeChanged(anyInt(), anyInt(), anyInt());
+        testExitOn(activity, () -> activity.close());
     }
 
     @Test
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabDataTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabDataTest.java
index 91c5955c..601eb3b 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabDataTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabDataTest.java
@@ -104,6 +104,7 @@
     @UiThreadTest
     @SmallTest
     @Test
+    @CommandLineFlags.Add({"force-fieldtrial-params=Study.Group:check_if_price_drop_is_seen/true"})
     public void testShoppingProto() {
         Tab tab = new MockTab(ShoppingPersistedTabDataTestUtils.TAB_ID,
                 ShoppingPersistedTabDataTestUtils.IS_INCOGNITO);
@@ -116,6 +117,7 @@
         shoppingPersistedTabData.setCurrencyCode(
                 ShoppingPersistedTabDataTestUtils.GREAT_BRITAIN_CURRENCY_CODE);
         shoppingPersistedTabData.setPriceDropGurl(new GURL("https://www.google.com"));
+        shoppingPersistedTabData.setIsCurrentPriceDropSeen(true);
         ByteBuffer serialized = shoppingPersistedTabData.getSerializer().get();
         ShoppingPersistedTabData deserialized = new ShoppingPersistedTabData(tab);
         deserialized.deserialize(serialized);
@@ -125,6 +127,7 @@
                 ShoppingPersistedTabData.NO_PRICE_KNOWN, deserialized.getPreviousPriceMicros());
         Assert.assertEquals(ShoppingPersistedTabDataTestUtils.GREAT_BRITAIN_CURRENCY_CODE,
                 deserialized.getCurrencyCode());
+        Assert.assertTrue(deserialized.getIsCurrentPriceDropSeen());
         Assert.assertEquals(
                 new GURL("https://www.google.com"), deserialized.getPriceDropDataForTesting().gurl);
         MetricsResult metricsResult =
@@ -1177,6 +1180,121 @@
         }
     }
 
+    @SmallTest
+    @Test
+    @CommandLineFlags.Add({"force-fieldtrial-params=Study.Group:check_if_price_drop_is_seen/true"
+            + "/price_tracking_with_optimization_guide/true"})
+    public void
+    testIsCurrentPriceDropSeen_PriceChange() throws TimeoutException {
+        ShoppingPersistedTabDataTestUtils.mockOptimizationGuideResponse(
+                mOptimizationGuideBridgeJniMock,
+                HintsProto.OptimizationType.PRICE_TRACKING.getNumber(),
+                ShoppingPersistedTabDataTestUtils.MockPriceTrackingResponse
+                        .BUYABLE_PRODUCT_AND_PRODUCT_UPDATE);
+        ShoppingPersistedTabDataTestUtils.mockOptimizationGuideResponse(
+                mOptimizationGuideBridgeJniMock,
+                HintsProto.OptimizationType.SHOPPING_PAGE_PREDICTOR.getNumber(),
+                OptimizationGuideDecision.TRUE, null);
+
+        Tab tab = ShoppingPersistedTabDataTestUtils.createTabOnUiThread(
+                ShoppingPersistedTabDataTestUtils.TAB_ID,
+                ShoppingPersistedTabDataTestUtils.IS_INCOGNITO);
+        ShoppingPersistedTabData shoppingPersistedTabData =
+                ShoppingPersistedTabDataTestUtils
+                        .createShoppingPersistedTabDataWithPriceDropOnUiThread(tab);
+
+        CallbackHelper callbackHelper = new CallbackHelper();
+        int count = callbackHelper.getCallCount();
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            shoppingPersistedTabData.setIsCurrentPriceDropSeen(true);
+            shoppingPersistedTabData.setPriceMicros(
+                    ShoppingPersistedTabDataTestUtils.LOW_PRICE_MICROS);
+            tab.getUserDataHost().setUserData(
+                    ShoppingPersistedTabData.class, shoppingPersistedTabData);
+            ShoppingPersistedTabData.from(tab, (sptd) -> {
+                Assert.assertFalse(sptd.getIsCurrentPriceDropSeen());
+                callbackHelper.notifyCalled();
+            });
+        });
+        callbackHelper.waitForCallback(count);
+    }
+
+    @SmallTest
+    @Test
+    @CommandLineFlags.Add({"force-fieldtrial-params=Study.Group:check_if_price_drop_is_seen/true"
+            + "/price_tracking_with_optimization_guide/true"})
+    public void
+    testIsCurrentPriceDropSeen_CurrencyChange() throws TimeoutException {
+        ShoppingPersistedTabDataTestUtils.mockOptimizationGuideResponse(
+                mOptimizationGuideBridgeJniMock,
+                HintsProto.OptimizationType.PRICE_TRACKING.getNumber(),
+                ShoppingPersistedTabDataTestUtils.MockPriceTrackingResponse
+                        .BUYABLE_PRODUCT_AND_PRODUCT_UPDATE);
+        ShoppingPersistedTabDataTestUtils.mockOptimizationGuideResponse(
+                mOptimizationGuideBridgeJniMock,
+                HintsProto.OptimizationType.SHOPPING_PAGE_PREDICTOR.getNumber(),
+                OptimizationGuideDecision.TRUE, null);
+
+        Tab tab = ShoppingPersistedTabDataTestUtils.createTabOnUiThread(
+                ShoppingPersistedTabDataTestUtils.TAB_ID,
+                ShoppingPersistedTabDataTestUtils.IS_INCOGNITO);
+        ShoppingPersistedTabData shoppingPersistedTabData =
+                ShoppingPersistedTabDataTestUtils
+                        .createShoppingPersistedTabDataWithPriceDropOnUiThread(tab);
+
+        CallbackHelper callbackHelper = new CallbackHelper();
+        int count = callbackHelper.getCallCount();
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            shoppingPersistedTabData.setIsCurrentPriceDropSeen(true);
+            shoppingPersistedTabData.setCurrencyCode(
+                    ShoppingPersistedTabDataTestUtils.JAPAN_CURRENCY_CODE);
+            tab.getUserDataHost().setUserData(
+                    ShoppingPersistedTabData.class, shoppingPersistedTabData);
+            ShoppingPersistedTabData.from(tab, (sptd) -> {
+                Assert.assertFalse(sptd.getIsCurrentPriceDropSeen());
+                callbackHelper.notifyCalled();
+            });
+        });
+        callbackHelper.waitForCallback(count);
+    }
+
+    @SmallTest
+    @Test
+    @CommandLineFlags.Add({"force-fieldtrial-params=Study.Group:check_if_price_drop_is_seen/true"
+            + "/price_tracking_with_optimization_guide/true"})
+    public void
+    testIsCurrentPriceDropSeen_NoPriceChange() throws TimeoutException {
+        ShoppingPersistedTabDataTestUtils.mockOptimizationGuideResponse(
+                mOptimizationGuideBridgeJniMock,
+                HintsProto.OptimizationType.PRICE_TRACKING.getNumber(),
+                ShoppingPersistedTabDataTestUtils.MockPriceTrackingResponse
+                        .BUYABLE_PRODUCT_AND_PRODUCT_UPDATE);
+        ShoppingPersistedTabDataTestUtils.mockOptimizationGuideResponse(
+                mOptimizationGuideBridgeJniMock,
+                HintsProto.OptimizationType.SHOPPING_PAGE_PREDICTOR.getNumber(),
+                OptimizationGuideDecision.TRUE, null);
+
+        Tab tab = ShoppingPersistedTabDataTestUtils.createTabOnUiThread(
+                ShoppingPersistedTabDataTestUtils.TAB_ID,
+                ShoppingPersistedTabDataTestUtils.IS_INCOGNITO);
+        ShoppingPersistedTabData shoppingPersistedTabData =
+                ShoppingPersistedTabDataTestUtils
+                        .createShoppingPersistedTabDataWithPriceDropOnUiThread(tab);
+
+        CallbackHelper callbackHelper = new CallbackHelper();
+        int count = callbackHelper.getCallCount();
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            shoppingPersistedTabData.setIsCurrentPriceDropSeen(true);
+            tab.getUserDataHost().setUserData(
+                    ShoppingPersistedTabData.class, shoppingPersistedTabData);
+            ShoppingPersistedTabData.from(tab, (sptd) -> {
+                Assert.assertTrue(sptd.getIsCurrentPriceDropSeen());
+                callbackHelper.notifyCalled();
+            });
+        });
+        callbackHelper.waitForCallback(count);
+    }
+
     private static void registerObserverSupplier(
             ShoppingPersistedTabData shoppingPersistedTabData) {
         ObservableSupplierImpl<Boolean> supplier = new ObservableSupplierImpl<>();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabDataTestUtils.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabDataTestUtils.java
index 1759ffb4..864fe61 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabDataTestUtils.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabDataTestUtils.java
@@ -42,6 +42,7 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.concurrent.Semaphore;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 
 /**
@@ -175,6 +176,24 @@
         return res.get();
     }
 
+    static ShoppingPersistedTabData createShoppingPersistedTabDataWithPriceDropOnUiThread(Tab tab) {
+        AtomicReference<ShoppingPersistedTabData> res = new AtomicReference<>();
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            ShoppingPersistedTabData shoppingPersistedTabData = new ShoppingPersistedTabData(tab);
+            ObservableSupplierImpl<Boolean> supplier = new ObservableSupplierImpl<>();
+            supplier.set(true);
+            shoppingPersistedTabData.registerIsTabSaveEnabledSupplier(supplier);
+            shoppingPersistedTabData.setPriceMicros(UPDATED_PRICE_MICROS);
+            shoppingPersistedTabData.setPreviousPriceMicros(PRICE_MICROS);
+            shoppingPersistedTabData.setLastUpdatedMs(
+                    System.currentTimeMillis() - TimeUnit.DAYS.toMillis(2));
+            shoppingPersistedTabData.setPriceDropGurl(DEFAULT_GURL);
+            shoppingPersistedTabData.setCurrencyCode(UNITED_STATES_CURRENCY_CODE);
+            res.set(shoppingPersistedTabData);
+        });
+        return res.get();
+    }
+
     static ShoppingPersistedTabData createShoppingPersistedTabDataWithCurrencyCode(
             int tabId, boolean isIncognito, String currencyCode) {
         ShoppingPersistedTabData shoppingPersistedTabData =
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webauth/AuthenticatorTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webauth/AuthenticatorTest.java
index 47fa71a3..d945fd17 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webauth/AuthenticatorTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webauth/AuthenticatorTest.java
@@ -15,6 +15,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import org.chromium.base.test.util.Batch;
 import org.chromium.base.test.util.CallbackHelper;
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.DisableIf;
@@ -36,7 +37,8 @@
 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
         ContentSwitches.HOST_RESOLVER_RULES + "=MAP * 127.0.0.1",
         "enable-experimental-web-platform-features", "enable-features=WebAuthentication",
-        "ignore-certificate-errors"})
+        "ignore-certificate-errors", "enable-features=WebAuthenticationConditionalUI"})
+@Batch(Batch.PER_CLASS)
 public class AuthenticatorTest {
     @Rule
     public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
@@ -84,6 +86,7 @@
         mUpdateWaiter = new AuthenticatorUpdateWaiter();
         TestThreadUtils.runOnUiThreadBlocking(() -> mTab.addObserver(mUpdateWaiter));
         mMockCredentialRequest = new MockFido2CredentialRequest();
+        AuthenticatorImpl.overrideFido2CredentialRequestForTesting(mMockCredentialRequest);
     }
 
     @After
@@ -104,7 +107,6 @@
     @Feature({"WebAuth"})
     public void testCreatePublicKeyCredential() throws Exception {
         mActivityTestRule.loadUrl(mUrl);
-        AuthenticatorImpl.overrideFido2CredentialRequestForTesting(mMockCredentialRequest);
         mActivityTestRule.runJavaScriptCodeInCurrentTab("doCreatePublicKeyCredential()");
         Assert.assertEquals("Success", mUpdateWaiter.waitForUpdate());
     }
@@ -121,7 +123,6 @@
     @Feature({"WebAuth"})
     public void testGetPublicKeyCredential() throws Exception {
         mActivityTestRule.loadUrl(mUrl);
-        AuthenticatorImpl.overrideFido2CredentialRequestForTesting(mMockCredentialRequest);
         mActivityTestRule.runJavaScriptCodeInCurrentTab("doGetPublicKeyCredential()");
         Assert.assertEquals("Success", mUpdateWaiter.waitForUpdate());
     }
@@ -137,9 +138,22 @@
     @Feature({"WebAuth"})
     public void testIsUserVerifyingPlatformAuthenticatorAvailable() throws Exception {
         mActivityTestRule.loadUrl(mUrl);
-        AuthenticatorImpl.overrideFido2CredentialRequestForTesting(mMockCredentialRequest);
         mActivityTestRule.runJavaScriptCodeInCurrentTab(
                 "doIsUserVerifyingPlatformAuthenticatorAvailable()");
         Assert.assertEquals("Success", mUpdateWaiter.waitForUpdate());
     }
+
+    /**
+     * Verify that the Mojo bridge between Blink and Java is working for
+     * PublicKeyCredential.isConditionalMediationAvailable.
+     */
+    @Test
+    @DisableIf.Build(sdk_is_less_than = 24)
+    @MediumTest
+    @Feature({"WebAuth"})
+    public void testIsConditionalMediationAvailable() throws Exception {
+        mActivityTestRule.loadUrl(mUrl);
+        mActivityTestRule.runJavaScriptCodeInCurrentTab("doIsConditionalMediationAvailable()");
+        Assert.assertEquals("Success", mUpdateWaiter.waitForUpdate());
+    }
 }
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 2bb3b1f..4406786b 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -345,7 +345,7 @@
       <if expr="enable_supervised_users">
         <part file="supervised_user_error_page_strings.grdp" />
       </if>
-      
+
       <!-- TODO add all of your "string table" messages here.  Remember to
       change nontranslateable parts of the messages into placeholders (using the
       <ph> element).  You can also use the 'grit add' tool to help you identify
@@ -12122,9 +12122,6 @@
       <message name="IDS_UTILITY_PROCESS_QUARANTINE_SERVICE_NAME" desc="The name of the utility process used to handle file quarantine.">
         Quarantine Service
     </message>
-      <message name="IDS_UTILITY_PROCESS_SYSTEM_SIGNALS_NAME" desc="The name of the utility process used to collect system signals. Only spawned on Windows.">
-        System Signals Utilities
-      </message>
     </if>
 
     <!-- Framebust / Blocked Redirection intervention message -->
@@ -12145,6 +12142,12 @@
       Open Anyway
     </message>
 
+    <if expr="is_win or is_macosx or is_linux">
+      <message name="IDS_UTILITY_PROCESS_SYSTEM_SIGNALS_NAME" desc="The name of the utility process used to collect system signals. Only spawned on Windows, Mac or Linux.">
+        System Signals Utilities
+      </message>
+    </if>
+
     <!-- Windows 10 toast strings -->
     <if expr="is_win">
       <message name="IDS_WIN10_TOAST_BROWSE_FAST" desc="Toast message variant: browse fast.">
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index 5cac6aef..13c8200 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Gebruik jou mikrofoon en kamera</translation>
 <translation id="1005333234656240382">Aktiveer ADB-ontfouting?</translation>
 <translation id="1006873397406093306">Hierdie uitbreiding kan jou data op werwe lees en verander. Jy kan beheer tot watter werwe die uitbreiding toegang het.</translation>
+<translation id="1007057452468855774">Skakel Google Play Winkel aan</translation>
 <translation id="1008186147501209563">Voer boekmerke uit</translation>
 <translation id="1008557486741366299">Nie nou nie</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" />-ligging</translation>
 <translation id="1009663062402466586">Speletjiekontroles nou beskikbaar</translation>
 <translation id="1010498023906173788">Hierdie oortjie is aan 'n reekspoort gekoppel.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Bladsy reageer nie}other{Bladsye reageer nie}}</translation>
+<translation id="1011003645819296594">Gestoorde toestelle</translation>
 <translation id="1011355516189274711">Teks-na-spraak-volume</translation>
 <translation id="1012794136286421601">Jou Dokumente-, Blaaie-, Skyfies- en Sketse-lêers word tans gesinkroniseer. Maak die Google Drive-program oop om hulle aanlyn of vanlyn te gebruik.</translation>
 <translation id="1012876632442809908">USB C-toestel (poort aan voorkant)</translation>
@@ -494,6 +496,7 @@
 <translation id="1470350905258700113">Gebruik hierdie toestel</translation>
 <translation id="1470946456740188591">Gebruik die kortpad Ctrl+Search+7 om karetblaai aan of af te skakel</translation>
 <translation id="1472675084647422956">Wys meer</translation>
+<translation id="1473223074251193484">Stel verbinding op</translation>
 <translation id="1474785664565228650">Die verandering in mikrofooninstelling vereis dat Parallels-werkskerm herbegin moet word. Parallels-werkskerm sal herbegin.</translation>
 <translation id="1474893630593443211">Meer beheer oor die advertensies wat jy sien</translation>
 <translation id="1475502736924165259">Jy het sertifikate op lêer wat nie in enige van die ander kategorieë pas nie</translation>
@@ -1125,6 +1128,7 @@
 <translation id="2044014337866019681">Maak asseblief seker dat jy <ph name="ACCOUNT" /> verifieer om die sessie te ontsluit.</translation>
 <translation id="204497730941176055">Microsoft-sertifikaattemplaatnaam</translation>
 <translation id="2045117674524495717">Kortpadsleutelhelper</translation>
+<translation id="2045211794962848221">Jy sal nie weer hierdie spesifieke boodskap sien nie</translation>
 <translation id="2045969484888636535">Hou aan om webkoekies te blokkeer</translation>
 <translation id="204622017488417136">Jou toestel sal na die vorige geïnstalleerde weergawe van Chrome teruggestel word. Alle gebruikerrekeninge en plaaslike data sal verwyder word. Dit kan nie ontdoen word nie.</translation>
 <translation id="2046702855113914483">Ramen</translation>
@@ -3811,6 +3815,7 @@
 <translation id="4594577641390224176">Soek jy na die stelsel se Meer Oor Bladsy? Besoek</translation>
 <translation id="4595560905247879544">Programme en uitbreidings kan slegs deur die bestuurder (<ph name="CUSTODIAN_NAME" />) gewysig word.</translation>
 <translation id="4596295440756783523">Jy het sertifikate op lêer wat hierdie bedieners identifiseer</translation>
+<translation id="4598345735110653698">Bestuur wagwoordsleutels</translation>
 <translation id="4598556348158889687">Bergingbestuur</translation>
 <translation id="4598776695426288251">Wi-Fi beskikbaar via veelvuldige toestelle</translation>
 <translation id="4601426376352205922">Merk as ongelees</translation>
@@ -4036,6 +4041,7 @@
 <translation id="4823894915586516138">Hierdie PIN of wagwoord beskerm jou data op hierdie <ph name="DEVICE_TYPE" />, insluitend enige inligting waartoe jy van jou foon af toegang het</translation>
 <translation id="4824037980212326045">Rugsteun en Teruglaai in Linux</translation>
 <translation id="4824958205181053313">Kanselleer sinkronisering?</translation>
+<translation id="4825532258163983651">Kan nie wagwoordsleutel uitvee nie</translation>
 <translation id="4827675678516992122">Kon nie koppel nie</translation>
 <translation id="4827784381479890589">Verbeterde speltoets in Chrome-blaaier (teks word na Google gestuur vir spellingvoorstelle)</translation>
 <translation id="4827904420700932487">Skep QR-kode vir hierdie prent</translation>
@@ -4298,6 +4304,7 @@
 <translation id="5087249366037322692">Bygevoeg deur 'n derde party</translation>
 <translation id="5087580092889165836">Voeg kaart by</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 met RSA-enkripsie</translation>
+<translation id="5089763948477033443">Kantpaneel se handvatsel vir grootteverandering</translation>
 <translation id="5090637338841444533">Mag nie jou kameraposisie naspoor nie</translation>
 <translation id="5093569275467863761">Incognito-terug-vorentoe-kasgegeue-subraam: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Jy kan met hierdie program gesteunde lêers uit die Lêers-program of ander programme oopmaak en wysig. <ph name="BEGIN_LINK" />Vind uit hoe om verstekprogramme op jou toestel te stel<ph name="END_LINK" /> om te beheer watter lêers hierdie program by verstek oopmaak.</translation>
@@ -4463,6 +4470,7 @@
 <translation id="5258992782919386492">Installeer op hierdie toestel</translation>
 <translation id="5260334392110301220">Slimaanhalingstekens</translation>
 <translation id="5260508466980570042">Jammer, jou e-pos of wagwoord kon nie geverifieer word nie. Probeer later weer.</translation>
+<translation id="5260958083445173099">Webwerwe sal inhoud indien moontlik in jou voorkeurtale wys</translation>
 <translation id="5261683757250193089">Maak in Webwinkel oop</translation>
 <translation id="5262178194499261222">Verwyder wagwoord</translation>
 <translation id="5262784498883614021">Koppel outomaties aan netwerk</translation>
@@ -4503,6 +4511,7 @@
 <translation id="5294097441441645251">Moet met 'n kleinletter of onderstreep begin</translation>
 <translation id="5294618183559481278">Jou <ph name="DEVICE_TYPE" /> gebruik 'n ingeboude sensor om mense voor jou toestel te bespeur. Alle data word onmiddellik op jou toestel verwerk en dan uitgevee. Sensordata word nooit na Google toe gestuur nie. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Hoor gesproke terugvoer sodat jy jou toestel kan gebruik sonder om na die skerm te kyk. Braille-terugvoer is beskikbaar met ’n gekoppelde toestel.</translation>
+<translation id="5297005732522718715">Herlaai verbindingopstelling</translation>
 <translation id="5297082477358294722">Wagwoord is gestoor. Bekyk en bestuur gestoorde wagwoorde in jou <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Wys die Privaatheid-oogikoon onder regs op jou skerm wanneer iemand anders na jou skerm kyk</translation>
 <translation id="5298219193514155779">Tema geskep deur</translation>
@@ -4673,6 +4682,7 @@
 <translation id="5466374726908360271">Plak en soek vir “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="5467207440419968613">Het <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> geblokkeer</translation>
 <translation id="5468173180030470402">Soek tans na lêerdelings</translation>
+<translation id="5468330507528805311">Verbindingstatus:</translation>
 <translation id="5468881191994555667">Kies lêer</translation>
 <translation id="5469852975082458401">Jy kan met 'n tekspyltjie deur bladsye navigeer. Druk F7 om af te skakel.</translation>
 <translation id="5470735824776589490">'n Herbegin word vereis voordat jou toestel met Powerwash teruggestel kan word. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation>
@@ -4825,7 +4835,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Mag nie aan MIDI-toestelle koppel nie</translation>
 <translation id="5602765853043467355">Vee boekmerke, geskiedenis, wagwoorde en meer van hierdie toestel af uit</translation>
-<translation id="5605623530403479164">Ander soekenjins</translation>
 <translation id="5605758115928394442">'n Kennisgewing is na jou foon toe gestuur om te bevestig dat dit jy is.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Hierdie uitbreiding is geblokkeer}other{Hierdie uitbreidings is geblokkeer}}</translation>
 <translation id="560834977503641186">Wi-fi-sinkronisering, kom meer te wete</translation>
@@ -4950,6 +4959,7 @@
 <translation id="5734362860645681824">Kommunikasies</translation>
 <translation id="5734697361979786483">Voeg lêerdeling by</translation>
 <translation id="5736796278325406685">Voer asseblief 'n geldige gebruikernaam in</translation>
+<translation id="5738093759615225354">Jy het hierdie wagwoordsleutel nodig om by jou rekenaar aan te meld</translation>
 <translation id="5739017626473506901">Meld aan om <ph name="USER_NAME" /> te help om 'n skoolrekening by te voeg</translation>
 <translation id="5739235828260127894">Wag tans vir verifikasie. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Baie groot</translation>
@@ -5111,6 +5121,7 @@
 <translation id="589541317545606110">Deursoek bladsy met <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Moenie toelaat nie</translation>
 <translation id="5900186025777217044">Smart Lock het verander</translation>
+<translation id="5900243355162006650">Verbindingopstelling:</translation>
 <translation id="5900302528761731119">Google-profielfoto</translation>
 <translation id="590036993063074298">Besonderhede van weerspieëlinggehalte</translation>
 <translation id="5901069264981746702">Jou vingerafdrukdata word veilig geberg en verlaat nooit jou <ph name="DEVICE_TYPE" /> nie. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation>
@@ -5125,6 +5136,7 @@
 <translation id="5909379458939060601">Vee hierdie profiel en blaaierdata uit?</translation>
 <translation id="5910363049092958439">Stoor prent as …</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> is vanlyn</translation>
+<translation id="5911030830365207728">Google Vertaal</translation>
 <translation id="5911533659001334206">Kortpadbekyker</translation>
 <translation id="5914724413750400082">Modulus (<ph name="MODULUS_NUM_BITS" /> bisse):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5414,6 +5426,7 @@
 <translation id="6196640612572343990">Blokkeer derdeparty-webkoekies</translation>
 <translation id="6196854373336333322">Die uitbreiding "<ph name="EXTENSION_NAME" />" het beheer oor jou instaanbedienerinstellings oorgeneem, wat beteken dat dit enigiets wat jy aanlyn doen, kan verander of breek of daarop kan inluister. As jy nie seker is hoekom hierdie verandering plaasgevind het nie, wil jy dit waarskynlik nie hê nie.</translation>
 <translation id="6197128521826316819">Skep QR-kode vir hierdie bladsy</translation>
+<translation id="6197223946499512637">Hierdie wagwoordsleutels word in Windows Hello op hierdie rekenaar geberg. Hulle word nie in jou Google-rekening gestoor nie.</translation>
 <translation id="6198252989419008588">Verander PIN</translation>
 <translation id="6200047250927636406">Gooi lêer weg</translation>
 <translation id="6200151268994853226">Bestuur uitbreiding</translation>
@@ -5711,6 +5724,7 @@
 <translation id="6482559668224714696">Volskermvergrootglas</translation>
 <translation id="6483485061007832714">Maak aflaai oop</translation>
 <translation id="6483805311199035658">Maak tans <ph name="FILE" /> oop …</translation>
+<translation id="6486301003991593638">Gebruik ’n nuwer weergawe van Windows om wagwoordsleutels te bestuur</translation>
 <translation id="6488384360522318064">Kies 'n taal</translation>
 <translation id="648927581764831596">Niks beskikbaar nie</translation>
 <translation id="6490471652906364588">USB C-toestel (poort aan regterkant)</translation>
@@ -6293,6 +6307,7 @@
 <translation id="7029307918966275733">Crostini is nie geïnstalleer nie. Installeer Crostini om krediete te bekyk.</translation>
 <translation id="7029809446516969842">Wagwoorde</translation>
 <translation id="7030304022046916278">Stuur URL'e na Veiligblaai toe om hulle na te gaan</translation>
+<translation id="7030695672997239647">Regsklik ’n oortjie en kies "Voeg oortjie by groep", en kies dan "Nuwe groep"</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> – Reekspoort is gekoppel</translation>
 <translation id="7033616203784997570">Invoer moet hoogstens 62 karakters wees</translation>
 <translation id="7034692021407794547">'n Administrateur met Faktureringbestuursvoorregte moet eers Google Vergader-hardeware se diensbepalings in die Google Vergader-hardewareafdeling van die Adminkonsole aanvaar.</translation>
@@ -7393,6 +7408,7 @@
 <translation id="8101987792947961127">Kragwas vereis vir volgende herselflaai</translation>
 <translation id="81020759409809034">Plaaslike ligging</translation>
 <translation id="8102139037507939978">Verwyder persoonlik identifiseerbare inligting uit system_logs.txt.</translation>
+<translation id="810362914482827094">Soek wagwoordsleutels</translation>
 <translation id="8104088837833760645">Laai e-SIM-profiel af</translation>
 <translation id="8105368624971345109">Skakel af</translation>
 <translation id="8107015733319732394">Installeer tans die Google Play Winkel op jou <ph name="DEVICE_TYPE" />. Dit kan 'n paar minute neem.</translation>
@@ -7839,6 +7855,7 @@
 <translation id="8557022314818157177">Hou aan om jou sekuriteitsleutel te raak totdat jou vingerafdruk vasgevang is</translation>
 <translation id="8557180006508471423">Skakel "Google Chrome" in Liggingdienste op jou Mac aan</translation>
 <translation id="8557856025359704738">Volgende aflaai is op <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Wagwoordsleutels</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Maak almal in &amp;nuwe venster oop}=1{Maak in &amp;nuwe venster oop}other{Maak almal ({COUNT}) in &amp;nuwe venster oop}}</translation>
 <translation id="8561206103590473338">Olifant</translation>
 <translation id="8561565784790166472">Gaan versigtig voort</translation>
@@ -7951,6 +7968,7 @@
 <translation id="8666759526542103597">Meer oor advertensiepersonalisering gegrond op blaai-aktiwteit</translation>
 <translation id="8667328578593601900"><ph name="FULLSCREEN_ORIGIN" /> is nou volskerm en het jou muismerker gedeaktiveer.</translation>
 <translation id="8667760277771450375">Ons verken tans maniere om oorkruiswerfnasporing te beperk terwyl ons werwe in staat stel om advertensie-strooipos en -bedrog te stop.</translation>
+<translation id="8668378421690365723">Jou toestel sal dalk nie meer reg werk nie en kan veiligheid- en werkverrigtingkwessies ervaar.</translation>
 <translation id="8669284339312441707">Warmer</translation>
 <translation id="8670537393737592796">Om vinnig hierheen terug te kom, kan jy die installeerknoppie klik om <ph name="APP_NAME" /> te installeer</translation>
 <translation id="867085395664725367">'n Tydelike bedienerfout het voorgekom.</translation>
@@ -7965,6 +7983,7 @@
 <translation id="8677212948402625567">Vou alles in …</translation>
 <translation id="867767487203716855">Volgende opdatering</translation>
 <translation id="8677859815076891398">Geen albums nie. Skep 'n album in <ph name="LINK_BEGIN" />Google Foto's<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Herbegin en kry outomatiese opdaterings</translation>
 <translation id="8678538439778360739">Data is op <ph name="TIME" /> met jou sinkroniseringwagfrase geënkripteer. Dit sluit nie betaalmetodes en adresse van Google Pay af in nie.</translation>
 <translation id="8678582529642151449">Oortjies krimp nie</translation>
 <translation id="8678933587484842200">Hoe wil jy hê moet hierdie program oopmaak?</translation>
@@ -8211,6 +8230,7 @@
 <translation id="8910987510378294980">Versteek toestellys</translation>
 <translation id="8912362522468806198">Google-rekening</translation>
 <translation id="8912810933860534797">Aktiveer outoskandering</translation>
+<translation id="8915307125957890427">Regsklik ’n oortjie en kies "Voeg oortjie by groep", en kies dan "Nuwe groep"</translation>
 <translation id="8915370057835397490">Laai tans voorstel</translation>
 <translation id="8916476537757519021">Incognitosubraam: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" /> se <ph name="DEVICE_TYPE" /></translation>
@@ -8284,6 +8304,7 @@
 <translation id="8986362086234534611">Vergeet</translation>
 <translation id="8986494364107987395">Stuur gebruikstatistiek en omvalverslae outomaties na Google</translation>
 <translation id="8987927404178983737">Maand</translation>
+<translation id="8989359959810288806">Herlaai verbindingstatus</translation>
 <translation id="8991520179165052608">Werf kan jou mikrofoon gebruik</translation>
 <translation id="899384117894244799">Verwyder gebruiker met beperkte gebruik</translation>
 <translation id="899403249577094719">Netscape-sertifikaatbasis se URL</translation>
@@ -8430,6 +8451,7 @@
 <translation id="9120693811286642342"><ph name="BEGIN_PARAGRAPH1" />Installeer <ph name="DEVICE_OS" /> op jou interne skyf vir die beste ervaring. Jy kan dit ook later van die aanmeldskerm af installeer.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />As jy nie gereed is om dit te installeer nie, kan jy dit van USB af laat loop om dit te probeer. Dit sal jou bestaande bedryfstelsel en data behou, maar jy sal dalk berging- en werkverrigtingbeperkings sien.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="9121814364785106365">Maak as 'n vasgespelde oortjie oop</translation>
+<translation id="9123287046453017203">Jou toestel is nie bygewerk nie</translation>
 <translation id="9124003689441359348">Gestoorde wagwoorde sal hier verskyn</translation>
 <translation id="9126149354162942022">Skermpyltjie se kleur</translation>
 <translation id="9128317794749765148">Kon nie opstelling voltooi nie</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index abd6218f..46e8412 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -903,6 +903,7 @@
 <translation id="1829129547161959350">ፔንግዊን</translation>
 <translation id="1829192082282182671">&amp;አሳንስ</translation>
 <translation id="1830550083491357902">አልተገባም</translation>
+<translation id="1831848493690504725">በተገናኘው አውታረ መረብ በኩል Googleን መድረስ አንችልም። ሌላ አውታረ መረብ ለመምረጥ ይሞክሩ ወይም የእርስዎን የአውታረ መረብ ቅንብሮች ወይም የተኪ ቅንብሮች (ተኪ እየተጠቀሙ ከሆነ) ይፈትሹ።</translation>
 <translation id="1832459821645506983">አዎ፣ ገብቼበታለሁ</translation>
 <translation id="1832511806131704864">የስልክ ለውጥ ዘምኗል</translation>
 <translation id="1832848789136765277">የስምረት ውሂብዎን ሁልጊዜ መድረስ መቻልዎን ለማረጋገጥ እርስዎ መሆንዎን ያረጋግጡ</translation>
@@ -2202,6 +2203,7 @@
 <translation id="3021065318976393105">ባትሪ ላይ ሳለ</translation>
 <translation id="3021066826692793094">ቢራቢሮ</translation>
 <translation id="3021678814754966447">የፍሬም መነሻ &amp;አሳይ</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> ከዚህ Chromebook ይወገዳል እና ወደ <ph name="PRIMARY_EMAIL" /> አይቀመጥም።</translation>
 <translation id="3022978424994383087">አልሰማሁትም።</translation>
 <translation id="3023464535986383522">ለመናገር-ይምረጡ</translation>
 <translation id="3024374909719388945">ባለ 24 ሰዓት ይጠቀሙ</translation>
@@ -3738,6 +3740,7 @@
 <translation id="4535127706710932914">ነባሪ መገለጫ</translation>
 <translation id="4535767533210902251">የጣት አሽራ ዳሳሹ በእርስዎ የቁልፍ ሰሌዳ ላይ ከላይ ያለው ቀኝ እጅ ቁልፉ ነው። በማናቸውም ጣት በስሱ ነካ ያድርጉት።</translation>
 <translation id="4536140153723794651">ሁልጊዜ ኩኪዎችን የሚጠቀሙ ጣቢያዎች</translation>
+<translation id="4536769240747010177">እንደ ሞደም መሰካት ችሎታዎች፦</translation>
 <translation id="4538417792467843292">ቃል ይሰርዙ</translation>
 <translation id="4538792345715658285">በድርጅት መመሪያ የተጫነ።</translation>
 <translation id="4541123282641193691">መለያዎን ማረጋገጥ አልተቻለም። እባክዎ እንደገና ይሞክሩ ወይም የእርስዎን Chromebook እንደገና ያስጀምሩት።</translation>
@@ -3765,6 +3768,7 @@
 <translation id="4561893854334016293">በቅርቡ የተቀየሩ ፈቃዶች የሉም</translation>
 <translation id="4562155214028662640">የጣት አሻራን አክል</translation>
 <translation id="4563210852471260509">የመጀመሪያው የግቤት ቋንቋ ቻይንኛ ነው</translation>
+<translation id="4563382028841851106">ከመለያ አስወግድ</translation>
 <translation id="4563880231729913339">ጣት 3</translation>
 <translation id="4564245002465020751">በስልክዎ ላይ ማዋቀርን ይጨርሱ</translation>
 <translation id="4565377596337484307">የይለፍ ቃል ደብቅ</translation>
@@ -4741,6 +4745,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> የሚከተሉትን ማድረግ ይፈልጋል፦</translation>
 <translation id="5534304873398226603">ፎቶን ወይም ቪዲዮን ጣል</translation>
 <translation id="5537725057119320332">Cast</translation>
+<translation id="5539070192556911367">Googleን መድረስ አልተቻለም</translation>
 <translation id="5539221284352502426">ያስገቡት ይለፍ ቃል አገልጋዩ አልተቀበለውም። ሊሆኑ የሚችሉ ምክንያቶች እነዚህን ያካትታሉ፦ የይለፍ ቃሉ በጣም አጭር ነው። የይለፍ ቃሉ ቁጥሮችን ወይም ምልክቶችን ማካተት አለበት። የይለፍ ቃሉ ከቀዳሚ ይለፍ ቃላት የተለየ መሆን አለበት።</translation>
 <translation id="5541694225089836610">እርምጃ በእርስዎ አስተዳዳሪ ተሰናክሏል</translation>
 <translation id="5542132724887566711">መገለጫ</translation>
@@ -4804,6 +4809,7 @@
 <translation id="5585912436068747822">ቅርጸት መስራት አልተሳካም</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">መተግበሪያዎችን በመጫን ላይ...</translation>
+<translation id="5590418976913374224">በመሣሪያ ጅምር ላይ ድምጽ አጫውት</translation>
 <translation id="5592595402373377407">ገና ምንም በቂ ውሂብ የለም።</translation>
 <translation id="5595307023264033512">በጣቢያዎች ስራ ላይ የዋለው ጠቅላላ ማከማቻ፦<ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">አድራሻ አርትዕ</translation>
@@ -4813,7 +4819,6 @@
 <translation id="5601503069213153581">ፒን</translation>
 <translation id="5601823921345337195">ከMIDI መሣሪያዎች ጋር እንዲገናኝ አልተፈቀደም</translation>
 <translation id="5602765853043467355">ዕልባቶችን፣ ታሪክ፣ የይለፍ ቃላት እና ተጨማሪ ነገሮችን ከዚህ መሣሪያ ላይ አጽዳ</translation>
-<translation id="5605623530403479164">ሌላ የፍለጋ ፕሮግራሞች</translation>
 <translation id="5605758115928394442">እርስዎ መሆንዎን ለማረጋገጥ አንድ ማሳወቂያ ወደ ስልክዎ ተልኳል።</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ይህ ቅጥያ ታግዷል}one{እነዚህ ቅጥያዎች ታግደዋል}other{እነዚህ ቅጥያዎች ታግደዋል}}</translation>
 <translation id="560834977503641186">የWi-Fi ስምረት፣ የበለጠ ለመረዳት</translation>
@@ -5112,6 +5117,7 @@
 <translation id="5909379458939060601">ይህ መገለጫ እና የአሰሳ ውሂብ ይሰረዝ?</translation>
 <translation id="5910363049092958439">ምስል አስ&amp;ቀምጥ እንደ…</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ከመስመር ውጭ ነው</translation>
+<translation id="5911030830365207728">Google ትርጉም</translation>
 <translation id="5911533659001334206">የአቋራጭ ተመልካች</translation>
 <translation id="5914724413750400082">ሞዱለስ (<ph name="MODULUS_NUM_BITS" /> ቢት)፦
   <ph name="MODULUS_HEX_DUMP" />
@@ -6183,6 +6189,10 @@
 <translation id="6943939122536910181">ከ<ph name="DEVICE" /> ጋር ያለው ግንኙነት ተቋርጧል</translation>
 <translation id="6945221475159498467">ይምረጡ</translation>
 <translation id="694592694773692225">በዚህ ገጽ ላይ አቅጣጫ ማዞር ታግዷል።</translation>
+<translation id="6947015141909171112">በቅርብ ጊዜ የምግብ አሰራሮች ፍለጋ እንቅስቃሴዎ ላይ የተመሰረቱ የምግብ አሰራሮችን እየተመለከቱ ነው።
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        ቅንብሮችን ከካርድ ምናሌው ማቀናበር ወይም በChromeን አብጅ ውስጥ ተጨማሪ አማራጮችን ማየት ይችላሉ።</translation>
 <translation id="6949434160682548041">የይለፍ ቃል (አማራጭ)</translation>
 <translation id="6950627417367801484">መተግበሪያዎች</translation>
 <translation id="6952242901357037157">እንዲሁም ከእርስዎ <ph name="BEGIN_LINK" />Google መለያ<ph name="END_LINK" /> የይለፍ ቃሎችን እዚህም ማሳየት ይችላሉ</translation>
@@ -6350,6 +6360,7 @@
 <translation id="7102687220333134671">ራስ-ሰር ዝማኔዎች በርተዋል</translation>
 <translation id="7102832101143475489">ጥያቄው ጊዜውን ጨርሷል</translation>
 <translation id="710640343305609397">የአውታረ መረብ ቅንብሮችን ይክፈቱ</translation>
+<translation id="7107609441453408294">ተመሳሳዩን ኦዲዮ በሁሉም ድምፅ ማውጫዎች በኩል አጫውት</translation>
 <translation id="7108338896283013870">ደብቅ</translation>
 <translation id="7108668606237948702">ያስገቡ</translation>
 <translation id="7108933416628942903">አሁን ቆልፍ</translation>
@@ -6580,6 +6591,7 @@
 <translation id="7364745943115323529">Cast...</translation>
 <translation id="7364796246159120393">ፋይል ምረጥ</translation>
 <translation id="7365076891350562061">የማሳያ መጠን</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> - ተሰክቷል</translation>
 <translation id="7366316827772164604">በአቅራቢያ ያሉ መሣሪያዎችን በመቃኘት ላይ...</translation>
 <translation id="7366415735885268578">አንድ ጣቢያ ያክሉ</translation>
 <translation id="7366909168761621528">የአሰሳ ውሂብ</translation>
@@ -6976,6 +6988,7 @@
 <translation id="7737115349420013392">ከ«<ph name="DEVICE_NAME" />» ጋር በማጣመር ላይ ...</translation>
 <translation id="7737846262459425222">ይህን በማንኛውም ጊዜ በቅንብሮች &gt; Google ረዳት &gt; የማያ ገጽ አውድ ውስጥ መለወጥ ይችላሉ።</translation>
 <translation id="7737948071472253612">ካሜራዎን ለመጠቀም አልተፈቀደም</translation>
+<translation id="77381465218432215">የአነጋገር ምልክቶች እና ልዩ ቁምፊዎችን አሳይ</translation>
 <translation id="7740996059027112821">መደበኛ</translation>
 <translation id="7741307896921365578">የእርስዎን የንባብ ዝርዝር እና ዕልባቶች ጠቃሚ እና ቀጣይነት ባለው መንገድ ለመድረስ የአሳሽ ደረጃ የጎን ፓነልን ያነቃል።</translation>
 <translation id="7742558784808143689">ለ<ph name="SITE_NAME" />፣ በእሱ ስር ላሉት ሁሉም ጣቢያዎች እና ለተጫኑ መተግበሪያዎች የጣቢያ ውሂብ እና ፈቃዶች ይጽዱ?</translation>
@@ -7771,6 +7784,7 @@
 <translation id="8486666913807228950">ምክንያት፦ የተገለበጠው ደንብ <ph name="REVERT_RULE" /> «በሃይል መክፈት» ዝርዝር ውስጥ ተገኝቷል።</translation>
 <translation id="848666842773560761">አንድ መተግበሪያ ካሜራን ለመድረስ እየሞከረ ነው። መዳረሻ ለመፍቀድ የካሜራ ግላዊነት ማብሪያ/ማጥፊያውን ያጥፉት።</translation>
 <translation id="8487678622945914333">አጉላ</translation>
+<translation id="8487699605742506766">መገናኛ ነጥብ</translation>
 <translation id="8489156414266187072">የግል የአስተያየት ጥቆማዎች በእርስዎ መለያ ላይ ብቻ ይታያሉ</translation>
 <translation id="8490896350101740396">የሚከተሉት የkiosk መተግበሪያዎች «<ph name="UPDATED_APPS" />» ዘምነዋል። የዝመና ሂደቱን ለማጠናቀቅ እባክዎ መሣሪያውን እንደገና ያስነሱ።</translation>
 <translation id="8492685019009920170">የጣት አሻራ ዳሳሹን በእርስዎ ጣት ይንኩት። የእርስዎ ውሂብ ደህንነቱ በተጠበቀ ሁኔታ ይከማቻል እና በጭራሽ ከእርስዎ <ph name="DEVICE_TYPE" /> አይወጣም።</translation>
@@ -8265,6 +8279,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{«<ph name="TAB_TITLE" />»}=1{«<ph name="TAB_TITLE" />» እና 1 ሌላ ትር}one{«<ph name="TAB_TITLE" />» እና # ሌሎች ትሮች}other{«<ph name="TAB_TITLE" />» እና # ሌሎች ትሮች}}</translation>
 <translation id="8977811652087512276">ትክክል ያልሆነ የይለፍ ቃል ወይም የተበላሸ ፋይል</translation>
 <translation id="8978154919215542464">በርቷል - ሁሉንም ነገር አስምር</translation>
+<translation id="8978670037548431647">እንደ ሞደም መሰካት ችሎታዎችን ዓድስ</translation>
 <translation id="897939795688207351">በ<ph name="ORIGIN" /> ላይ</translation>
 <translation id="8980345560318123814">የግብረመልስ ሪፖርቶች</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - ተበላሽቷል</translation>
@@ -8529,6 +8544,7 @@
 <translation id="935854577147268200">Smart Lock ስልክ ተቀይሯል። Smart Lockን ለማዘመን የይለፍ ቃልዎን ያስገቡ። በሚቀጥለው ጊዜ ስልክዎ የእርስዎን <ph name="DEVICE_TYPE" /> ይከፍታል። በቅንብሮች ውስጥ Smart Lock ማጥፋት ይችላሉ</translation>
 <translation id="936646668635477464">ካሜራ እና ማይክራፎን</translation>
 <translation id="936801553271523408">የስርዓት ምርመራ ውሂብ</translation>
+<translation id="937053962468712792">ከ<ph name="PRIMARY_EMAIL" /> <ph name="DEVICE" /> ይወገድ?</translation>
 <translation id="93766956588638423">ቅጥያ ይጠግኑ</translation>
 <translation id="938568644810664664">«Hey Google, what song is this?» ወይም «Hey Google, what's on my screen?» ለማለት ይሞክሩ</translation>
 <translation id="938623846785894166">ያልተለምደ ፋይል</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index 0800df4d..302883b 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -2198,6 +2198,7 @@
 <translation id="3021065318976393105">أثناء التشغيل على البطارية</translation>
 <translation id="3021066826692793094">فراشة</translation>
 <translation id="3021678814754966447">عرض م&amp;صدر الإطار</translation>
+<translation id="3022361196600037287">‏ستتم إزالة <ph name="DEVICE" /> من جهاز Chromebook هذا ولن يتم حفظه في حساب <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">لم يتم استيعاب هذا.</translation>
 <translation id="3023464535986383522">الاستماع والاختيار</translation>
 <translation id="3024374909719388945">استخدام تنسيق 24 ساعة</translation>
@@ -3735,6 +3736,7 @@
 <translation id="4535127706710932914">الملف الشخصي التلقائي</translation>
 <translation id="4535767533210902251">يتوفَّر مستشعر بصمات الإصبع في الزر في أعلى يمين لوحة المفاتيح. يمكنك لمسه برفقٍ بأي إصبع.</translation>
 <translation id="4536140153723794651">المواقع الإلكترونية التي يمكنها استخدام ملفات تعريف الارتباط دائمًا</translation>
+<translation id="4536769240747010177">إمكانيات التوصيل:</translation>
 <translation id="4538417792467843292">حذف كلمة</translation>
 <translation id="4538792345715658285">تمّ التثبيت بموجب سياسة المؤسسة.</translation>
 <translation id="4541123282641193691">‏تعذّر التحقق من حسابك. يُرجى المحاولة مرة أخرى أو إعادة تشغيل Chromebook.</translation>
@@ -3762,6 +3764,7 @@
 <translation id="4561893854334016293">لم يتم تغيير أذونات مؤخرًا.</translation>
 <translation id="4562155214028662640">إضافة بصمة إصبع</translation>
 <translation id="4563210852471260509">لغة الإدخال الأولية هي الصينية</translation>
+<translation id="4563382028841851106">الإزالة من الحساب</translation>
 <translation id="4563880231729913339">إصبع 3</translation>
 <translation id="4564245002465020751">إنهاء عملية الإعداد على هاتفك</translation>
 <translation id="4565377596337484307">إخفاء كلمة المرور</translation>
@@ -4665,6 +4668,7 @@
 <translation id="5470735824776589490">‏يلزم إعادة تشغيل الجهاز حتى يتسنى لك إعادة ضبطه باستخدام Powerwash. <ph name="LINK_BEGIN" />مزيد من المعلومات<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">مرحبًا! هذا صوت ميزة تحويل النص إلى كلام.</translation>
 <translation id="5472627187093107397">حفظ كلمات المرور لهذا الموقع الإلكتروني</translation>
+<translation id="5473062644742711742">‏العثور على المزيد من أدوات تسهيل الاستخدام في "سوق Chrome الإلكتروني"</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">‏تعني المتابعة أنّك تسمح لهذا الجهاز أيضًا بأن ينزِّل التحديثات والتطبيقات ويثبتها تلقائيًا من Google ومشغِّل شبكة جوّال طفلك والشركة المصنِّعة لهذا الجهاز مع احتمالية استخدام بيانات شبكة الجوّال. قد تتيح بعض هذه التطبيقات عمليات شراء داخل التطبيق.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{يجب ألا يقلّ رقم التعريف الشخصي عن حرف واحد.}zero{يجب ألا يقلّ رقم التعريف الشخصي عن # حرف.}two{يجب ألا يقلّ رقم التعريف الشخصي عن حرفَين.}few{يجب ألا يقلّ رقم التعريف الشخصي عن # أحرف.}many{يجب ألا يقلّ رقم التعريف الشخصي عن # حرفًا.}other{يجب ألا يقلّ رقم التعريف الشخصي عن # حرف.}}</translation>
@@ -4812,7 +4816,6 @@
 <translation id="5601503069213153581">رقم التعريف الشخصي</translation>
 <translation id="5601823921345337195">‏المواقع الإلكترونية التي لا يُسمح لها بالاتصال بأجهزة MIDI</translation>
 <translation id="5602765853043467355">محو الإشارات المرجعية والسجلّ وكلمات المرور وغيرها من البيانات على هذا الجهاز</translation>
-<translation id="5605623530403479164">محرّكات البحث الأخرى</translation>
 <translation id="5605758115928394442">تم إرسال إشعار إلى هاتفك لتأكيد هويتك.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{تم حظر هذه الإضافة}zero{تم حظر هذه الإضافات}two{تم حظر هاتين الإضافتين}few{تم حظر هذه الإضافات}many{تم حظر هذه الإضافات}other{تم حظر هذه الإضافات}}</translation>
 <translation id="560834977503641186">مزيد من المعلومات عن ميزة "مزامنة الواي فاي"</translation>
@@ -5111,6 +5114,7 @@
 <translation id="5909379458939060601">هل تريد حذف هذا الملف الشخصي وبيانات التصفّح؟</translation>
 <translation id="5910363049092958439">حفظ ال&amp;صورة باسم...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> غير متصل</translation>
+<translation id="5911030830365207728">‏الترجمة من Google</translation>
 <translation id="5911533659001334206">عارض الاختصارات</translation>
 <translation id="5914724413750400082">المعامل (<ph name="MODULUS_NUM_BITS" /> بت):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6188,6 +6192,10 @@
 <translation id="6943939122536910181">تم قطع الاتصال بجهاز <ph name="DEVICE" />.</translation>
 <translation id="6945221475159498467">تحديد</translation>
 <translation id="694592694773692225">تم حظر إعادة التوجيه في هذه الصفحة.</translation>
+<translation id="6947015141909171112">‏تظهر لك وصفات طعام استنادًا إلى آخر عمليات بحث أجريتها عن وصفات الطعام على محرك بحث Google.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        يمكنك إدارة الإعدادات من قائمة البطاقات أو الاطّلاع على المزيد من الخيارات في قسم "تخصيص Chrome".</translation>
 <translation id="6949434160682548041">كلمة المرور (اختياريّة)</translation>
 <translation id="6950627417367801484">استعادة التطبيقات</translation>
 <translation id="6952242901357037157">‏يمكنك أيضًا عرض كلمات المرور من <ph name="BEGIN_LINK" />حسابك على Google<ph name="END_LINK" /> هنا.</translation>
@@ -6984,6 +6992,7 @@
 <translation id="7737115349420013392">جارٍ الإقران مع "<ph name="DEVICE_NAME" />" ...</translation>
 <translation id="7737846262459425222">‏يمكنك تغيير هذا الإعداد متى شئت من خلال الانتقال إلى الإعدادات &gt; مساعد Google &gt; سياق الشاشة.</translation>
 <translation id="7737948071472253612">المواقع الإلكترونية التي لا يُسمح لها باستخدام الكاميرا</translation>
+<translation id="77381465218432215">عرض علامات التشكيل والرموز الخاصة</translation>
 <translation id="7740996059027112821">عادي</translation>
 <translation id="7741307896921365578">يتم تفعيل لوحة جانبية على مستوى المتصفِّح للحصول على طريقة مفيدة ودائمة للوصول إلى "قائمة القراءة" و"الإشارات المرجعية".</translation>
 <translation id="7742558784808143689">هل تريد محو البيانات والأذونات الخاصة بالموقع الإلكتروني <ph name="SITE_NAME" />، وأي مواقع إلكترونية ضمن النطاق، والتطبيقات المثبَّتة؟</translation>
@@ -7775,6 +7784,7 @@
 <translation id="8486666913807228950">السبب: تم العثور على القاعدة المعكوسة <ph name="REVERT_RULE" /> في القائمة "فرض الفتح في".</translation>
 <translation id="848666842773560761">هناك تطبيق يحاول الوصول إلى الكاميرا. عليك إيقاف مفتاح خصوصية الكاميرا للسماح بوصول هذا التطبيق إليها.</translation>
 <translation id="8487678622945914333">تكبير</translation>
+<translation id="8487699605742506766">نقطة الاتصال</translation>
 <translation id="8489156414266187072">لا يتم عرض الاقتراحات الشخصية إلّا على حسابك.</translation>
 <translation id="8490896350101740396">‏تم تحديث تطبيقات kiosk التالية "<ph name="UPDATED_APPS" />". يُرجى إعادة تشغيل الجهاز لإكمال عملية الإعادة تحميل.</translation>
 <translation id="8492685019009920170">يُرجى لمس مستشعر بصمات الإصبع بإصبعك. يتم تخزين بيانات بصمة الإصبع بشكل آمن وستبقى محفوظة على جهاز <ph name="DEVICE_TYPE" /> الخاص بك.</translation>
@@ -8272,6 +8282,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" وعلامة تبويب واحدة أخرى}two{"<ph name="TAB_TITLE" />" وعلامتا تبويب أخريان}few{"<ph name="TAB_TITLE" />" و# علامات تبويب أخرى}many{"<ph name="TAB_TITLE" />" و# علامة تبويب أخرى}other{"<ph name="TAB_TITLE" />" و# علامة تبويب أخرى}}</translation>
 <translation id="8977811652087512276">كلمة مرور غير صالحة أو ملف تالف</translation>
 <translation id="8978154919215542464">تشغيل - مزامنة كل شيء</translation>
+<translation id="8978670037548431647">إعادة تحميل إمكانيات التوصيل</translation>
 <translation id="897939795688207351">على <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">تقارير التعليقات</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - تعطُّل</translation>
@@ -8536,6 +8547,7 @@
 <translation id="935854577147268200">‏تم تعديل إعدادات Smart Lock على هاتفك. يمكنك إدخال كلمة مرورك لتحديث هذه الإعدادات. وفي المرة القادمة، سيفتح هاتفك قفل جهاز <ph name="DEVICE_TYPE" />. ويمكنك إيقاف Smart Lock في "الإعدادات".</translation>
 <translation id="936646668635477464">الكاميرا والميكروفون</translation>
 <translation id="936801553271523408">بيانات تشخيص النظام</translation>
+<translation id="937053962468712792">هل تريد إزالة <ph name="DEVICE" /> من حساب <ph name="PRIMARY_EMAIL" />؟</translation>
 <translation id="93766956588638423">إصلاح الإضافة</translation>
 <translation id="938568644810664664">‏جرِّب قول "Ok Google، ما هذه الأغنية؟" أو "Ok Google، ما الذي تعرضه شاشتي؟"</translation>
 <translation id="938623846785894166">هذا الملف غير شائع.</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index 4bb8be66..891edc2 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">আপোনাৰ মাইক্ৰ’ফ’ন আৰু কেমেৰা ব্যৱহাৰ কৰক</translation>
 <translation id="1005333234656240382">ADB ডিবাগিং সক্ষম কৰিবনে?</translation>
 <translation id="1006873397406093306">এই এক্সটেনশ্বনটোৱে ছাইটসমূহত আপোনাৰ ডেটা পঢ়িব আৰু সলনি কৰিব পাৰে। এক্সটেনশ্বনটোৱে কোনবোৰ ছাইটত এক্সেছ লাভ কৰিব সেয়া আপুনি নিয়ন্ত্ৰণ কৰিব পাৰে।</translation>
+<translation id="1007057452468855774">Google Play Store অন কৰক</translation>
 <translation id="1008186147501209563">বুকমাৰ্ক ৰপ্তানি কৰক</translation>
 <translation id="1008557486741366299">এতিয়া নহয়</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" />ৰ অৱস্থান</translation>
 <translation id="1009663062402466586">গে’মৰ নিয়ন্ত্ৰণসমূহ এতিয়া উপলব্ধ</translation>
 <translation id="1010498023906173788">এই টেবটো এটা ছিৰিয়েল প’ৰ্টৰ সৈতে সংযোগ কৰা হৈছে।</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{পৃষ্ঠাটোৱে সঁহাৰি জনোৱা নাই}one{পৃষ্ঠাসমূহে সঁহাৰি জনোৱা নাই}other{পৃষ্ঠাসমূহে সঁহাৰি জনোৱা নাই}}</translation>
+<translation id="1011003645819296594">ছেভ কৰা ডিভাইচ</translation>
 <translation id="1011355516189274711">পাঠৰ পৰা কথনৰ ভলিউম</translation>
 <translation id="1012794136286421601">আপোনাৰ Docs, Sheets, Slides আৰু Drawings ফাইলসমূহ ছিংক কৰি থকা হৈছে। সেইবোৰলৈ অনলাইন বা অফলাইন অৱস্থাত এক্সেছ পাবলৈ Google Drive এপ্‌টো খোলক।</translation>
 <translation id="1012876632442809908">USB-C ডিভাইচ (সন্মুখৰ প’র্ট)</translation>
@@ -495,6 +497,7 @@
 <translation id="1470350905258700113">এই ডিভাইচটো ব্যৱহাৰ কৰক</translation>
 <translation id="1470946456740188591">কেৰেট ব্ৰাউজিং অন অথবা অফ কৰিবলৈ শ্বৰ্টকাট Ctrl+Search+7 ব্যৱহাৰ কৰক</translation>
 <translation id="1472675084647422956">অধিক দেখুৱাওক</translation>
+<translation id="1473223074251193484">টেডাৰিঙৰ কনফিগাৰেশ্বন ছেট কৰক</translation>
 <translation id="1474785664565228650">মাইক্ৰ’ফ’নৰ ছেটিঙত কৰা সালসলনিৰ বাবে Parallels Desktop পুনৰ লঞ্চ কৰাৰ আৱশ্যক। আগবাঢ়িবলৈ Parallels Desktop পুনৰ লঞ্চ কৰক।</translation>
 <translation id="1474893630593443211">আপুনি দেখা বিজ্ঞাপনবোৰৰ ওপৰত অধিক নিয়ন্ত্ৰণ</translation>
 <translation id="1475502736924165259">আপোনাৰ ফাইলত অন্য শিতানত অন্তর্ভুক্ত নোহোৱা প্ৰমাণপত্ৰ আছে</translation>
@@ -1123,6 +1126,7 @@
 <translation id="2044014337866019681">ছেশ্বনটো আনলক কৰিবলৈ অনুগ্ৰহ কৰি আপুনি <ph name="ACCOUNT" /> সত্যাপন কৰি থকাটো নিশ্চিত কৰক।</translation>
 <translation id="204497730941176055">Microsoft Certificate Template Name</translation>
 <translation id="2045117674524495717">কীব’ৰ্ডৰ শ্বৰ্টকাটৰ সহায়ক</translation>
+<translation id="2045211794962848221">আপুনি এই নিৰ্দিষ্ট বাৰ্তাটো পুনৰ দেখা নাপায়</translation>
 <translation id="2045969484888636535">কুকি অৱৰোধ কৰি থাকক</translation>
 <translation id="204622017488417136">আপোনাৰ ডিভাইচটো পূর্বে ইনষ্টল কৰা Chromeৰ সংস্কৰণলৈ উভতাই অনা হ’ব। সকলো ব্যৱহাৰকাৰী একাউণ্ট আৰু স্থানীয় ডেটা আঁতৰোৱা হ’ব। এই কাৰ্যটো আনডু কৰিব নোৱাৰি।</translation>
 <translation id="2046702855113914483">ৰামেন</translation>
@@ -3811,6 +3815,7 @@
 <translation id="4594577641390224176">ছিষ্টেমৰ বিষয়ে পৃষ্ঠাখন বিচাৰিছে নেকি? ইয়ালৈ যাওক</translation>
 <translation id="4595560905247879544">এপ্ আৰু এক্সটেনশ্বন কেৱল পৰিচালক (<ph name="CUSTODIAN_NAME" />)য়েহে সংশোধন কৰিব পাৰে৷</translation>
 <translation id="4596295440756783523">এই ছার্ভাৰসমূহ চিনাক্ত কৰা প্ৰমাণপত্ৰ আপোনাৰ ফাইলত আছে</translation>
+<translation id="4598345735110653698">পাছকী পৰিচালনা কৰক</translation>
 <translation id="4598556348158889687">ষ্ট’ৰেজ মেনেজমেণ্ট</translation>
 <translation id="4598776695426288251">একাধিক ডিভাইচৰ জৰিয়তে ৱাই-ফাই উপলব্ধ</translation>
 <translation id="4601426376352205922">নপঢ়া হিচাপে চিহ্নিত কৰক</translation>
@@ -4036,6 +4041,7 @@
 <translation id="4823894915586516138">এইটো <ph name="DEVICE_TYPE" />ত এই পিন অথবা পাছৱর্ডটোৱে আপুনি নিজৰ ফ'নত এক্সেছ কৰা যিকোনো তথ্যকে ধৰি আপোনাৰ ডেটা সুৰক্ষিত কৰে</translation>
 <translation id="4824037980212326045">Linuxৰ বেকআপ আৰু পুনঃস্থাপন</translation>
 <translation id="4824958205181053313">ছিংক বাতিল কৰিবনে?</translation>
+<translation id="4825532258163983651">পাছকী মচিব নোৱাৰি</translation>
 <translation id="4827675678516992122">সংযোগ কৰিব পৰা নগ’ল</translation>
 <translation id="4827784381479890589">Chrome ব্ৰাউজাৰত বৰ্ধিত বানান পৰীক্ষা (বানানৰ পৰামৰ্শসমূহৰ বাবে পাঠ Googleলৈ পঠিওৱা হয়)</translation>
 <translation id="4827904420700932487">এই প্ৰতিচ্ছবিখনৰ বাবে কিউআৰ ক’ড সৃষ্টি কৰক</translation>
@@ -4298,6 +4304,7 @@
 <translation id="5087249366037322692">কোনো তৃতীয় পক্ষই যোগ কৰিছে</translation>
 <translation id="5087580092889165836">কাৰ্ড যোগ কৰক</translation>
 <translation id="5088534251099454936">RSA এনক্ৰিপশ্বনৰ সৈতে PKCS #1 SHA-512</translation>
+<translation id="5089763948477033443">ছাইডৰ পেনেলৰ আকাৰ সলনি কৰা হেণ্ডেল</translation>
 <translation id="5090637338841444533">আপোনাৰ কেমেৰাৰ স্থান ট্ৰেক কৰাৰ অনুমতি নাই</translation>
 <translation id="5093569275467863761">বেক-ফৰৱাৰ্ড কেশ্বত থকা ইনক’গনিট’ ছাবফ্ৰে’ম: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">আপুনি Files এপৰ পৰা অথবা অন্য এপৰ জৰিয়তে সমৰ্থিত ফাইল এই এপ্‌টোত খুলিব আৰু সম্পাদনা কৰিব পাৰে। ডিফ’ল্ট হিচাপে কোনবোৰ ফাইলে এই এপ্‌টো খুলিব সেয়া নিয়ন্ত্ৰণ কৰিবলৈ <ph name="BEGIN_LINK" />আপোনাৰ ডিভাইচত ডিফ’ল্ট এপ্‌ কেনেকৈ ছেট কৰিব লাগে জানক<ph name="END_LINK" />।</translation>
@@ -4463,6 +4470,7 @@
 <translation id="5258992782919386492">এই ডিভাইচটোত ইনষ্টল কৰক</translation>
 <translation id="5260334392110301220">স্মাৰ্ট ঊৰ্ধ্বকমাসমূহ</translation>
 <translation id="5260508466980570042">দুঃখিত, আপোনাৰ ইমেইল বা পাছৱর্ড সত্যাপন কৰিব পৰা নগ'ল। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক।</translation>
+<translation id="5260958083445173099">ৱেবছাইটসমূহে যেতিয়া সম্ভৱ হয় তেতিয়া আপুনি অগ্ৰাধিকাৰ দিয়া ভাষাসমূহত সমল দেখুৱাব</translation>
 <translation id="5261683757250193089">Web Storeত খোলক</translation>
 <translation id="5262178194499261222">পাছৱৰ্ড আঁতৰাওক</translation>
 <translation id="5262784498883614021">স্বয়ংক্ৰিয়ভাৱে নেটৱৰ্কৰ সৈতে সংযোগ কৰক</translation>
@@ -4503,6 +4511,7 @@
 <translation id="5294097441441645251">এটা সৰুফলাৰ বৰ্ণ অথবা আণ্ডাৰস্ক’ৰেৰে আৰম্ভ হ’বই লাগিব</translation>
 <translation id="5294618183559481278">আপোনাৰ ডিভাইচৰ সন্মুখত মানুহ চিনাক্ত কৰিবলৈ আপোনাৰ <ph name="DEVICE_TYPE" />এ বিল্ট-ইন ছেন্সৰ ব্যৱহাৰ কৰে। আপোনাৰ ডিভাইচত আটাইবোৰ ডেটা তৎক্ষণাৎ প্ৰক্ৰিয়াকৰণ কৰা হয় আৰু তাৰ পাছত মচা হয়। ছেন্সৰৰ ডেটা কেতিয়াও Googleলৈ পঠিওৱা নহয়। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">কথিত সঁহাৰি শুনক যাতে আপুনি স্ক্ৰীনখনলৈ নোচোৱাকৈ আপোনাৰ ডিভাইচটো ব্যৱহাৰ কৰিব পাৰে। কোনো সংযুক্ত ডিভাইচৰ সৈতে ব্ৰেইলৰ জৰিয়তে প্ৰদান কৰা মতামত উপলব্ধ।</translation>
+<translation id="5297005732522718715">টেডাৰিং কনফিগাৰেশ্বন ৰিফ্ৰেশ্ব কৰক</translation>
 <translation id="5297082477358294722">পাছৱৰ্ড ছেভ কৰা হ'ল। আপোনাৰ <ph name="SAVED_PASSWORDS_STORE" />ত ছেভ হৈ থকা পাছৱৰ্ড চাওক আৰু পৰিচালনা কৰক।</translation>
 <translation id="5297946558563358707">অন্য কোনোবাই আপোনাৰ স্ক্ৰীনখন চালে, আপোনাৰ স্ক্ৰীনখনৰ একেবাৰে তলৰ সোঁফালে গোপনীয়তাৰ চকুৰ চিহ্নটো দেখুৱাওক</translation>
 <translation id="5298219193514155779">থীম সৃষ্টি কৰোঁতা</translation>
@@ -4673,6 +4682,7 @@
 <translation id="5466374726908360271">পে&amp;ষ্ট কৰি “<ph name="SEARCH_TERMS" />”ৰ সন্ধান কৰক</translation>
 <translation id="5467207440419968613"><ph name="PERMISSION_1" />, <ph name="PERMISSION_2" />ক অৱৰোধ কৰা আছে</translation>
 <translation id="5468173180030470402">ফাইলৰ শ্বেয়াৰসমূহ বিচাৰি থকা হৈছে</translation>
+<translation id="5468330507528805311">টেডাৰিঙৰ স্থিতি:</translation>
 <translation id="5468881191994555667">ফাইল বাছনি কৰক</translation>
 <translation id="5469852975082458401">আপুনি পাঠৰ এটা কাৰ্ছৰৰ জৰিয়তে পৃষ্ঠাসমূহ নেভিগে’ট কৰিব পাৰে। অফ কৰিবলৈ F7 টিপক।</translation>
 <translation id="5470735824776589490">পাৱাৰৱাশ্বৰ জৰিয়তে আপোনাৰ ডিভাইচটো ৰিছেট কৰিব পৰাৰ পূর্বে এবাৰ ৰিষ্টার্ট কৰাৰ আৱশ্যক। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation>
@@ -4825,7 +4835,6 @@
 <translation id="5601503069213153581">পিন</translation>
 <translation id="5601823921345337195">MIDI ডিভাইচৰ সৈতে সংযোগ কৰাৰ অনুমতি নাই</translation>
 <translation id="5602765853043467355">এই ডিভাইচৰ পৰা বুকমার্ক, ইতিহাস, পাছৱর্ড আৰু অধিক তথ্য মচক</translation>
-<translation id="5605623530403479164">অন্যান্য সন্ধান ইঞ্জিন</translation>
 <translation id="5605758115928394442">এইগৰাকী আপুনিয়েই হয় বুলি নিশ্চিত কৰিবলৈ আপোনাৰ ফ'নলৈ এটা জাননী পঠিওৱা হৈছে।</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{এই এক্সটেনশ্বনটো অৱৰোধ কৰা হৈছে}one{এই এক্সটেনশ্বনসমূহ অৱৰোধ কৰা হৈছে}other{এই এক্সটেনশ্বনসমূহ অৱৰোধ কৰা হৈছে}}</translation>
 <translation id="560834977503641186">ৱাই-ফাই ছিংক, অধিক জানক</translation>
@@ -4949,6 +4958,7 @@
 <translation id="5734362860645681824">যোগাযোগ</translation>
 <translation id="5734697361979786483">ফাইল শ্বেয়াৰ কৰা সুবিধাটো যোগ কৰক</translation>
 <translation id="5736796278325406685">অনুগ্ৰহ কৰি এটা মান্য ব্যৱহাৰকাৰীৰ নাম দিয়ক</translation>
+<translation id="5738093759615225354">আপোনাৰ কম্পিউটাৰত ছাইন ইন কৰিবলৈ আপোনাক এই পাছকীটোৰ আৱশ্যক</translation>
 <translation id="5739017626473506901">বিদ্যালয়ৰ এটা একাউণ্ট যোগ দিয়াত <ph name="USER_NAME" />ক সহায় কৰিবলৈ ছাইন ইন কৰক</translation>
 <translation id="5739235828260127894">সত্যাপনৰ বাবে অপেক্ষা কৰি আছে। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">যথেষ্ট ডাঙৰ</translation>
@@ -5110,6 +5120,7 @@
 <translation id="589541317545606110"><ph name="VISUAL_SEARCH_PROVIDER" />জৰিয়তে পৃষ্ঠাখন সন্ধান কৰক</translation>
 <translation id="5896436821193322561">অনুমতি নিদিব</translation>
 <translation id="5900186025777217044">স্মাৰ্ট লক সলনি হৈছে</translation>
+<translation id="5900243355162006650">টেডাৰিঙৰ কনফিগাৰেশ্বন:</translation>
 <translation id="5900302528761731119">Google প্ৰ’ফাইলৰ চিত্ৰ</translation>
 <translation id="590036993063074298">গুণগত মানৰ সবিশেষ প্ৰতিবিম্বকৰণ</translation>
 <translation id="5901069264981746702">আপোনাৰ ফিংগাৰপ্ৰিণ্টৰ ডেটা সুৰক্ষিতভাৱে ষ্ট’ৰ কৰা হয় আৰু সেইখিনি সদায় আপোনাৰ <ph name="DEVICE_TYPE" />ত থাকে। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation>
@@ -5124,6 +5135,7 @@
 <translation id="5909379458939060601">এই প্ৰ’ফাইলটো আৰু ব্ৰাউজিঙৰ ডেটা মচিবনে?</translation>
 <translation id="5910363049092958439">এইবুলি প্ৰতিচ্ছবি ছে&amp;ভ কৰক...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> অফলাইন হৈ আছে</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">শ্বৰ্টকাটৰ ভিউৱাৰ</translation>
 <translation id="5914724413750400082">মডিউল (<ph name="MODULUS_NUM_BITS" /> বিট):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5413,6 +5425,7 @@
 <translation id="6196640612572343990">তৃতীয়-পক্ষৰ কুকিসমূহ অৱৰোধ কৰক</translation>
 <translation id="6196854373336333322">"<ph name="EXTENSION_NAME" />" এক্সটেনশ্বনটোৱে আপোনাৰ প্ৰক্সিৰ ছেটিংসমূহৰ নিয়ন্ত্ৰণ লৈছে যাৰ অৰ্থ হৈছে ই আপুনি অনলাইনত কৰা যিকোনো কাৰ্য সলনি কৰিব পাৰে, ভাঙিব পাৰে বা গোপনে নজৰ ৰাখিব পাৰে। আপুনি যদি এই সালসলনিখিনি কিয় হৈছে সেয়া নিশ্চিতকৈ নাজানে, আপুনি চাগে সেইখিনি নিবিচাৰে।</translation>
 <translation id="6197128521826316819">এই পৃষ্ঠাখনৰ বাবে কিউআৰ ক’ড সৃষ্টি কৰক</translation>
+<translation id="6197223946499512637">এই পাছকীসমূহ এই কম্পিউটাৰটোৰ Windows Helloত ষ্ট’ৰ কৰা হয়। সেইসমূহ আপোনাৰ Google একাউণ্টত ছেভ কৰা নহয়।</translation>
 <translation id="6198252989419008588">পিন সলনি কৰক</translation>
 <translation id="6200047250927636406">ফাইল বাতিল কৰক</translation>
 <translation id="6200151268994853226">এক্সটেনশ্বন পৰিচালনা কৰক</translation>
@@ -5710,6 +5723,7 @@
 <translation id="6482559668224714696">সম্পূর্ণ স্ক্ৰীণৰ বিৱৰ্ধক</translation>
 <translation id="6483485061007832714">ডাউনল’ড কৰা ফাইল খোলক</translation>
 <translation id="6483805311199035658"><ph name="FILE" /> খুলি থকা হৈছে...</translation>
+<translation id="6486301003991593638">পাছকী পৰিচালনা কৰিবলৈ Windowsৰ এটা নতুন সংস্কৰণ ব্যৱহাৰ কৰক</translation>
 <translation id="6488384360522318064">ভাষা বাছনি কৰক</translation>
 <translation id="648927581764831596">উপলব্ধ নহয়</translation>
 <translation id="6490471652906364588">USB-C ডিভাইচ (সোঁফালৰ পর্ট)</translation>
@@ -6298,6 +6312,7 @@
 <translation id="7029307918966275733">Crostini ইনষ্টল কৰা হোৱা নাই। ক্ৰেডিটসমূহ চাবলৈ অনুগ্ৰহ কৰি Crostini ইনষ্টল কৰক।</translation>
 <translation id="7029809446516969842">পাছৱৰ্ডসমূহ</translation>
 <translation id="7030304022046916278">URLসমূহ পৰীক্ষা কৰিবলৈ সুৰক্ষিত ব্ৰাউজিঙলৈ পঠিয়ায়</translation>
+<translation id="7030695672997239647">এটা টেবত ৰাইট-ক্লিক কৰক আৰু "টেবটো গোটত যোগ দিয়ক" বাছনি কৰক আৰু তাৰ পাছত "নতুন গোট বাছনি কৰক"</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - ছিৰিয়েল পর্ট সংযোগ কৰা হৈছে</translation>
 <translation id="7033616203784997570">ইনপুটটো সৰ্বাধিক ৬২ টা বৰ্ণৰ হ’বই লাগিব</translation>
 <translation id="7034692021407794547">বিলিং পৰিচালনা কৰাৰ বিশেষ সুবিধা লাভ কৰা প্ৰশাসক এগৰাকীয়ে প্ৰথমে প্ৰশাসকৰ কনছ’লৰ Google Meetৰ হাৰ্ডৱেৰ শাখাত Google Meetৰ হাৰ্ডৱেৰৰ সেৱাৰ চর্তাৱলী গ্ৰহণ কৰিবই লাগিব।</translation>
@@ -7398,6 +7413,7 @@
 <translation id="8101987792947961127">পৰৱর্তী ৰিবুটৰ বাবে পাৱাৰৱাশ্বৰ আৱশ্যক</translation>
 <translation id="81020759409809034">স্থানীয় অৱস্থান</translation>
 <translation id="8102139037507939978">system_logs.txtৰ পৰা ব্যক্তিগতভাৱে চিনাক্ত কৰিব পৰা তথ্য আঁতৰাওক।</translation>
+<translation id="810362914482827094">পাছকীৰ সন্ধান কৰক</translation>
 <translation id="8104088837833760645">ই-ছিমৰ প্ৰ’ফাইল ডাউনল’ড কৰক</translation>
 <translation id="8105368624971345109">অফ কৰক</translation>
 <translation id="8107015733319732394">আপোনাৰ <ph name="DEVICE_TYPE" />ত Google Play Store ইনষ্টল কৰি থকা হৈছে। ইয়াৰ বাবে কিছু সময়ৰ প্ৰয়োজন হ'ব পাৰে।</translation>
@@ -7845,6 +7861,7 @@
 <translation id="8557022314818157177">আপোনাৰ ফিংগাৰপ্ৰিণ্টটো কেপশ্বাৰ নকৰা পর্যন্ত আপোনাৰ সুৰক্ষা চাবিটো স্পৰ্শ কৰি থাকক</translation>
 <translation id="8557180006508471423">আপোনাৰ Macৰ অৱস্থান সেৱাসমূহত থকা "Google Chrome" অন কৰক</translation>
 <translation id="8557856025359704738">পৰৱৰ্তী ডাউনল’ড <ph name="NEXT_DATE_DOWNLOAD" />ত আছে।</translation>
+<translation id="8559858985063901027">পাছকী</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{সকলো &amp;নতুন ৱিণ্ড’ত খোলক}=1{&amp;নতুন ৱিণ্ড’ত খোলক}one{সকলো ({COUNT} টা) &amp;নতুন ৱিণ্ড’ত খোলক}other{সকলো ({COUNT} টা) &amp;নতুন ৱিণ্ড’ত খোলক}}</translation>
 <translation id="8561206103590473338">হাতী</translation>
 <translation id="8561565784790166472">সাৱধানতাৰে আগবাঢ়ক</translation>
@@ -7971,6 +7988,7 @@
 <translation id="8677212948402625567">সকলো সংকোচন কৰক...</translation>
 <translation id="867767487203716855">পৰৱৰ্তী আপডে’ট</translation>
 <translation id="8677859815076891398">কোনো এলবাম নাই। <ph name="LINK_BEGIN" />Google Photos<ph name="LINK_END" />ত এটা এলবাম সৃষ্টি কৰক।</translation>
+<translation id="8678378565142776698">ৰিষ্টাৰ্ট কৰক আৰু স্বয়ংক্ৰিয় আপডে’ট লাভ কৰক</translation>
 <translation id="8678538439778360739">আপোনাৰ ছিংক পাছফ্ৰেজৰ জৰিয়তে <ph name="TIME" />ত ডেটা এনক্ৰিপ্ট কৰা হৈছে। ইয়াত Google Payৰ পৰিশোধ পদ্ধতি আৰু ঠিকনাবোৰ অন্তৰ্ভুক্ত নহয়।</translation>
 <translation id="8678582529642151449">টেবসমূহ সংকুচিত নহয়</translation>
 <translation id="8678933587484842200">আপুনি এই এপ্লিকেশ্বনটো কেনেকৈ লঞ্চ হোৱাটো বিচাৰে?</translation>
@@ -8218,6 +8236,7 @@
 <translation id="8910987510378294980">ডিভাইচৰ সূচী লুকুৱাওক</translation>
 <translation id="8912362522468806198">Google একাউণ্ট</translation>
 <translation id="8912810933860534797">স্বয়ং-স্কেন সক্ষম কৰক</translation>
+<translation id="8915307125957890427">এটা টেবত ৰাইট-ক্লিক কৰক আৰু "টেবটো গোটত যোগ দিয়ক" বাছনি কৰক আৰু তাৰ পাছত "নতুন গোট বাছনি কৰক"</translation>
 <translation id="8915370057835397490">পৰামর্শ ল'ড কৰি থকা হৈছে</translation>
 <translation id="8916476537757519021">ইনক’গনিট’ ছাবফ্ৰেম: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" />ৰ <ph name="DEVICE_TYPE" /></translation>
@@ -8292,6 +8311,7 @@
 <translation id="8986362086234534611">পাহৰক</translation>
 <translation id="8986494364107987395">স্বয়ংক্ৰিয়ভাৱে Googleলৈ ব্যৱহাৰৰ পৰিসংখ্যা আৰু ক্ৰেশ্ব ৰিপ’ৰ্ট পঠিয়াওক</translation>
 <translation id="8987927404178983737">মাহ</translation>
+<translation id="8989359959810288806">টেডাৰিঙৰ স্থিতি ৰিফ্ৰেশ্ব কৰক</translation>
 <translation id="8991520179165052608">ছাইটে আপোনাৰ ডিভাইচৰ মাইক্ৰ’ফ’ন ব্যৱহাৰ কৰিব পাৰে</translation>
 <translation id="899384117894244799">প্ৰতিবন্ধিত ব্যৱহাৰকাৰীক আঁতৰাওক</translation>
 <translation id="899403249577094719">Netscape প্ৰমাণপত্ৰ ভিত্তিক URL</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index a9279f9..ac4053e 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Mikrofonunuzu və kameranızı istifadə edin</translation>
 <translation id="1005333234656240382">ADB sazlaması aktivləşdirilsin?</translation>
 <translation id="1006873397406093306">Bu artırma saytlardakı datanı oxuya və dəyişə bilər Artırmaların hansı saytlara girişinin olduğuna nəzarət edə bilərsiniz</translation>
+<translation id="1007057452468855774">Google Play Marketi aktiv edin</translation>
 <translation id="1008186147501209563">Əlfəcinləri eksport edin</translation>
 <translation id="1008557486741366299">İndi yox</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" /> Məkanı</translation>
 <translation id="1009663062402466586">Oyun nəzarətləri indi əlçatandır</translation>
 <translation id="1010498023906173788">Bu tab ardıcıl porta qoşuludur.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Səhifə Cavab vermir}other{Səhifələr Cavab vermir}}</translation>
+<translation id="1011003645819296594">Yadda saxlanmış cihazlar</translation>
 <translation id="1011355516189274711">Mətndən-nitqə səs səviyyəsi</translation>
 <translation id="1012794136286421601">Sənədləriniz, Cədvəlləriniz və Çertyojlarınız sinxronlaşır. Onlara onlayn və ya oflayn daxil olmaq üçün Google Disk tətbiqini açın.</translation>
 <translation id="1012876632442809908">USB-C cihazı (ön port)</translation>
@@ -489,6 +491,7 @@
 <translation id="1470350905258700113">Bu cihazdan istifadə edin</translation>
 <translation id="1470946456740188591">Klaviatura ilə baxışı aktiv və ya deaktiv etmək üçün Ctrl+Search+7 qısayolunu istifadə edin</translation>
 <translation id="1472675084647422956">Daha çox göstərin</translation>
+<translation id="1473223074251193484">Modem Rejimi Konfiqurasiyasını ayarlayın</translation>
 <translation id="1474785664565228650">Mikrofon ayarına edilən dəyişiklik Parallels Desktop'un yenidən başladılmasını tələb edir. Davam etmək üçün Parallels Desktop'u yenidən başladın.</translation>
 <translation id="1474893630593443211">Gördüyünüz reklamlar üzərində daha çox nəzarət</translation>
 <translation id="1475502736924165259">Digər kateqoriyalardan heç birinə uyğun olmayan faylda sertifikatlarınız var</translation>
@@ -1109,6 +1112,7 @@
 <translation id="2044014337866019681">Seansı blokdan çıxarmaq üçün <ph name="ACCOUNT" /> hesabını doğruladığınıza əmin olun.</translation>
 <translation id="204497730941176055">Microsoft Sertifikat Şablon adı</translation>
 <translation id="2045117674524495717">Klaviatura Qısayol Yardımı</translation>
+<translation id="2045211794962848221">Bu xüsusi mesajı bir daha görməyəcəksiniz</translation>
 <translation id="2045969484888636535">Kukiləri blok etməyə davam edin</translation>
 <translation id="204622017488417136">Cihazınız əvvəlcə quraşdırılmış Chrome versiyasına qaytarılacaq. Bütün istifadəçi hesabları və lokal data silinəcək. Bu geri qaytarıla bilməz.</translation>
 <translation id="2046702855113914483">Ramen</translation>
@@ -3795,6 +3799,7 @@
 <translation id="4594577641390224176">Sistemin haqqında səhifəsini axtarırsınız? Ziyarət edin</translation>
 <translation id="4595560905247879544">Tətbiq və artırmalar menecerlər tərəfindən dəyişdirilə bilər (<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">Bu serverləri təsdiqləyən fayllarda sertifikatlarınız var</translation>
+<translation id="4598345735110653698">Parolları idarə edin</translation>
 <translation id="4598556348158889687">Yaddaş idarəetməsi</translation>
 <translation id="4598776695426288251">Wi-Fi çoxsaylı cihazlar üzərindən əlçatandır</translation>
 <translation id="4601426376352205922">Oxunmamış kimi qeyd edin</translation>
@@ -4020,6 +4025,7 @@
 <translation id="4823894915586516138">Bu PIN və ya parol telefonunuzdan giriş etdiyiniz hər hansı məzmun daxil olmaqla, bu <ph name="DEVICE_TYPE" /> cihazındakı məlumatlarınızı qoruyur</translation>
 <translation id="4824037980212326045">Linux yedəkləmə və bərpası</translation>
 <translation id="4824958205181053313">Sinxronizasiya ləğv edilsin?</translation>
+<translation id="4825532258163983651">Parolu silmək olmur</translation>
 <translation id="4827675678516992122">Qoşulmaq mümkün deyil</translation>
 <translation id="4827784381479890589">Chrome brauzerdə təkmilləşmiş orfoqrafiya yoxlayıcısı (mətn orfoqrafiya təklifləri üçün Google'a göndərilir)</translation>
 <translation id="4827904420700932487">Bu şəkil üçün QR kodu yaradın</translation>
@@ -4282,6 +4288,7 @@
 <translation id="5087249366037322692">Üçüncü tərəfindən əlavə edilib</translation>
 <translation id="5087580092889165836">Kart əlavə edin</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 Şifrələmə ilə</translation>
+<translation id="5089763948477033443">Yan Panel Ölçü Dəyişmə Vasitəsi</translation>
 <translation id="5090637338841444533">Kameranızın mövqeyini izləmək icazəsi verilməyib</translation>
 <translation id="5093569275467863761">Anonim Geri/İrəli Keşlənmiş Alt-çərçivə: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Fayllar tətbiqindən və ya digər tətbiqlərdən dəstəklənən faylları bu tətbiqlə aça və redaktə edə bilərsiniz. Defolt olaraq bu tətbiqin hansı faylları açdığına nəzarət etmək üçün <ph name="BEGIN_LINK" />cihazınızda defolt tətbiqlərin necə ayarlanmasını öyrənin<ph name="END_LINK" />.</translation>
@@ -4447,6 +4454,7 @@
 <translation id="5258992782919386492">Bu cihazda quraşdırın</translation>
 <translation id="5260334392110301220">Ağıllı Sitatlar</translation>
 <translation id="5260508466980570042">Üzr istəyirik, e-poçtunuz və ya parolunuz doğrulana bilməz. Yenidən cəhd edin.</translation>
+<translation id="5260958083445173099">Mümkün olduqda vebsaytlar tərcih etdiyiniz dillərdə kontent göstərəcək</translation>
 <translation id="5261683757250193089">Veb Mağazada Açın</translation>
 <translation id="5262178194499261222">Parolu silin</translation>
 <translation id="5262784498883614021">Şəbəkəyə avtomatik olaraq qoşulun</translation>
@@ -4487,6 +4495,7 @@
 <translation id="5294097441441645251">Kiçik hərf simvolu və ya altdan xətt ilə başlamalıdır</translation>
 <translation id="5294618183559481278">Cihazınızın qarşısındakı insanları aşkar etmək üçün <ph name="DEVICE_TYPE" /> cihazınız daxili sensordan istifadə edir. Bütün data dərhal cihazınızda işlənir və sonra silinir. Sensor datası heç vaxt Google'a göndərilmir. <ph name="LINK_BEGIN" />Ətraflı məlumat<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Səsli rəyi dinləyərək ekrana baxmadan cihazınızdan istifadə edə bilərsiniz. Brayl əlifbası qoşulmuş cihaz ilə əlçatandır.</translation>
+<translation id="5297005732522718715">Modem Rejimi Konfiqurasiyasını yeniləyin</translation>
 <translation id="5297082477358294722">Parol yadda saxlanıldı. Yadda saxlanılmış parollara <ph name="SAVED_PASSWORDS_STORE" /> ünvanında baxın və idarə edin.</translation>
 <translation id="5297946558563358707">Başqası ekranınıza baxdıqda, ekranınızın aşağı sağ tərəfində Məxfilik gözü işarəsini göstərin</translation>
 <translation id="5298219193514155779">Temanı yaradan:</translation>
@@ -4657,6 +4666,7 @@
 <translation id="5466374726908360271">"<ph name="SEARCH_TERMS" />" ifadəsini yerləşdirib axtarın</translation>
 <translation id="5467207440419968613"><ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> bloklanıb</translation>
 <translation id="5468173180030470402">Fayl paylaşımı axtarılır</translation>
+<translation id="5468330507528805311">Modem Rejimi Statusu:</translation>
 <translation id="5468881191994555667">Fayl seçin</translation>
 <translation id="5469852975082458401">Səhifələri mətn kursoru ilə vərəqləyə bilərsiniz. Deaktiv etmək üçün F7 düyməsini basın.</translation>
 <translation id="5470735824776589490">Cihazınız fabrik sıfırlaması etmədən öncə yenidən başladılmalıdır. <ph name="LINK_BEGIN" />Ətraflı məlumat<ph name="LINK_END" /></translation>
@@ -4809,7 +4819,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI cihazlarına qoşulmağa icazə verilməyib</translation>
 <translation id="5602765853043467355">Bu cihazda əlfəcin, tarixçə, parollar və daha çoxunu silin</translation>
-<translation id="5605623530403479164">Digər axtarış mühərrikləri</translation>
 <translation id="5605758115928394442">Kimliyinizi doğrulamaq üçün telefona bildiriş göndərildi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Bu artırma bloklanıb}other{Bu artırmalar bloklanıb}}</translation>
 <translation id="560834977503641186">Wi-Fi Sinxronlaşdırması, Ətraflı Məlumat</translation>
@@ -4933,6 +4942,7 @@
 <translation id="5734362860645681824">Əlaqələr</translation>
 <translation id="5734697361979786483">Fayl paylaşımı əlavə edin</translation>
 <translation id="5736796278325406685">Etibarlı istifadəçi adı daxil edin</translation>
+<translation id="5738093759615225354">Kompüterinizə daxil olmaq üçün bu parola ehtiyacınız var</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> adlı istifadəçiyə məktəb hesabı əlavə etməkdə yardım etmək üçün daxil olun</translation>
 <translation id="5739235828260127894">Doğrulama gözlənilir. <ph name="LINK_BEGIN" />Ətraflı məlumat.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Çox böyük</translation>
@@ -5094,6 +5104,7 @@
 <translation id="589541317545606110">Səhifəni <ph name="VISUAL_SEARCH_PROVIDER" /> ilə axtarın</translation>
 <translation id="5896436821193322561">İcazə verməyin</translation>
 <translation id="5900186025777217044">Smart Lock dəyişdirilib</translation>
+<translation id="5900243355162006650">Modem Rejimi Konfiqurasiyası:</translation>
 <translation id="5900302528761731119">Google Profil şəkli</translation>
 <translation id="590036993063074298">Əksetdirmə keyfiyyəti təfərrüatları</translation>
 <translation id="5901069264981746702">Barmaq izi datanız təhlükəsiz şəkildə saxlanılır və heç vaxt <ph name="DEVICE_TYPE" /> cihazınızdan kənara ötürülmür. <ph name="LINK_BEGIN" />Ətraflı məlumat<ph name="LINK_END" /></translation>
@@ -5108,6 +5119,7 @@
 <translation id="5909379458939060601">Bu profil və baxış datası silinsin?</translation>
 <translation id="5910363049092958439">Şəklin saxlanma formatı:</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> oflayndır</translation>
+<translation id="5911030830365207728">Google Tərcümə</translation>
 <translation id="5911533659001334206">Qısayol göstəricisi</translation>
 <translation id="5914724413750400082">Modul (<ph name="MODULUS_NUM_BITS" /> bit):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5395,6 +5407,7 @@
 <translation id="6196640612572343990">Üçüncü tərəf kukiləri blok edin</translation>
 <translation id="6196854373336333322">"<ph name="EXTENSION_NAME" />" artırması proksi ayarlarınıza nəzarət edir, bu o dəməkdir ki, onlayn etdiyiniz hər bir şey üzərində dəyişdirə, poza və gizli izləyə bilər. Bu dəyişikliyin niyə baş verdiyinə əmin deyilsinizsə, yəqin Siz bunu istəməmisiniz.</translation>
 <translation id="6197128521826316819">Bu Səhifə üçün QR kodu yaradın</translation>
+<translation id="6197223946499512637">Bu parollar bu kompüterdə Windows Hello'da saxlanılır. Onlar Google Hesabınızda saxlanmır.</translation>
 <translation id="6198252989419008588">PİN kodu dəyişdirin</translation>
 <translation id="6200047250927636406">Fayldan imtina edin</translation>
 <translation id="6200151268994853226">Artırmanı idarə edin</translation>
@@ -5692,6 +5705,7 @@
 <translation id="6482559668224714696">Tam ekran böyüdücüsü</translation>
 <translation id="6483485061007832714">Endirilən faylı açın</translation>
 <translation id="6483805311199035658"><ph name="FILE" /> açılır...</translation>
+<translation id="6486301003991593638">Parolları idarə etmək üçün Windows'un daha yeni versiyasından istifadə edin</translation>
 <translation id="6488384360522318064">Dil seçin</translation>
 <translation id="648927581764831596">Heç biri mövcud deyil</translation>
 <translation id="6490471652906364588">USB-C cihazı (sağ port)</translation>
@@ -6278,6 +6292,7 @@
 <translation id="7029307918966275733">Crostini quraşdırılmayıb. Kreditlərə baxmaq üçün Crostini'ni quraşdırın.</translation>
 <translation id="7029809446516969842">Parollar</translation>
 <translation id="7030304022046916278">URL'ləri yoxlamaq üçün onları Təhlükəsiz Baxışa göndərir</translation>
+<translation id="7030695672997239647">Tab üzərinə sağ düymə ilə toxunun və "Qrupa Tab Əlavə edin" seçimini, sonra "Yeni Qrup" seçimini edin</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - Ardıcıl port qoşuludur</translation>
 <translation id="7033616203784997570">Daxiletmə maksimum 62 simvoldan ibarət olmalıdır</translation>
 <translation id="7034692021407794547">Faktura İdarəetmə imtiyazlarına sahib bir administrator əvvəlcə Admin konsolunun Google Meet Avadanlıq bölməsində Google Meet Avadanlıq Xidmət Şərtlərini qəbul etməlidir.</translation>
@@ -7378,6 +7393,7 @@
 <translation id="8101987792947961127">Növbəti yenidən yüklənmə zamanı zavod sıfırlaması tələb olunur</translation>
 <translation id="81020759409809034">Yerli Məkan</translation>
 <translation id="8102139037507939978">Şəxsi Eyniləşdirici Məlumatları system_logs.txt faylından çıxarın.</translation>
+<translation id="810362914482827094">Parolları axtarın</translation>
 <translation id="8104088837833760645">eSIM profilini endirin</translation>
 <translation id="8105368624971345109">Deaktiv Edin</translation>
 <translation id="8107015733319732394"><ph name="DEVICE_TYPE" /> cihazında Google Play Mağazası quraşdırılır. Bu proses bir neçə dəqiqə vaxt ala bilər.</translation>
@@ -7825,6 +7841,7 @@
 <translation id="8557022314818157177">Barmaq iziniz oxunanadək təhlükəsizlik açarına toxunmağa davam edin</translation>
 <translation id="8557180006508471423">Mac cihazınızda Məkan Xidmətlərində "Google Chrome"u aktiv edin</translation>
 <translation id="8557856025359704738">Növbəti endirmə tarixi: <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Parollar</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Hamısını &amp;Yeni Pəncərədə Açın}=1{&amp;Yeni Pəncərədə Açın}other{Hamısını ({COUNT}) &amp;Yeni Pəncərədə Açın}}</translation>
 <translation id="8561206103590473338">Fil</translation>
 <translation id="8561565784790166472">Ehtiyatla davam edin</translation>
@@ -7951,6 +7968,7 @@
 <translation id="8677212948402625567">Hamısını yığcamlaşdırın...</translation>
 <translation id="867767487203716855">Növbəti güncəlləmə</translation>
 <translation id="8677859815076891398">Albom yoxdur. <ph name="LINK_BEGIN" />Google Fotoda<ph name="LINK_END" /> albom yaradın.</translation>
+<translation id="8678378565142776698">Yenidən başladın və avtomatik güncəlləmələri əldə edin</translation>
 <translation id="8678538439778360739">Data sinxronizasiya parolunuz ilə bu vaxt şifrələnib: <ph name="TIME" />. Google Pay'dəki ödəniş metodları və ünvanlar bura daxil deyil.</translation>
 <translation id="8678582529642151449">Tabların ölçüsü dəyişmir</translation>
 <translation id="8678933587484842200">Bu tətbiqin necə başlamasını istərdiniz?</translation>
@@ -8195,6 +8213,7 @@
 <translation id="8910987510378294980">Cihaz siyahısını gizlədin</translation>
 <translation id="8912362522468806198">Google Hesabı</translation>
 <translation id="8912810933860534797">Avtomatik skanı aktiv edin</translation>
+<translation id="8915307125957890427">Tab üzərinə sağ düymə ilə toxunun və "Qrupa tab əlavə edin" seçimini, sonra "Yeni qrup" seçimini edin</translation>
 <translation id="8915370057835397490">Təklif yüklənir</translation>
 <translation id="8916476537757519021">Gizli Altkadr: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" /> adlı istifadəçinin <ph name="DEVICE_TYPE" /></translation>
@@ -8269,6 +8288,7 @@
 <translation id="8986362086234534611">Unudun</translation>
 <translation id="8986494364107987395">Google'a istifadəçi statistikalarını və qəza raportlarını avtomatik göndərin</translation>
 <translation id="8987927404178983737">Ay</translation>
+<translation id="8989359959810288806">Modem Rejimi Statusunu yeniləyin</translation>
 <translation id="8991520179165052608">Sayt mikrofonu paylaşa bilər</translation>
 <translation id="899384117894244799">Məhdudlaşdırılmış istifadəçini silin</translation>
 <translation id="899403249577094719">Netscape Sertifikat Base URL</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index 3019662..67ba23c 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -898,6 +898,7 @@
 <translation id="1829129547161959350">Пінгвін</translation>
 <translation id="1829192082282182671">Паменшыць &amp;маштаб</translation>
 <translation id="1830550083491357902">Уваход не выкананы</translation>
+<translation id="1831848493690504725">Нам не ўдаецца звязацца з Google праз падключаную сетку. Паспрабуйце выбраць іншую сетку або праверце налады сеткі і проксі-сервера (калі вы яго выкарыстоўваеце).</translation>
 <translation id="1832459821645506983">Так, згаджаюся</translation>
 <translation id="1832511806131704864">Спалучэнне тэлефона зменена</translation>
 <translation id="1832848789136765277">Каб не страціць доступ да сваіх сінхранізаваных даных, пацвердзіце сваю асобу</translation>
@@ -2196,6 +2197,7 @@
 <translation id="3021065318976393105">Пры працы ад акумулятара</translation>
 <translation id="3021066826692793094">Матылёк</translation>
 <translation id="3021678814754966447">&amp;Прагляд крыніцы фрэйма</translation>
+<translation id="3022361196600037287">Прылада "<ph name="DEVICE" />" будзе выдалена з гэтага Chromebook і не захаваецца ва ўліковым запісе <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Незразумела.</translation>
 <translation id="3023464535986383522">Чытаць уголас</translation>
 <translation id="3024374909719388945">Выкарыстоўваць 24-гадзінны фармат</translation>
@@ -3734,6 +3736,7 @@
 <translation id="4535127706710932914">Стандартны профіль</translation>
 <translation id="4535767533210902251">Сканер адбіткаў пальцаў – гэта верхняя кнопка справа на клавіятуры. Злёгку дакраніцеся да яе любым пальцам.</translation>
 <translation id="4536140153723794651">Сайты, якім заўсёды дазволена выкарыстоўваць файлы cookie</translation>
+<translation id="4536769240747010177">Магчымасці рэжыму мадэма:</translation>
 <translation id="4538417792467843292">Выдаліць слова</translation>
 <translation id="4538792345715658285">Усталявана карпаратыўнай палітыкай.</translation>
 <translation id="4541123282641193691">Не ўдалося спраўдзіць уліковы запіс. Паўтарыце спробу або перазапусціце Chromebook.</translation>
@@ -3761,6 +3764,7 @@
 <translation id="4561893854334016293">Нядаўна змененых дазволаў няма</translation>
 <translation id="4562155214028662640">Дадаць адбітак пальца</translation>
 <translation id="4563210852471260509">Пачатковая мова ўводу – кітайская</translation>
+<translation id="4563382028841851106">Выдаліць з уліковага запісу</translation>
 <translation id="4563880231729913339">Палец 3</translation>
 <translation id="4564245002465020751">Завяршыце наладжванне на тэлефоне</translation>
 <translation id="4565377596337484307">Схаваць пароль</translation>
@@ -4737,6 +4741,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> запытвае наступныя дазволы</translation>
 <translation id="5534304873398226603">Адхіліць фота ці відэа</translation>
 <translation id="5537725057119320332">Трансліраваць</translation>
+<translation id="5539070192556911367">Не ўдаецца звязацца з Google</translation>
 <translation id="5539221284352502426">Уведзены пароль адхілены серверам. У ліку магчымых прычын: Пароль занадта кароткі. Пароль павінен змяшчаць лічбы або сімвалы. Пароль павінен адрознівацца ад папярэдніх пароляў.</translation>
 <translation id="5541694225089836610">Дзеянне адключана адміністратарам</translation>
 <translation id="5542132724887566711">Профіль</translation>
@@ -4800,6 +4805,7 @@
 <translation id="5585912436068747822">Не ўдалося адфармаціраваць</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Загрузка праграм...</translation>
+<translation id="5590418976913374224">Прайграваць гук пры запуску прылады</translation>
 <translation id="5592595402373377407">Пакуль што недастаткова даных.</translation>
 <translation id="5595307023264033512">Агульны аб'ём сховішча, які выкарыстоўваецца сайтамі: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Рэдагаваць адрас</translation>
@@ -4809,7 +4815,6 @@
 <translation id="5601503069213153581">PIN-код</translation>
 <translation id="5601823921345337195">Не дазволена падключацца да прылад MIDI</translation>
 <translation id="5602765853043467355">Выдаліць закладкі, гісторыю, паролі і іншае з гэтай прылады</translation>
-<translation id="5605623530403479164">Іншыя пошукавыя сістэмы</translation>
 <translation id="5605758115928394442">Вам на тэлефон для пацвярджэння вашай асобы адпраўлена апавяшчэнне.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Гэта пашырэнне заблакіравана}one{Гэтыя пашырэнні заблакіраваны}few{Гэтыя пашырэнні заблакіраваны}many{Гэтыя пашырэнні заблакіраваны}other{Гэтыя пашырэнні заблакіраваны}}</translation>
 <translation id="560834977503641186">Сінхранізацыя параметраў Wi-Fi, даведацца больш</translation>
@@ -5108,6 +5113,7 @@
 <translation id="5909379458939060601">Выдаліць гэты профіль і даныя прагляду старонак у інтэрнэце?</translation>
 <translation id="5910363049092958439">За&amp;хаваць відарыс як...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> па-за сеткай</translation>
+<translation id="5911030830365207728">Перакладчык Google</translation>
 <translation id="5911533659001334206">Прагляд спалучэнняў клавіш</translation>
 <translation id="5914724413750400082">Модуль (бітаў – <ph name="MODULUS_NUM_BITS" />):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6183,6 +6189,10 @@
 <translation id="6943939122536910181">Адключана ад прылады "<ph name="DEVICE" />"</translation>
 <translation id="6945221475159498467">Выбраць</translation>
 <translation id="694592694773692225">Заблакіравана перанакіраванне на гэтай старонцы.</translation>
+<translation id="6947015141909171112">Вы бачыце рэцэпты, падабраныя на аснове вашай нядаўняй гісторыі пошуку рэцэптаў.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        У вас ёсць магчымасць кіраваць наладамі з меню карткі і праглядаць дадатковыя параметры ў раздзеле "Наладзіць Chrome".</translation>
 <translation id="6949434160682548041">Пароль (неабавязкова)</translation>
 <translation id="6950627417367801484">Аднавіць праграмы</translation>
 <translation id="6952242901357037157">Тут таксама могуць паказвацца паролі, захаваныя ва <ph name="BEGIN_LINK" />Уліковым запісе Google<ph name="END_LINK" /></translation>
@@ -6350,6 +6360,7 @@
 <translation id="7102687220333134671">Аўтаматычныя абнаўленні ўключаны</translation>
 <translation id="7102832101143475489">Запыт пратэрмінаваны</translation>
 <translation id="710640343305609397">Адкрыць налады сеткі</translation>
+<translation id="7107609441453408294">Прайграваць адзін аўдыяканал праз усе дынамікі</translation>
 <translation id="7108338896283013870">Схаваць</translation>
 <translation id="7108668606237948702">Enter</translation>
 <translation id="7108933416628942903">Заблакіраваць</translation>
@@ -6580,6 +6591,7 @@
 <translation id="7364745943115323529">Трансліраваць...</translation>
 <translation id="7364796246159120393">Выбраць файл</translation>
 <translation id="7365076891350562061">Памер манітора</translation>
+<translation id="7365995455115045224">Укладка "<ph name="WINDOW_TITLE" />" замацавана</translation>
 <translation id="7366316827772164604">Ідзе пошук прылад паблізу…</translation>
 <translation id="7366415735885268578">Дадаванне сайта</translation>
 <translation id="7366909168761621528">Даныя прагляду</translation>
@@ -6976,6 +6988,7 @@
 <translation id="7737115349420013392">Ідзе спалучэнне з прыладай "<ph name="DEVICE_NAME" />"...</translation>
 <translation id="7737846262459425222">Вы можаце выключыць гэту функцыю ў любы час у раздзеле "Налады &gt; Памочнік Google &gt; Кантэкст экрана".</translation>
 <translation id="7737948071472253612">Не дазволена выкарыстоўваць камеру</translation>
+<translation id="77381465218432215">Паказваць дыякрытычныя знакі і спецыяльныя сімвалы</translation>
 <translation id="7740996059027112821">Стандартны</translation>
 <translation id="7741307896921365578">Уключае бакавую панэль на ўзроўні браўзера для пастаяннага зручнага доступу да спіса на прагляд і закладак.</translation>
 <translation id="7742558784808143689">Выдаліць дазволы і даныя сайта <ph name="SITE_NAME" /> і ўсіх сайтаў ніжэйшых узроўняў, а таксама ўсталяваныя праграмы?</translation>
@@ -7764,6 +7777,7 @@
 <translation id="8486666913807228950">Прычына: у спісе "Прымусова адкрыць у:" знойдзена інвертаванае правіла <ph name="REVERT_RULE" />.</translation>
 <translation id="848666842773560761">Праграма спрабуе атрымаць доступ да камеры. Каб дазволіць такі доступ, перавядзіце пераключальнік, які рэгулюе налады прыватнасці камеры, у становішча "выключана".</translation>
 <translation id="8487678622945914333">Павялічыць</translation>
+<translation id="8487699605742506766">Хот-спот</translation>
 <translation id="8489156414266187072">Персанальныя прапановы паказваюцца толькі ў вашым уліковым запісе</translation>
 <translation id="8490896350101740396">Наступныя праграмы-кіёскі былі абноўлены: <ph name="UPDATED_APPS" />. Каб завяршыць працэс абнаўлення, перазагрузіце прыладу.</translation>
 <translation id="8492685019009920170">Дакраніцеся пальцам да сканера адбіткаў пальцаў. Вашы даныя надзейна захоўваюцца на прыладзе <ph name="DEVICE_TYPE" /> і нікуды не перадаюцца.</translation>
@@ -8260,6 +8274,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" і яшчэ 1 укладка}one{"<ph name="TAB_TITLE" />" і яшчэ # укладка}few{"<ph name="TAB_TITLE" />" і яшчэ # укладкі}many{"<ph name="TAB_TITLE" />" і яшчэ # укладак}other{"<ph name="TAB_TITLE" />" і яшчэ # укладкі}}</translation>
 <translation id="8977811652087512276">Няправільны пароль, або файл пашкоджаны</translation>
 <translation id="8978154919215542464">Уключана. Сінхранізуецца ўсё</translation>
+<translation id="8978670037548431647">Абнавіць магчымасці рэжыму мадэма</translation>
 <translation id="897939795688207351">На старонцы <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Адпраўка справаздач</translation>
 <translation id="8980951173413349704">Збой <ph name="WINDOW_TITLE" /></translation>
@@ -8521,6 +8536,7 @@
 <translation id="935854577147268200">Тэлефон са Smart Lock зменены. Каб абнавіць Smart Lock, увядзіце пароль. Наступны раз прылада <ph name="DEVICE_TYPE" /> будзе разблакіравана з дапамогай вашага тэлефона. Вы можаце выключыць Smart Lock у Наладах</translation>
 <translation id="936646668635477464">Камера і мікрафон</translation>
 <translation id="936801553271523408">Даныя дыягностыкі сістэмы</translation>
+<translation id="937053962468712792">Выдаліць прыладу "<ph name="DEVICE" />" з уліковага запісу <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Выправіць пашырэнне</translation>
 <translation id="938568644810664664">Спытайце: "Ok Google, што гэта за песня?" або "Ok Google, што на маім экране?"</translation>
 <translation id="938623846785894166">Незвычайны файл</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index 122f16a..9137d2d6 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -2205,6 +2205,7 @@
 <translation id="3021065318976393105">На батерия</translation>
 <translation id="3021066826692793094">Пеперуда</translation>
 <translation id="3021678814754966447">&amp;Преглед на изходния код на рамката</translation>
+<translation id="3022361196600037287">Устройството <ph name="DEVICE" /> ще бъде премахнато от този Chromebook и няма да бъде запазено в(ъв) <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Не разбрахме това.</translation>
 <translation id="3023464535986383522">Прочитане на глас</translation>
 <translation id="3024374909719388945">Използване на 24-часов часовник</translation>
@@ -3745,6 +3746,7 @@
 <translation id="4535127706710932914">Потребителски профил по подразбиране</translation>
 <translation id="4535767533210902251">Сензорът за отпечатъци е бутонът най-горе вдясно на клавиатурата. Докоснете го леко с който и да е пръст.</translation>
 <translation id="4536140153723794651">Сайтове, които винаги могат да използват „бисквитки“</translation>
+<translation id="4536769240747010177">Възможности за тетъринг:</translation>
 <translation id="4538417792467843292">Изтриване на дума</translation>
 <translation id="4538792345715658285">Инсталирано от корпоративно правило.</translation>
 <translation id="4541123282641193691">Профилът ви не бе потвърден. Моля, опитайте отново или рестартирайте своя Chromebook.</translation>
@@ -3772,6 +3774,7 @@
 <translation id="4561893854334016293">Няма наскоро променени разрешения</translation>
 <translation id="4562155214028662640">Добавяне на отпечатък</translation>
 <translation id="4563210852471260509">Първоначалният език за въвеждане да бъде китайски</translation>
+<translation id="4563382028841851106">Премахване от профила</translation>
 <translation id="4563880231729913339">Пръст 3</translation>
 <translation id="4564245002465020751">Завършете настройването на телефона си</translation>
 <translation id="4565377596337484307">Скриване на паролата</translation>
@@ -4675,6 +4678,7 @@
 <translation id="5470735824776589490">Изисква се да рестартирате устройството си, преди да може да бъде възстановено с Powerwash. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Здравейте! Аз съм гласът за синтезиран говор.</translation>
 <translation id="5472627187093107397">Запазване на паролите за този сайт</translation>
+<translation id="5473062644742711742">Намиране на още инструменти за достъпност в уеб магазина на Chrome</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">С продължаването си приемате, че това устройство може също автоматично да изтегля и инсталира актуализации и приложения от Google, оператора на детето ви и производителя си, при което е възможно да използва мобилни данни. В някои от тези приложения може да се предлагат покупки.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{ПИН кодът трябва да е с дължина поне един знак}other{ПИН кодът трябва да е с дължина поне # знака}}</translation>
@@ -4822,7 +4826,6 @@
 <translation id="5601503069213153581">ПИН код</translation>
 <translation id="5601823921345337195">Сайтове без разрешение за свързване с MIDI устройства</translation>
 <translation id="5602765853043467355">Изчистване на отметките, историята, паролите и др. от това устройство</translation>
-<translation id="5605623530403479164">Други търсещи машини</translation>
 <translation id="5605758115928394442">На телефона ви бе изпратено известие, за да потвърдите, че това сте вие.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Това разширение е блокирано}other{Тези разширения са блокирани}}</translation>
 <translation id="560834977503641186">Синхронизиране на Wi-Fi, научете повече</translation>
@@ -5122,6 +5125,7 @@
 <translation id="5909379458939060601">Този потребителски профил и данните за сърфирането да се изтрият ли?</translation>
 <translation id="5910363049092958439">&amp;Запазване на изображението като...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> е офлайн</translation>
+<translation id="5911030830365207728">Google Преводач</translation>
 <translation id="5911533659001334206">Визуализатор на клавишните комбинации</translation>
 <translation id="5914724413750400082">Модули (<ph name="MODULUS_NUM_BITS" /> бита):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6191,6 +6195,10 @@
 <translation id="6943939122536910181">Връзката с(ъс) <ph name="DEVICE" /> е прекратена</translation>
 <translation id="6945221475159498467">Избиране</translation>
 <translation id="694592694773692225">На тази страница бе блокирано пренасочване.</translation>
+<translation id="6947015141909171112">Показват се рецепти въз основа на скорошната ви активност при търсене на такива.
+        <ph name="BREAK" />
+<ph name="BREAK" />
+Можете да управлявате настройките от менюто на картата или да видите още опции в „Персонализиране на Chrome“.</translation>
 <translation id="6949434160682548041">Парола (по избор)</translation>
 <translation id="6950627417367801484">Възстановяване на приложенията</translation>
 <translation id="6952242901357037157">Тук могат също да се показват паролите от <ph name="BEGIN_LINK" />профила ви в Google<ph name="END_LINK" /></translation>
@@ -6986,6 +6994,7 @@
 <translation id="7737115349420013392">Сдвоява се с(ъс) „<ph name="DEVICE_NAME" />“...</translation>
 <translation id="7737846262459425222">Можете да промените това по всяко време от „Настройки &gt; Google Асистент &gt; Контекст на екрана“.</translation>
 <translation id="7737948071472253612">Сайтове без разрешение за използване на камерата ви</translation>
+<translation id="77381465218432215">Показване на ударения и специални знаци</translation>
 <translation id="7740996059027112821">Стандартна</translation>
 <translation id="7741307896921365578">Активира полезен страничен панел на ниво браузър, чрез който винаги имате достъп до списъка за четене и отметките си.</translation>
 <translation id="7742558784808143689">Да се изчистят ли данните за сайтовете и разрешенията за <ph name="SITE_NAME" />, всички сайтове под него и инсталираните приложения?</translation>
@@ -7776,6 +7785,7 @@
 <translation id="8486666913807228950">Причина: Инвертираното правило <ph name="REVERT_RULE" /> бе намерено в списъка „Задължително отваряне във“.</translation>
 <translation id="848666842773560761">Приложение се опитва да осъществи достъп до камерата. За да разрешите достъпа, поставете превключвателя за поверителност на камерата в изключено положение.</translation>
 <translation id="8487678622945914333">Увеличаване</translation>
+<translation id="8487699605742506766">Точка за достъп</translation>
 <translation id="8489156414266187072">Личните предложения се показват само в профила ви</translation>
 <translation id="8490896350101740396">Следните павилионни приложения са актуализирани: <ph name="UPDATED_APPS" />. Моля, рестартирайте устройството, за да завършите процеса.</translation>
 <translation id="8492685019009920170">Докоснете сензора за отпечатъци с пръста си. Данните ви се съхраняват надеждно и остават на устройството ви <ph name="DEVICE_TYPE" />.</translation>
@@ -8269,6 +8279,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{„<ph name="TAB_TITLE" />“}=1{„<ph name="TAB_TITLE" />“ и още 1 раздел}other{„<ph name="TAB_TITLE" />“ и още # раздела}}</translation>
 <translation id="8977811652087512276">Неправилна парола или повреден файл</translation>
 <translation id="8978154919215542464">Включено (всичко се синхронизира)</translation>
+<translation id="8978670037548431647">Опресняване на възможностите за тетъринг</translation>
 <translation id="897939795688207351">В/ъв <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Сигнали с отзиви</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – възникна срив</translation>
@@ -8533,6 +8544,7 @@
 <translation id="935854577147268200">Телефонът за Smart Lock е променен. Въведете паролата си, за да актуализирате функцията. Следващия път телефонът ви ще отключи устройството ви <ph name="DEVICE_TYPE" />. Можете да изключите Smart Lock от настройките.</translation>
 <translation id="936646668635477464">Камера и микрофон</translation>
 <translation id="936801553271523408">Диагностични данни за системата</translation>
+<translation id="937053962468712792">Искате ли да премахнете <ph name="DEVICE" /> от <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Поправяне на разширението</translation>
 <translation id="938568644810664664">Опитайте „Ok Google, what song is this?“ или „Ok Google, what's on my screen?“</translation>
 <translation id="938623846785894166">Необичаен файл</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 0a715eb..61d66e3 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">আপনার মাইক্রোফোন ও ক্যামেরা ব্যবহার করুন</translation>
 <translation id="1005333234656240382">ADB ডিবাগিং চালু করতে চান?</translation>
 <translation id="1006873397406093306">এই এক্সটেনশনটি সাইটে আপনার ডেটা পড়তে এবং পরিবর্তন করতে পারে। এক্সটেনশনটি কোন সাইট অ্যাক্সেস করতে পারে তা আপনি নিয়ন্ত্রণ করতে পারেন।</translation>
+<translation id="1007057452468855774">Google Play Store চালু করুন</translation>
 <translation id="1008186147501209563">বুকমার্ক এক্সপোর্ট করুন</translation>
 <translation id="1008557486741366299">এখনই নয়</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" /> লোকেশন</translation>
 <translation id="1009663062402466586">গেম কন্ট্রোল এখন উপলভ্য</translation>
 <translation id="1010498023906173788">এই ট্যাব একটি সিরিয়াল পোর্টে কানেক্ট করা আছে।</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{পৃষ্ঠা প্রতিক্রিয়াবিহীন}one{পৃষ্ঠাগুলি প্রতিক্রিয়াবিহীন}other{পৃষ্ঠাগুলি প্রতিক্রিয়াবিহীন}}</translation>
+<translation id="1011003645819296594">সেভ করা ডিভাইস</translation>
 <translation id="1011355516189274711">টেক্সট-টু-স্পিচ ভলিউম</translation>
 <translation id="1012794136286421601">আপনার দস্তাবেজ, পত্রক, স্লাইড এবং অঙ্কন ফাইলগুলি সিঙ্ক হচ্ছে৷ অনলাইন বা অফলাইনে সেগুলিকে অ্যাক্সেস করতে Google ড্রাইভ অ্যাপটি খুলুন৷</translation>
 <translation id="1012876632442809908">USB-C ডিভাইস (সামনের পোর্ট)</translation>
@@ -495,6 +497,7 @@
 <translation id="1470350905258700113">এই ডিভাইস ব্যবহার করুন</translation>
 <translation id="1470946456740188591">ক্যারেট ব্রাউজিং চালু বা বন্ধ করার জন্য, Ctrl+Search+7 শর্টকাট ব্যবহার করুন</translation>
 <translation id="1472675084647422956">আরও দেখান</translation>
+<translation id="1473223074251193484">টেথারিং কনফিগারেশন সেট করুন</translation>
 <translation id="1474785664565228650">মাইক্রোফোন সেটিংয়ে পরিবর্তন করতে হলে, Parallels Desktop আবার লঞ্চ করতে হবে। আগে কাজ চালিয়ে যাওয়ার জন্য, Parallels Desktop আবার লঞ্চ করুন।</translation>
 <translation id="1474893630593443211">আপনি যে বিজ্ঞাপনগুলি দেখেন তাতে আরও নিয়ন্ত্রণ</translation>
 <translation id="1475502736924165259">আপনার কাছে ফাইলে সেই শংসাপত্রগুলি আছে যা অন্য বিভাগগুলির একটিতেও মেলে না</translation>
@@ -1126,6 +1129,7 @@
 <translation id="2044014337866019681">সেশন আনলক করতে, <ph name="ACCOUNT" /> যাচাই করছেন কিনা ভাল করে দেখে নিন।</translation>
 <translation id="204497730941176055">Microsoft সার্টিফিকেট টেম্পলেট নাম</translation>
 <translation id="2045117674524495717">কীবোর্ড শর্টকাট সাহায্যকারী</translation>
+<translation id="2045211794962848221">এই নির্দিষ্ট মেসেজটি আপনি আর দেখতে পাবেন না</translation>
 <translation id="2045969484888636535">কুকিজ অবরুদ্ধ করা চালিয়ে যান</translation>
 <translation id="204622017488417136">আপনার ডিভাইসটি পূর্বে ইনস্টল করা Chrome-এর ভার্সনে নিয়ে যাওয়া হবে। সকল ব্যবহারকারীর অ্যাকাউন্ট এবং স্থানীয় ডেটা মুছে ফেলা হবে। এটিকে পূর্বাবস্থায় ফেরানো যাবে না।</translation>
 <translation id="2046702855113914483">রামেন</translation>
@@ -3815,6 +3819,7 @@
 <translation id="4594577641390224176">সিস্টেম সম্পর্কিত পৃষ্ঠা খুঁজছেন? দেখুন</translation>
 <translation id="4595560905247879544">অ্যাপ্লিকেশান এবং এক্সটেনশানগুলি শুধুমাত্র পরিচালক (<ph name="CUSTODIAN_NAME" />) দ্বারা পরিবর্তন করা যাবে।</translation>
 <translation id="4596295440756783523">আপনার ফাইলে এমন শংসাপত্রগুলি রয়েছে যা এই সার্ভারগুলিকে শনাক্ত করে</translation>
+<translation id="4598345735110653698">'পাসকী' ম্যানেজ করুন</translation>
 <translation id="4598556348158889687">সঞ্চয়স্থান ব্যবস্থাপনা</translation>
 <translation id="4598776695426288251">একাধিক ডিভাইস থেকে ওয়াই ফাই পাওয়া যাচ্ছে</translation>
 <translation id="4601426376352205922">'পড়া হয়নি' হিসেবে চিহ্নিত করুন</translation>
@@ -4041,6 +4046,7 @@
 <translation id="4823894915586516138">আপনি ফোন থেকে যেকোনও তথ্য অ্যাক্সেস করলে সেটি সহ এই <ph name="DEVICE_TYPE" />-এ আপনার ডেটা এই পিন বা পাসওয়ার্ডের মাধ্যমে সুরক্ষিত রাখা যায়</translation>
 <translation id="4824037980212326045">Linux-এর ব্যাক-আপ এবং রিস্টোর করা</translation>
 <translation id="4824958205181053313">সিঙ্ক বাতিল করতে চান?</translation>
+<translation id="4825532258163983651">'পাসকী' মুছে ফেলা যাচ্ছে না</translation>
 <translation id="4827675678516992122">কানেক্ট করা যায়নি</translation>
 <translation id="4827784381479890589">Chrome ব্রাউজারে বানান পরীক্ষা করার উন্নত সুবিধা (বানান সংক্রান্ত সাজেশনের জন্য Google-এর কাছে টেক্সট পাঠানো হয়েছে)</translation>
 <translation id="4827904420700932487">এই ছবির QR কোড তৈরি করুন</translation>
@@ -4303,6 +4309,7 @@
 <translation id="5087249366037322692">একটি তৃতীয় পক্ষের দ্বারা যোগ করা হয়েছে</translation>
 <translation id="5087580092889165836">কার্ড জুড়ুন</translation>
 <translation id="5088534251099454936">RSA এনক্রিপশানের সাথে PKCS #1 SHA-512</translation>
+<translation id="5089763948477033443">সাইড প্যানেল ছোট বড় করার হ্যান্ডেল</translation>
 <translation id="5090637338841444533">আপনার ক্যামেরার পজিশন ট্র্যাক করার অনুমতি দেওয়া হয়নি</translation>
 <translation id="5093569275467863761">ব্যাক-ফরোয়ার্ড ক্যাশেতে স্টোর করা ছদ্মবেশী সাবফ্রেম: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Files অ্যাপ বা অন্য অ্যাপ থেকে এই অ্যাপে কাজ করে এমন ফাইল খুলতে ও এডিট করতে পারবেন। ডিফল্ট হিসেবে কোন কোন ফাইল এই অ্যাপে খোলে তা নিয়ন্ত্রণ করতে, <ph name="BEGIN_LINK" />আপনার ডিভাইসে কীভাবে ডিফল্ট হিসেবে অ্যাপ সেট করবেন তা জানুন<ph name="END_LINK" />।</translation>
@@ -4468,6 +4475,7 @@
 <translation id="5258992782919386492">এই ডিভাইসে ইনস্টল করুন</translation>
 <translation id="5260334392110301220">স্মার্ট উদ্ধৃতি চিহ্ন</translation>
 <translation id="5260508466980570042">আপনার ইমেল আইডি বা পাসওয়ার্ড যাচাই হয়নি৷ অনুগ্রহ করে আবার চেষ্টা করুন৷</translation>
+<translation id="5260958083445173099">সম্ভব হলে, ওয়েবসাইট আপনার পছন্দের ভাষায় কন্টেন্ট দেখাবে</translation>
 <translation id="5261683757250193089">ওয়েব স্টোরে খুলুন</translation>
 <translation id="5262178194499261222">পাসওয়ার্ড সরান</translation>
 <translation id="5262784498883614021">নেটওয়ার্কে অটোমেটিক কানেক্ট করুন</translation>
@@ -4508,6 +4516,7 @@
 <translation id="5294097441441645251">অবশ্যই একটি ছোট হাতের অক্ষর বা আন্ডারস্কোর দিয়ে শুরু করতে হবে</translation>
 <translation id="5294618183559481278">আপনার ডিভাইসের সামনে ব্যক্তিদের শনাক্ত করার জন্য আপনার <ph name="DEVICE_TYPE" /> বিল্ট-ইন সেন্সর ব্যবহার করে। আপনার ডিভাইসে ঝটপট সমস্ত ডেটা প্রসেস করা হয় এবং তারপরে মুছে ফেলা হয়। Google-এ কখনই সেন্সর ডেটা পাঠানো হয় না। <ph name="LINK_BEGIN" />আরও জানুন<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">পড়ে শোনানোর সুবিধা পান যাতে স্ক্রিনের দিকে না তাকিয়েই ডিভাইস ব্যবহার করতে পারেন। কানেক্ট করা ডিভাইসের সাথে ব্রেইল ফিডব্যাকের সুবিধা উপলভ্য।</translation>
+<translation id="5297005732522718715">টেথারিং কনফিগারেশন রিফ্রেশ করুন</translation>
 <translation id="5297082477358294722">পাসওয়ার্ড সেভ করা হয়েছে। <ph name="SAVED_PASSWORDS_STORE" />-এ সেভ করা পাসওয়ার্ড দেখুন এবং ম্যানেজ করুন।</translation>
 <translation id="5297946558563358707">যখন অন্য কেউ আপনার স্ক্রিনের দিকে তাকায়, তখন আপনার স্ক্রিনের নিচে ডানদিকে গোপনীয়তা আইকনটি দেখান</translation>
 <translation id="5298219193514155779">থিম তৈরি করেছেন</translation>
@@ -4678,6 +4687,7 @@
 <translation id="5466374726908360271">“<ph name="SEARCH_TERMS" />” পে&amp;স্ট করে সার্চ করুন</translation>
 <translation id="5467207440419968613"><ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> ব্লক করা হয়েছে</translation>
 <translation id="5468173180030470402">ফাইল শেয়ার বিকল্পটি খোঁজা হচ্ছে</translation>
+<translation id="5468330507528805311">টেথারিং স্ট্যাটাস:</translation>
 <translation id="5468881191994555667">ফাইল বেছে নিন</translation>
 <translation id="5469852975082458401">টেক্সট কার্সরের মাধ্যমে আপনি একটি পৃষ্ঠা থেকে অন্য পৃষ্ঠাতে নেভিগেট করতে পারবেন। ক্যারেট ব্রাউজিং বন্ধ করার জন্য F7 শর্টকাট প্রেস করুন।</translation>
 <translation id="5470735824776589490">আপনার ডিভাইস পাওয়ারওয়াশের মাধ্যমে রিসেট করার আগে একবার রিস্টার্ট করা প্রয়োজন। <ph name="LINK_BEGIN" />আরও জানুন<ph name="LINK_END" /></translation>
@@ -4830,7 +4840,6 @@
 <translation id="5601503069213153581">পিন</translation>
 <translation id="5601823921345337195">MIDI ডিভাইসের সাথে কানেক্ট করার অনুমতি দেওয়া হয়নি</translation>
 <translation id="5602765853043467355">এই ডিভাইসের বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং আরও অনেক কিছু খালি করুন</translation>
-<translation id="5605623530403479164">অন্যান্য সার্চ ইঞ্জিন</translation>
 <translation id="5605758115928394442">এটি যে আপনি তা কনফার্ম করতে আপনার ফোনে একটি বিজ্ঞপ্তি পাঠানো হয়েছে।</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{এই এক্সটেনশন ব্লক করা আছে}one{এই এক্সটেনশন ব্লক করা আছে}other{এই এক্সটেনশন ব্লক করা আছে}}</translation>
 <translation id="560834977503641186">Wi-Fi সিঙ্ক, আরও জানুন</translation>
@@ -4955,6 +4964,7 @@
 <translation id="5734362860645681824">যোগাযোগগুলি</translation>
 <translation id="5734697361979786483">'ফাইল শেয়ার' যোগ করুন</translation>
 <translation id="5736796278325406685">অনুগ্রহ করে একটি সঠিক ইউজারনেম লিখুন</translation>
+<translation id="5738093759615225354">আপনার কম্পিউটারে সাইন-ইন করতে, এই 'পাসকী' প্রয়োজন হবে</translation>
 <translation id="5739017626473506901">একটি স্কুল অ্যাকাউন্ট যোগ করার জন্য <ph name="USER_NAME" />-কে সাহায্য করতে সাইন-ইন করুন</translation>
 <translation id="5739235828260127894">যাচাইকরণের জন্য অপেক্ষা করা হচ্ছে। <ph name="LINK_BEGIN" />আরও জানুন<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">খুব বড়</translation>
@@ -5116,6 +5126,7 @@
 <translation id="589541317545606110"><ph name="VISUAL_SEARCH_PROVIDER" /> ব্যবহার করে পৃষ্ঠা সার্চ করুন</translation>
 <translation id="5896436821193322561">অনুমতি দেবেন না</translation>
 <translation id="5900186025777217044">Smart Lock পরিবর্তন করা হয়েছে</translation>
+<translation id="5900243355162006650">টেথারিং কনফিগারেশন:</translation>
 <translation id="5900302528761731119">Google প্রোফাইল ফটো </translation>
 <translation id="590036993063074298">মিররিং কোয়ালিটির বিবরণ</translation>
 <translation id="5901069264981746702">আপনার আঙুলের ছাপ সংক্রান্ত ডেটা সুরক্ষিতভাবে স্টোর করে রাখা হয় এবং <ph name="DEVICE_TYPE" /> থেকে হারিয়ে যায় না। <ph name="LINK_BEGIN" />আরও জানুন<ph name="LINK_END" /></translation>
@@ -5130,6 +5141,7 @@
 <translation id="5909379458939060601">এই প্রোফাইল এবং ব্রাউজিং ডেটা মুছে ফেলতে চান?</translation>
 <translation id="5910363049092958439">এই ভাবে ছবি সেভ করুন...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> এখন অফলাইন</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">শর্টকাট ভিউয়ার</translation>
 <translation id="5914724413750400082">মডিউলস (<ph name="MODULUS_NUM_BITS" /> বিট):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5420,6 +5432,7 @@
 <translation id="6196640612572343990">তৃতীয় পক্ষের কুকিজ অবরুদ্ধ করুন</translation>
 <translation id="6196854373336333322">"<ph name="EXTENSION_NAME" />" এক্সটেনশন আপনার প্রক্সী সেটিংস নিয়ন্ত্রণ করছে, যার মানে হল আপনি অনলাইনে যাই করুন না কেন এটি তার পরিবর্তন করতে, সেখানে জোর করে প্রবেশ বা সেটি লুকিয়ে দেখতে পারবে। আপনি যদি বুঝতে না পারেন কেন এই পরিবর্তনটি হয়েছে তাহলে আপনি সম্ভবত এটি চাইছেন না।</translation>
 <translation id="6197128521826316819">এই পৃষ্ঠার QR কোড তৈরি করুন</translation>
+<translation id="6197223946499512637">এই কম্পিউটারে Windows Hello-তে এইসব 'পাসকী' সেভ করা আছে। এগুলি আপনার Google অ্যাকাউন্টে সেভ করা হয়নি।</translation>
 <translation id="6198252989419008588">পিন পরিবর্তন করুন</translation>
 <translation id="6200047250927636406">ফাইল বাতিল করুন</translation>
 <translation id="6200151268994853226">এক্সটেনশন ম্যানেজ করুন</translation>
@@ -5717,6 +5730,7 @@
 <translation id="6482559668224714696">ফুল-স্ক্রিন ম্যাগনিফায়ার</translation>
 <translation id="6483485061007832714">ডাউনলোড করা ফাইলটি খুলুন</translation>
 <translation id="6483805311199035658"><ph name="FILE" /> খোলা হচ্ছে...</translation>
+<translation id="6486301003991593638">'পাসকী' ম্যানেজ করতে, Windows-এর নতুন কোনও ভার্সন ব্যবহার করুন</translation>
 <translation id="6488384360522318064">ভাষা বেছে নিন</translation>
 <translation id="648927581764831596">কিছুই উপলব্ধ নয়</translation>
 <translation id="6490471652906364588">USB-C ডিভাইস (ডান পোর্ট)</translation>
@@ -6305,6 +6319,7 @@
 <translation id="7029307918966275733">Crostini ইনস্টল করা হয়নি। ক্রেডিট দেখার জন্য Crostini ইনস্টল করুন।</translation>
 <translation id="7029809446516969842">পাসওয়ার্ড</translation>
 <translation id="7030304022046916278">URL চেক করতে Safe Browsing-এ পাঠায়</translation>
+<translation id="7030695672997239647">ট্যাবের উপর ডানদিকের মাউস বোতামে ক্লিক করে "গ্রুপে ট্যাব যোগ করুন" বিকল্প বেছে নিন এবং তারপরে "নতুন গ্রুপ" বাছুন</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - সিরিয়াল পোর্ট কানেক্ট করা হয়েছে</translation>
 <translation id="7033616203784997570">৬২টির বেশি অক্ষর লেখা যাবে না</translation>
 <translation id="7034692021407794547">বিলিং নিয়ন্ত্রণ সহ অ্যাডমিনিস্ট্রেটরদের প্রথমে অ্যাডমিন কনসোলের Google Meet হার্ডওয়্যার বিভাগে Google Meet হার্ডওয়্যারের পরিষেবার শর্তাবলী মেনে নিতে হবে।</translation>
@@ -7406,6 +7421,7 @@
 <translation id="8101987792947961127">পরবর্তী রিবুটে পাওয়ারওয়াশ প্রয়োজন</translation>
 <translation id="81020759409809034">লোকাল লোকেশন</translation>
 <translation id="8102139037507939978">System_logs.txt থেকে ব্যক্তিগতভাবে শনাক্তকরণযোগ্য তথ্য সরিয়ে দিন</translation>
+<translation id="810362914482827094">'পাসকী' সার্চ করুন</translation>
 <translation id="8104088837833760645">ই-সিম প্রোফাইল ডাউনলোড করুন</translation>
 <translation id="8105368624971345109">বন্ধ করুন</translation>
 <translation id="8107015733319732394">আপনার <ph name="DEVICE_TYPE" /> এ Google Play Store ইনস্টল করা হচ্ছে। এতে কয়েক মিনিট সময় লাগতে পারে।</translation>
@@ -7853,6 +7869,7 @@
 <translation id="8557022314818157177">আপনার আঙ্গুলের ছাপ ক্যাপচার না করা পর্যন্ত 'নিরাপত্তা কী'-তে টাচ করতে থাকুন</translation>
 <translation id="8557180006508471423">আপনার Mac-এর অবস্থান ভিত্তিক পরিষেবায় "Google Chrome" চালু করুন</translation>
 <translation id="8557856025359704738">পরবর্তী ডাউনলোড <ph name="NEXT_DATE_DOWNLOAD" />-এ উপলভ্য হবে।</translation>
+<translation id="8559858985063901027">পাসকী</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{সবকটি &amp;নতুন উইন্ডোতে খুলুন}=1{&amp;নতুন উইন্ডোতে খুলুন}one{সবকটি ({COUNT}টি) &amp;নতুন উইন্ডোতে খুলুন}other{সবকটি ({COUNT}টি) &amp;নতুন উইন্ডোতে খুলুন}}</translation>
 <translation id="8561206103590473338">হাতি</translation>
 <translation id="8561565784790166472">সাবধানতার সাথে এগিয়ে যান</translation>
@@ -7965,6 +7982,7 @@
 <translation id="8666759526542103597">ব্রাউজার ভিত্তিক পছন্দ অনুযায়ী বিজ্ঞাপন বেছে নেওয়া সম্পর্কে</translation>
 <translation id="8667328578593601900"><ph name="FULLSCREEN_ORIGIN" /> এখন সম্পূর্ণ স্ক্রীণে আছে এবং আপনার মাউস কার্সারকে অক্ষম করেছে৷</translation>
 <translation id="8667760277771450375">বিজ্ঞাপন স্প্যাম এবং জালিয়াতি বন্ধ করতে সাইটগুলিকে চালু করার সময় আমরা ক্রস-সাইট ট্র্যাকিং সীমাবদ্ধ করার উপায়গুলি খুঁজছি।</translation>
+<translation id="8668378421690365723">আপনার ডিভাইস সঠিকভাবে আর কাজ নাও করতে পারে এবং এতে নিরাপত্তা ও পারফর্ম্যান্স সংক্রান্ত সমস্যা দেখা দিতে পারে।</translation>
 <translation id="8669284339312441707">ওয়ার্মার</translation>
 <translation id="8670537393737592796">এখানে চটপট ফিরে আসতে, ইনস্টল বোতামে ক্লিক করে <ph name="APP_NAME" /> ইনস্টল করুন</translation>
 <translation id="867085395664725367">সার্ভারে সাময়িক সমস্যা হয়েছে।</translation>
@@ -7979,6 +7997,7 @@
 <translation id="8677212948402625567">সবগুলি আড়াল করুন...</translation>
 <translation id="867767487203716855">পরবর্তী আপডেট</translation>
 <translation id="8677859815076891398">কোনও অ্যালবাম নেই। <ph name="LINK_BEGIN" />Google Photos<ph name="LINK_END" />-এ একটি অ্যালবাম তৈরি করুন।</translation>
+<translation id="8678378565142776698">রিস্টার্ট করুন ও অটোমেটিক আপডেট পান</translation>
 <translation id="8678538439778360739">আপনার সিঙ্ক পাসফ্রেজ দিয়ে <ph name="TIME" />-এ ডেটা এনক্রিপ্ট করা হয়েছে। এর মধ্যে Google Pay-এর পেমেন্ট পদ্ধতি ও ঠিকানা অন্তর্ভুক্ত থাকে না।</translation>
 <translation id="8678582529642151449">ট্যাব সঙ্কুচিত হয় না</translation>
 <translation id="8678933587484842200">আপনি কীভাবে এই অ্যাপটি চালু করতে চান?</translation>
@@ -8226,6 +8245,7 @@
 <translation id="8910987510378294980">ডিভাইসের তালিকা লুকান</translation>
 <translation id="8912362522468806198">Google অ্যাকাউন্ট</translation>
 <translation id="8912810933860534797">অটো-স্ক্যান চালু করুন</translation>
+<translation id="8915307125957890427">ট্যাবের উপর ডানদিকের মাউস বোতামে ক্লিক করে "গ্রুপে ট্যাব যোগ করুন" বিকল্প বেছে নিন এবং তারপরে "নতুন গ্রুপ" বাছুন</translation>
 <translation id="8915370057835397490">লোড করার প্রস্তাব</translation>
 <translation id="8916476537757519021">ছদ্মবেশী সাবফ্রেম: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" />-এর <ph name="DEVICE_TYPE" /></translation>
@@ -8300,6 +8320,7 @@
 <translation id="8986362086234534611">ভুলে যান</translation>
 <translation id="8986494364107987395">ব্যবহারের পরিসংখ্যান এবং ক্র্যাশ প্রতিবেদনগুলি স্বয়ংক্রিয়ভাবে Google-এ পাঠান</translation>
 <translation id="8987927404178983737">মাস</translation>
+<translation id="8989359959810288806">টেথারিং স্ট্যাটাস রিফ্রেশ করুন</translation>
 <translation id="8991520179165052608">সাইটটি আপনার মাইক্রোফোন ব্যবহার করতে পারে</translation>
 <translation id="899384117894244799">বিধিনিষেধযুক্ত ব্যবহারকারীকে সরান</translation>
 <translation id="899403249577094719">Netscape সার্টিফিকেট বেস ইউআরএল</translation>
@@ -8446,6 +8467,7 @@
 <translation id="9120693811286642342"><ph name="BEGIN_PARAGRAPH1" />সেরা অভিজ্ঞতা পেতে, আপনার ইন্টার্নাল ডিস্কে <ph name="DEVICE_OS" /> ইনস্টল করুন। এছাড়াও, পরে এটি লগ-ইন স্ক্রিন থেকে ইনস্টল করতে পারবেন।<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />ইনস্টল করার জন্য প্রস্তুত না থাকলে, এটা করে দেখতে, ইউএসবি ব্যবহার করে চালিয়ে দেখতে পারেন। এটি আপনার বর্তমান OS ও ডেটা রাখবে তবে হয়ত দেখবেন যে, স্টোরেজ ও পারফর্ম্যান্সের সীমা কমে গেছে।<ph name="END_PARAGRAPH2" /></translation>
 <translation id="9121814364785106365">পিন করা ট্যাব হিসেবে খুলুন</translation>
+<translation id="9123287046453017203">আপনার ডিভাইস আপ-টু-ডেট নেই</translation>
 <translation id="9124003689441359348">সংরক্ষিত পাসওয়ার্ডগুলি এখানে দেখা যাবে</translation>
 <translation id="9126149354162942022">কার্সরের রঙ</translation>
 <translation id="9128317794749765148">সেট-আপ করা যায়নি</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 2e4a364c..f8f899f7 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -4690,7 +4690,7 @@
 <translation id="5470735824776589490">Prije vraćanja na zadane vrijednosti pomoću Powerwasha potrebno je ponovo pokrenuti uređaj. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Zdravo! Ja sam vaš glas za pretvaranje teksta u govor.</translation>
 <translation id="5472627187093107397">Sačuvaj lozinke za ovu web lokaciju</translation>
-<translation id="5473062644742711742">Pronađite više alata za pristupačnost u Chrome web-trgovini</translation>
+<translation id="5473062644742711742">Pronađite više alata za pristupačnost u Chrome Web trgovini</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">Ako nastavite, slažete se da ovaj uređaj može također automatski preuzimati i instalirati ažuriranja i aplikacije od Googlea, mobilnog operatera vašeg djeteta i proizvođača ovog uređaja, uz mogući prijenos podataka na mobilnoj mreži. Moguće je da neke od tih aplikacija nude kupovinu unutar aplikacija.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN mora sadržavati najmanje jedan znak.}one{PIN mora sadržavati najmanje # znak.}few{PIN mora sadržavati najmanje # znaka.}other{PIN mora sadržavati najmanje # znakova.}}</translation>
@@ -4838,7 +4838,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Nije dozvoljeno povezivanje na MIDI uređaje</translation>
 <translation id="5602765853043467355">Obriši oznake, historiju, lozinke i drugo s ovog uređaja</translation>
-<translation id="5605623530403479164">Ostali pretraživači</translation>
 <translation id="5605758115928394442">Na vaš telefon je poslano obavještenje da potvrdimo vaš identitet.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Ova ekstenzija je blokirana}one{Ove ekstenzije su blokirane}few{Ove ekstenzije su blokirane}other{Ove ekstenzije su blokirane}}</translation>
 <translation id="560834977503641186">WiFi sinhronizacija, saznajte više</translation>
@@ -5139,6 +5138,7 @@
 <translation id="5909379458939060601">Izbrisati ovaj profil i podatke o pregledanju?</translation>
 <translation id="5910363049092958439">Sa&amp;čuvaj sliku kao…</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> je van mreže</translation>
+<translation id="5911030830365207728">Google Prevodilac</translation>
 <translation id="5911533659001334206">Pregled prečaca</translation>
 <translation id="5914724413750400082">Moduli (<ph name="MODULUS_NUM_BITS" /> bitova):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index b86bd51..4f2c8bf 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Utilitzar el micròfon i la càmera</translation>
 <translation id="1005333234656240382">Vols activar la depuració d'ADB?</translation>
 <translation id="1006873397406093306">Aquesta extensió pot llegir i modificar les teves dades als llocs web. Pots controlar a quins llocs web pot accedir l'extensió.</translation>
+<translation id="1007057452468855774">Activa Google Play Store</translation>
 <translation id="1008186147501209563">Exporta les adreces d'interès</translation>
 <translation id="1008557486741366299">Ara no</translation>
 <translation id="1009476156254802388">Ubicació de <ph name="WEB_DRIVE" /></translation>
 <translation id="1009663062402466586">Els controls de joc ja estan disponibles</translation>
 <translation id="1010498023906173788">Aquesta pestanya està connectada a un port en sèrie.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Pàgina que no respon}other{Pàgines que no responen}}</translation>
+<translation id="1011003645819296594">Dispositius desats</translation>
 <translation id="1011355516189274711">Volum de text a parla</translation>
 <translation id="1012794136286421601">S'estan sincronitzant els documents, els fulls de càlcul, les diapositives i els dibuixos. Obriu l'aplicació Google Drive per accedir-hi en línia o fora de línia.</translation>
 <translation id="1012876632442809908">Dispositiu USB-C (port frontal)</translation>
@@ -491,6 +493,7 @@
 <translation id="1470350905258700113">Utilitza aquest dispositiu</translation>
 <translation id="1470946456740188591">Per activar o desactivar la navegació amb cursor de text, utilitza la drecera Ctrl+Cerca+7</translation>
 <translation id="1472675084647422956">Mostra'n més</translation>
+<translation id="1473223074251193484">Defineix la configuració de la compartició de xarxa</translation>
 <translation id="1474785664565228650">El canvi a l'opció de configuració del micròfon requereix reiniciar Parallels Desktop. Fes-ho per continuar.</translation>
 <translation id="1474893630593443211">Més control sobre els anuncis que veus</translation>
 <translation id="1475502736924165259">Tens certificats arxivats que no s'ajusten a cap de les altres categories</translation>
@@ -1113,6 +1116,7 @@
 <translation id="2044014337866019681">Comprova que estàs verificant <ph name="ACCOUNT" /> per desbloquejar la sessió.</translation>
 <translation id="204497730941176055">Nom de plantilla de certificat de Microsoft</translation>
 <translation id="2045117674524495717">Aplicació d'ajuda de les tecles de drecera</translation>
+<translation id="2045211794962848221">No tornaràs a veure aquest missatge concret</translation>
 <translation id="2045969484888636535">Continua bloquejant les galetes</translation>
 <translation id="204622017488417136">Es restablirà la versió de Chrome que hi havia instal·lada anteriorment al dispositiu. S'eliminaran tots els comptes d'usuari i les dades desades al dispositiu. Aquesta acció no es pot desfer.</translation>
 <translation id="2046702855113914483">Ramen</translation>
@@ -3797,6 +3801,7 @@
 <translation id="4594577641390224176">Busques la pàgina d'informació del sistema? Ves a</translation>
 <translation id="4595560905247879544">Només el gestor (<ph name="CUSTODIAN_NAME" />) pot modificar les aplicacions i les extensions.</translation>
 <translation id="4596295440756783523">Tens certificats arxivats que identifiquen aquests servidors</translation>
+<translation id="4598345735110653698">Gestiona les claus d'accés</translation>
 <translation id="4598556348158889687">Gestió de l'emmagatzematge</translation>
 <translation id="4598776695426288251">Wi-Fi disponible mitjançant diversos dispositius</translation>
 <translation id="4601426376352205922">Marca com a no llegit</translation>
@@ -4022,6 +4027,7 @@
 <translation id="4823894915586516138">Aquest PIN o contrasenya protegeix les teves dades en aquest <ph name="DEVICE_TYPE" />, inclosa la informació a què accedeixis des del telèfon</translation>
 <translation id="4824037980212326045">Còpia de seguretat i restauració de Linux</translation>
 <translation id="4824958205181053313">Vols cancel·lar la sincronització?</translation>
+<translation id="4825532258163983651">La clau d'accés no es pot suprimir</translation>
 <translation id="4827675678516992122">No s'ha pogut connectar</translation>
 <translation id="4827784381479890589">Millora el corrector ortogràfic del navegador Chrome (el text s'envia a Google per obtenir suggeriments ortogràfics)</translation>
 <translation id="4827904420700932487">Crea un codi QR d'aquesta imatge</translation>
@@ -4284,6 +4290,7 @@
 <translation id="5087249366037322692">Afegida per tercers</translation>
 <translation id="5087580092889165836">Afegeix una targeta</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 amb encriptació RSA</translation>
+<translation id="5089763948477033443">Ansa de canvi de mida del tauler lateral</translation>
 <translation id="5090637338841444533">Sense permís per fer un seguiment de la posició de la càmera</translation>
 <translation id="5093569275467863761">Submarc d'incògnit desat a la memòria cau back-forward: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Amb aquesta aplicació pots obrir i editar fitxers admesos des de l'aplicació Fitxers o des d'altres aplicacions. Si vols controlar quins fitxers s'obren amb aquesta aplicació de manera predeterminada, <ph name="BEGIN_LINK" />obtén més informació sobre com pots establir aplicacions predeterminades al dispositiu<ph name="END_LINK" />.</translation>
@@ -4450,6 +4457,7 @@
 <translation id="5258992782919386492">Instal·la en aquest dispositiu</translation>
 <translation id="5260334392110301220">Cometes intel·ligents</translation>
 <translation id="5260508466980570042">No s'ha pogut verificar el correu electrònic o la contrasenya. Torna-ho a provar.</translation>
+<translation id="5260958083445173099">Quan sigui possible, els llocs web mostraran el contingut en els teus idiomes preferits</translation>
 <translation id="5261683757250193089">Obre a Web Store</translation>
 <translation id="5262178194499261222">Suprimeix la contrasenya</translation>
 <translation id="5262784498883614021">Connecta a la xarxa automàticament</translation>
@@ -4490,6 +4498,7 @@
 <translation id="5294097441441645251">Ha de començar amb un caràcter en minúscula o una ratlla baixa</translation>
 <translation id="5294618183559481278"><ph name="DEVICE_TYPE" /> utilitza un sensor integrat per detectar persones davant del dispositiu. Totes les dades es processen immediatament al dispositiu i, a continuació, se suprimeixen. Les dades del sensor no s'envien mai a Google. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Escolta avisos de veu per poder utilitzar el dispositiu sense mirar la pantalla. Els avisos en braille estan disponibles amb un dispositiu connectat.</translation>
+<translation id="5297005732522718715">Actualitza la configuració de la compartició de xarxa</translation>
 <translation id="5297082477358294722">S'ha desat la contrasenya. Consulta i gestiona les contrasenyes desades al <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Quan una altra persona miri la teva pantalla, mostra la icona de l'ull de privadesa a la part inferior dreta de la pantalla</translation>
 <translation id="5298219193514155779">Tema creat per</translation>
@@ -4660,6 +4669,7 @@
 <translation id="5466374726908360271">Engan&amp;xa i cerca "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="5467207440419968613">Permisos bloquejats: <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">S'estan cercant usos compartits de fitxers</translation>
+<translation id="5468330507528805311">Estat de la compartició de xarxa:</translation>
 <translation id="5468881191994555667">Tria un fitxer</translation>
 <translation id="5469852975082458401">Pots navegar per les pàgines amb un cursor de text. Prem F7 per desactivar aquesta funció.</translation>
 <translation id="5470735824776589490">Cal reiniciar el dispositiu per poder restablir-lo amb Powerwash. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation>
@@ -4813,7 +4823,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Sense permís per connectar-se a dispositius MIDI</translation>
 <translation id="5602765853043467355">Esborra les adreces d'interès, l'historial, les contrasenyes i altres dades d'aquest dispositiu</translation>
-<translation id="5605623530403479164">Altres motors de cerca</translation>
 <translation id="5605758115928394442">S'ha enviat una notificació al teu telèfon per confirmar la teva identitat.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Aquesta extensió està bloquejada}other{Aquestes extensions estan bloquejades}}</translation>
 <translation id="560834977503641186">Sincronització Wi‑Fi, més informació</translation>
@@ -4936,6 +4945,7 @@
 <translation id="5734362860645681824">Comunicacions</translation>
 <translation id="5734697361979786483">Afegeix compartició de fitxers</translation>
 <translation id="5736796278325406685">Introdueix un nom d'usuari vàlid</translation>
+<translation id="5738093759615225354">Necessites aquesta clau d'accés per iniciar la sessió a l'ordinador</translation>
 <translation id="5739017626473506901">Inicia la sessió per ajudar <ph name="USER_NAME" /> a afegir un compte de centre educatiu</translation>
 <translation id="5739235828260127894">S'està esperant la verificació. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Molt gran</translation>
@@ -5097,6 +5107,7 @@
 <translation id="589541317545606110">Cerca la pàgina amb <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">No permetis</translation>
 <translation id="5900186025777217044">Smart Lock ha canviat</translation>
+<translation id="5900243355162006650">Configuració de la compartició de xarxa:</translation>
 <translation id="5900302528761731119">Foto del perfil de Google</translation>
 <translation id="590036993063074298">Informació sobre la qualitat de la rèplica</translation>
 <translation id="5901069264981746702">Les dades de l'empremta digital s'emmagatzemen de manera segura i no surten mai del <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation>
@@ -5111,6 +5122,7 @@
 <translation id="5909379458939060601">Vols suprimir aquest perfil i les dades de navegació?</translation>
 <translation id="5910363049092958439">De&amp;sa la imatge com a...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> no té connexió</translation>
+<translation id="5911030830365207728">Traductor de Google</translation>
 <translation id="5911533659001334206">Visualitzador de dreceres</translation>
 <translation id="5914724413750400082">Mòdul (<ph name="MODULUS_NUM_BITS" /> bits):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5399,6 +5411,7 @@
 <translation id="6196640612572343990">Bloqueja les galetes de tercers</translation>
 <translation id="6196854373336333322">L'extensió <ph name="EXTENSION_NAME" /> ha passat a controlar la configuració del servidor intermediari. Això vol dir que pot modificar, desfer o espiar qualsevol acció que feu en línia. Si no esteu segur del motiu d'aquest canvi, és possible que no el vulgueu aplicar.</translation>
 <translation id="6197128521826316819">Crea un codi QR d'aquesta pàgina</translation>
+<translation id="6197223946499512637">En aquest ordinador, aquestes claus d'accés estan emmagatzemades a Windows Hello, no al teu Compte de Google.</translation>
 <translation id="6198252989419008588">Canvia el PIN</translation>
 <translation id="6200047250927636406">Descarta el fitxer</translation>
 <translation id="6200151268994853226">Gestiona l'extensió</translation>
@@ -5407,7 +5420,7 @@
 <translation id="6206199626856438589">Se't tancarà la sessió dels llocs web que es mostren, també de les pestanyes obertes</translation>
 <translation id="6206311232642889873">Cop&amp;ia la imatge</translation>
 <translation id="6207200176136643843">Restableix el nivell de zoom predeterminat</translation>
-<translation id="6207937957461833379">País o regió</translation>
+<translation id="6207937957461833379">País/Regió</translation>
 <translation id="6208382900683142153">Els testimonis de confiança milloren la privadesa al web i no poden utilitzar-se per esbrinar qui ets.</translation>
 <translation id="6208521041562685716">S'estan activant les dades mòbils</translation>
 <translation id="6208725777148613371">No s'ha pogut desar a <ph name="WEB_DRIVE" />: <ph name="INTERRUPT_REASON" /></translation>
@@ -5696,6 +5709,7 @@
 <translation id="6482559668224714696">Lupa de pantalla completa</translation>
 <translation id="6483485061007832714">Obre la baixada</translation>
 <translation id="6483805311199035658">S'està obrint <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">Per gestionar les claus d'accés, utilitza una versió més recent de Windows</translation>
 <translation id="6488384360522318064">Selecciona l'idioma</translation>
 <translation id="648927581764831596">No n'hi ha cap de disponible</translation>
 <translation id="6490471652906364588">Dispositiu USB-C (port dret)</translation>
@@ -6282,6 +6296,7 @@
 <translation id="7029307918966275733">Crostini no està instal·lat. Instal·la'l per veure els crèdits.</translation>
 <translation id="7029809446516969842">Contrasenyes</translation>
 <translation id="7030304022046916278">Envia els URL a Navegació segura perquè els comprovi</translation>
+<translation id="7030695672997239647">Fes clic amb el botó dret en una pestanya i selecciona Afegeix una pestanya al grup. A continuació, selecciona Grup nou.</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" />: port en sèrie connectat</translation>
 <translation id="7033616203784997570">El text d'entrada ha de tenir 62 caràcters com a màxim</translation>
 <translation id="7034692021407794547">Un administrador amb privilegis de gestió de la facturació ha d'acceptar primer les condicions del servei del maquinari de Google Meet a la secció de la consola d'administració Maquinari de Google Meet.</translation>
@@ -7384,6 +7399,7 @@
 <translation id="8101987792947961127">Es requereix Powerwash la propera vegada que es reiniciï</translation>
 <translation id="81020759409809034">Ubicació local</translation>
 <translation id="8102139037507939978">Elimina la informació d'identificació personal del fitxer system_logs.txt.</translation>
+<translation id="810362914482827094">Cerca claus d'accés</translation>
 <translation id="8104088837833760645">Baixa el perfil de l'eSIM</translation>
 <translation id="8105368624971345109">Desactiva</translation>
 <translation id="8107015733319732394">S'està instal·lant Google Play Store al teu dispositiu <ph name="DEVICE_TYPE" />. Aquest procés pot tardar uns quants minuts.</translation>
@@ -7832,6 +7848,7 @@
 <translation id="8557022314818157177">Continua tocant la clau de seguretat fins que es capturi l'empremta digital</translation>
 <translation id="8557180006508471423">Activa Google Chrome als serveis d'ubicació del Mac.</translation>
 <translation id="8557856025359704738">La baixada següent serà a les <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Claus d'accés</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Obre-les totes en una finestra &amp;nova}=1{Obre en una finestra &amp;nova}other{Obre-les totes ({COUNT}) en una finestra &amp;nova}}</translation>
 <translation id="8561206103590473338">Elefant</translation>
 <translation id="8561565784790166472">Cal anar amb compte</translation>
@@ -7958,6 +7975,7 @@
 <translation id="8677212948402625567">Redueix-ho tot...</translation>
 <translation id="867767487203716855">Propera actualització</translation>
 <translation id="8677859815076891398">No hi ha cap àlbum. Crea'n un a <ph name="LINK_BEGIN" />Google Fotos<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Reinicia i rep actualitzacions automàtiques</translation>
 <translation id="8678538439778360739">Les dades s'han encriptat amb la teva contrasenya de sincronització el dia <ph name="TIME" />. No s'hi inclouen les formes de pagament ni les adreces de Google Pay.</translation>
 <translation id="8678582529642151449">Les pestanyes no es redueixen</translation>
 <translation id="8678933587484842200">Com voldries que s'iniciés aquesta aplicació?</translation>
@@ -8204,6 +8222,7 @@
 <translation id="8910987510378294980">Amaga la llista de dispositius</translation>
 <translation id="8912362522468806198">Compte de Google</translation>
 <translation id="8912810933860534797">Activa la cerca automàtica</translation>
+<translation id="8915307125957890427">Fes clic amb el botó dret en una pestanya i selecciona Afegeix una pestanya al grup. A continuació, selecciona Grup nou.</translation>
 <translation id="8915370057835397490">S'estan carregant els suggeriments</translation>
 <translation id="8916476537757519021">Submarc d'incògnit: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="DEVICE_TYPE" /> de <ph name="GIVEN_NAME" /></translation>
@@ -8278,6 +8297,7 @@
 <translation id="8986362086234534611">Oblida</translation>
 <translation id="8986494364107987395">Envia automàticament estadístiques d'ús i informes d'error a Google</translation>
 <translation id="8987927404178983737">Mes</translation>
+<translation id="8989359959810288806">Actualitza l'estat de la compartició de xarxa</translation>
 <translation id="8991520179165052608">El lloc web pot utilitzar el micròfon</translation>
 <translation id="899384117894244799">Suprimeix un usuari restringit</translation>
 <translation id="899403249577094719">URL base de certificat de Netscape</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 292fd50..45074d47 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -4813,7 +4813,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Zákaz připojovat se k zařízením MIDI</translation>
 <translation id="5602765853043467355">Vymazat z tohoto zařízení záložky, historii, hesla a další údaje</translation>
-<translation id="5605623530403479164">Jiné vyhledávače</translation>
 <translation id="5605758115928394442">Odeslali jsme vám na telefon oznámení, abychom si ověřili, zda jste to skutečně vy.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Toto rozšíření je blokováno}few{Tato rozšíření jsou blokována}many{Tato rozšíření jsou blokována}other{Tato rozšíření jsou blokována}}</translation>
 <translation id="560834977503641186">Synchronizace Wi-Fi, další informace</translation>
@@ -5110,6 +5109,7 @@
 <translation id="5909379458939060601">Smazat tento profil a údaje o prohlížení?</translation>
 <translation id="5910363049092958439">Uložit o&amp;brázek jako...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> je offline</translation>
+<translation id="5911030830365207728">Překladač Google</translation>
 <translation id="5911533659001334206">Prohlížeč klávesových zkratek</translation>
 <translation id="5914724413750400082">Modul (<ph name="MODULUS_NUM_BITS" /> bitů):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb
index 38dcc4f..26dc820 100644
--- a/chrome/app/resources/generated_resources_cy.xtb
+++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Defnyddio'ch meicroffon a'ch camera</translation>
 <translation id="1005333234656240382">Galluogi dadfygio ADB?</translation>
 <translation id="1006873397406093306">Gall yr estyniad hwn ddarllen a newid eich data ar wefannau. Gallwch reoli pa wefannau y gall yr estyniad gael mynediad atynt.</translation>
+<translation id="1007057452468855774">Troi Google Play Store ymlaen</translation>
 <translation id="1008186147501209563">Allforio nodau tudalen</translation>
 <translation id="1008557486741366299">Nid Nawr</translation>
 <translation id="1009476156254802388">Lleoliad <ph name="WEB_DRIVE" /></translation>
 <translation id="1009663062402466586">Rheolaethau gêm bellach ar gael</translation>
 <translation id="1010498023906173788">Mae'r tab hwn wedi'i gysylltu â phorth cyfresol.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Tudalen Anymatebol}zero{Tudalennau Anymatebol}two{Tudalennau Anymatebol}few{Tudalennau Anymatebol}many{Tudalennau Anymatebol}other{Tudalennau Anymatebol}}</translation>
+<translation id="1011003645819296594">Dyfeisiau a gadwyd</translation>
 <translation id="1011355516189274711">Lefel sain Testun i leferydd</translation>
 <translation id="1012794136286421601">Mae eich ffeiliau Docs, Sheets, Slides, a Drawings yn cael eu cysoni. Agorwch yr ap Google Drive i gael mynediad atynt ar-lein neu all-lein.</translation>
 <translation id="1012876632442809908">Dyfais USB-C (porth blaen)</translation>
@@ -498,6 +500,7 @@
 <translation id="1470350905258700113">Defnyddio'r ddyfais hon</translation>
 <translation id="1470946456740188591">I droi pori caret ymlaen neu ei ddiffodd, defnyddiwch y llwybr byr Ctrl+Search+7</translation>
 <translation id="1472675084647422956">Dangos mwy</translation>
+<translation id="1473223074251193484">Gosod Ffurfwedd Rhannu Cysylltiad</translation>
 <translation id="1474785664565228650">Mae'r newid yn y gosodiad meicroffon yn ei gwneud yn ofynnol i Parallels Desktop ail-lansio. Ail-lansiwch Parallels Desktop i barhau.</translation>
 <translation id="1474893630593443211">Mwy o reolaeth dros yr hysbysebion rydych yn eu gweld</translation>
 <translation id="1475502736924165259">Mae gennych dystysgrifau ar ffeil nad ydynt yn ffitio yn unrhyw un o'r categorïau eraill</translation>
@@ -1128,6 +1131,7 @@
 <translation id="2044014337866019681">Gwnewch yn siŵr eich bod yn dilysu <ph name="ACCOUNT" /> i ddatgloi'r sesiwn.</translation>
 <translation id="204497730941176055">Enw Templed Tystysgrif Microsoft</translation>
 <translation id="2045117674524495717">Cynorthwyydd Llwybr Byr Bysellfwrdd</translation>
+<translation id="2045211794962848221">Ni fyddwch yn gweld y neges benodol hon eto</translation>
 <translation id="2045969484888636535">Parhau i rwystro cwcis</translation>
 <translation id="204622017488417136">Bydd eich dyfais yn cael ei dychwelyd i'r fersiwn a osodwyd yn flaenorol o Chrome. Bydd yr holl gyfrifon defnyddwyr a data lleol yn cael eu tynnu. Nid oes modd dadwneud hyn.</translation>
 <translation id="2046702855113914483">Ramen</translation>
@@ -3817,6 +3821,7 @@
 <translation id="4594577641390224176">Chwilio am dudalen ynghylch y system? Ewch i</translation>
 <translation id="4595560905247879544">Dim ond y rheolwr (<ph name="CUSTODIAN_NAME" />) all newid apiau ac estyniadau.</translation>
 <translation id="4596295440756783523">Mae gennych dystysgrifau ar ffeil sy'n nodi'r gweinyddwyr hyn</translation>
+<translation id="4598345735110653698">Rheoli codau pas</translation>
 <translation id="4598556348158889687">Rheoli'r storfa</translation>
 <translation id="4598776695426288251">Mae Wi-Fi ar gael drwy fwy nag un ddyfais</translation>
 <translation id="4601426376352205922">Marcio fel heb ei Ddarllen</translation>
@@ -4042,6 +4047,7 @@
 <translation id="4823894915586516138">Mae'r PIN neu'r cyfrinair hwn yn amddiffyn eich data ar y ddyfais <ph name="DEVICE_TYPE" /> hon, gan gynnwys unrhyw wybodaeth rydych yn cyrchu o'ch ffôn</translation>
 <translation id="4824037980212326045">Gwneud copi wrth gefn ac adfer Linux</translation>
 <translation id="4824958205181053313">Canslo cysoni?</translation>
+<translation id="4825532258163983651">Methu dileu'r cod pas</translation>
 <translation id="4827675678516992122">Methu â chysylltu</translation>
 <translation id="4827784381479890589">Gwell gwiriad sillafu yn y Porwr Chrome (anfonir testun at Google am awgrymiadau sillafu)</translation>
 <translation id="4827904420700932487">Creu Cod QR ar gyfer y Llun hwn</translation>
@@ -4304,6 +4310,7 @@
 <translation id="5087249366037322692">Ychwanegwyd gan drydydd parti</translation>
 <translation id="5087580092889165836">Ychwanegu cerdyn</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 Gydag Amgryptio RSA</translation>
+<translation id="5089763948477033443">Bachyn Ailfeintio y Panel Ochr</translation>
 <translation id="5090637338841444533">Ni chaniateir i olrhain safle eich camera</translation>
 <translation id="5093569275467863761">Is-ffrâm Anhysbys yn y Storfa Yn ôl/Ymlaen: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Gallwch agor a golygu ffeiliau a gefnogir gyda'r ap hwn o'r ap Files ac apiau eraill. I reoli pa ffeiliau sy'n agor ap hwn yn ddiofyn, <ph name="BEGIN_LINK" />dysgwch sut i osod apiau diofyn ar eich dyfais<ph name="END_LINK" />.</translation>
@@ -4469,6 +4476,7 @@
 <translation id="5258992782919386492">Gosod ar y ddyfais hon</translation>
 <translation id="5260334392110301220">Dyfyniadau Smart</translation>
 <translation id="5260508466980570042">Mae'n ddrwg gennym, ni ellid dilysu'ch e-bost na'ch cyfrinair. Rhowch gynnig arall arni.</translation>
+<translation id="5260958083445173099">Bydd gwefannau yn ymddangos cynnwys yn eich ieithoedd a ffefrir, pan fydd hynny'n bosib</translation>
 <translation id="5261683757250193089">Agor yn Web Store</translation>
 <translation id="5262178194499261222">Tynnu'r cyfrinair</translation>
 <translation id="5262784498883614021">Cysylltu â'r rhwydwaith yn awtomatig</translation>
@@ -4509,6 +4517,7 @@
 <translation id="5294097441441645251">Rhaid iddo ddechrau gyda llythyren fach neu danlinell</translation>
 <translation id="5294618183559481278">Mae'ch <ph name="DEVICE_TYPE" /> yn defnyddio synhwyrydd integredig i ganfod pobl o flaen eich dyfais. Mae data i gyd yn cael eu prosesu ar eich dyfais ar unwaith ac yna yn cael eu dileu. Ni anfonir data synhwyrydd byth at Google. <ph name="LINK_BEGIN" />Dysgu rhagor<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Clywed adborth llafar fel y gallwch ddefnyddio'ch dyfais heb edrych ar y sgrîn. Mae adborth Braille ar gael gyda dyfais gysylltiedig.</translation>
+<translation id="5297005732522718715">Adnewyddu Ffurfwedd Rhannu Cysylltiad</translation>
 <translation id="5297082477358294722">Mae'r cyfrinair wedi'i gadw. Gallwch weld a rheoli cyfrineiriau sydd wedi'u cadw yn eich <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Pan fydd rhywun arall yn edrych ar eich sgrîn, dangoswch yr eicon Llygaid preifatrwydd ar gornel dde isaf eich sgrîn</translation>
 <translation id="5298219193514155779">Crëwyd thema gan</translation>
@@ -4679,6 +4688,7 @@
 <translation id="5466374726908360271">Gl&amp;udo a chwilio am “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="5467207440419968613">Rhwystrwyd <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Wrthi'n chwilio am gyfrannau ffeiliau</translation>
+<translation id="5468330507528805311">Statws Rhannu Cysylltiad:</translation>
 <translation id="5468881191994555667">Dewis ffeil</translation>
 <translation id="5469852975082458401">Gallwch lywio tudalennau gyda chyrchwr testun. Pwyswch F7 i'w ddiffodd.</translation>
 <translation id="5470735824776589490">Rhaid ailgychwyn cyn y gellir ailosod eich dyfais gyda Powerwash. <ph name="LINK_BEGIN" />Dysgu rhagor<ph name="LINK_END" /></translation>
@@ -4831,7 +4841,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Ni chaniateir cysylltu â dyfeisiau MIDI</translation>
 <translation id="5602765853043467355">Clirio nodau tudalen, hanes, cyfrineiriau a rhagor o'r ddyfais hon</translation>
-<translation id="5605623530403479164">Peiriannau chwilio eraill</translation>
 <translation id="5605758115928394442">Anfonwyd hysbysiad i'ch ffôn i gadarnhau mai chi sydd yno.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Mae'r estyniad hwn wedi'i rwystro}zero{Mae'r estyniadau hyn wedi'u rhwystro}two{Mae'r estyniadau hyn wedi'u rhwystro}few{Mae'r estyniadau hyn wedi'u rhwystro}many{Mae'r estyniadau hyn wedi'u rhwystro}other{Mae'r estyniadau hyn wedi'u rhwystro}}</translation>
 <translation id="560834977503641186">Cysoni Wi-Fi, Dysgu Rhagor</translation>
@@ -4955,6 +4964,7 @@
 <translation id="5734362860645681824">Cyfathrebiadau</translation>
 <translation id="5734697361979786483">Ychwanegu cyfran ffeil</translation>
 <translation id="5736796278325406685">Rhowch enw defnyddiwr dilys</translation>
+<translation id="5738093759615225354">Mae angen y cod pas hwn arnoch i fewngofnodi i'ch cyfrifiadur</translation>
 <translation id="5739017626473506901">Mewngofnodwch i helpu <ph name="USER_NAME" /> i ychwanegu cyfrif ysgol</translation>
 <translation id="5739235828260127894">Yn aros am gadarnhad. <ph name="LINK_BEGIN" />Dysgu rhagor<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Mawr iawn</translation>
@@ -5116,6 +5126,7 @@
 <translation id="589541317545606110">Chwilio Tudalen gyda <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Peidio â Chaniatáu</translation>
 <translation id="5900186025777217044">Mae Smart Lock wedi newid</translation>
+<translation id="5900243355162006650">Ffurfweddiad Rhannu Cysylltiad:</translation>
 <translation id="5900302528761731119">Llun proffil Google</translation>
 <translation id="590036993063074298">Manylion Ansawdd Adlewyrchu</translation>
 <translation id="5901069264981746702">Mae eich data ôl bys wedi'u storio yn ddiogel a byth yn gadael eich <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Dysgu rhagor<ph name="LINK_END" /></translation>
@@ -5130,6 +5141,7 @@
 <translation id="5909379458939060601">Dileu'r proffil hwn a'i ddata pori?</translation>
 <translation id="5910363049092958439">Ca&amp;dw Llun Fel...</translation>
 <translation id="5910726859585389579">Mae <ph name="DEVICE_TYPE" /> all-lein</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">Gwyliwr llwybrau byr</translation>
 <translation id="5914724413750400082">Modwlws (<ph name="MODULUS_NUM_BITS" /> bit):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5419,6 +5431,7 @@
 <translation id="6196640612572343990">Rhwystro cwcis trydydd parti</translation>
 <translation id="6196854373336333322">Mae'r estyniad "<ph name="EXTENSION_NAME" />" wedi cymryd rheolaeth o'ch gosodiadau dirprwyol, sy'n golygu y gall newid, torri neu glustfeinio ar unrhyw beth a wnewch ar-lein. Os nad ydych yn siŵr pam y digwyddodd y newid hwn, mae'n debyg nad ydych ei eisiau.</translation>
 <translation id="6197128521826316819">Creu Cod QR ar gyfer y Dudalen hon</translation>
+<translation id="6197223946499512637">Mae'r allweddi hyn yn cael eu storio yn Windows Hello ar y cyfrifiadur hwn. Nid ydynt yn cael eu cadw i'ch Cyfrif Google.</translation>
 <translation id="6198252989419008588">Newid PIN</translation>
 <translation id="6200047250927636406">Gwaredu ffeil</translation>
 <translation id="6200151268994853226">Rheoli'r Estyniad</translation>
@@ -5716,6 +5729,7 @@
 <translation id="6482559668224714696">Chwyddwr sgrîn lawn</translation>
 <translation id="6483485061007832714">Agor lawrlwythiad</translation>
 <translation id="6483805311199035658">Wrthi'n agor <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">I reoli codau pas, defnyddiwch fersiwn mwy diweddar o Windows</translation>
 <translation id="6488384360522318064">Dewis iaith</translation>
 <translation id="648927581764831596">Dim ar gael</translation>
 <translation id="6490471652906364588">Dyfais USB-C (porth de)</translation>
@@ -6310,6 +6324,7 @@
 <translation id="7029307918966275733">Nid yw Crostini wedi'i osod. Gosodwch Crostini i weld credydau.</translation>
 <translation id="7029809446516969842">Cyfrineiriau</translation>
 <translation id="7030304022046916278">Yn anfon cyfeiriadau URL i Pori'n Ddiogel i'w gwirio</translation>
+<translation id="7030695672997239647">De-gliciwch ar dab a dewiswch "Ychwanegu'r Tab at Grŵp" a dewiswch "Grŵp newydd"</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - Mae'r porth cyfresol wedi'i gysylltu</translation>
 <translation id="7033616203784997570">Rhaid i'r mewnbwn fod o leiaf 62 nod</translation>
 <translation id="7034692021407794547">Rhaid i weinyddwr sydd â breintiau Rheoli Biliau dderbyn Telerau Gwasanaeth Caledwedd Google Meet yn adran Caledwedd Google Meet y Panel gweinyddwr yn gyntaf.</translation>
@@ -7411,6 +7426,7 @@
 <translation id="8101987792947961127">Mae angen Powerwash ar yr ailgychwyn nesaf</translation>
 <translation id="81020759409809034">Lleoliad Lleol</translation>
 <translation id="8102139037507939978">Tynnu Gwybodaeth Adnabod Bersonol o system_logs.txt.</translation>
+<translation id="810362914482827094">Chwilio codau pas</translation>
 <translation id="8104088837833760645">Lawrlwytho proffil eSIM</translation>
 <translation id="8105368624971345109">Diffodd</translation>
 <translation id="8107015733319732394">Yn gosod Google Play Store ar eich <ph name="DEVICE_TYPE" />. Gallai gymryd ychydig funudau.</translation>
@@ -7858,6 +7874,7 @@
 <translation id="8557022314818157177">Parhewch i gyffwrdd â'ch allwedd ddiogelwch nes bod eich olion bysedd wedi'i dynnu</translation>
 <translation id="8557180006508471423">Trowch "Google Chrome" ymlaen yn y Gwasanaethau Lleoliad ar eich Mac</translation>
 <translation id="8557856025359704738">Mae'r lawrlwythiad nesaf am <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Codau pas</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Agor Pob Un mewn &amp;Ffenestr Newydd}=1{Agor mewn &amp;Ffenestr Newydd}two{Agor Pob Un ({COUNT}) mewn &amp;Ffenestr Newydd}few{Agor Pob Un ({COUNT}) mewn &amp;Ffenestr Newydd}many{Agor Pob Un ({COUNT}) mewn &amp;Ffenestr Newydd}other{Agor Pob Un ({COUNT}) mewn &amp;Ffenestr Newydd}}</translation>
 <translation id="8561206103590473338">Eliffant</translation>
 <translation id="8561565784790166472">Parhewch yn ofalus</translation>
@@ -7984,6 +8001,7 @@
 <translation id="8677212948402625567">Crebachu popeth...</translation>
 <translation id="867767487203716855">Diweddariad nesaf</translation>
 <translation id="8677859815076891398">Dim albymau. Creu albwm yn <ph name="LINK_BEGIN" />Google Photos<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Ailgychwyn a chael diweddariadau awtomatig</translation>
 <translation id="8678538439778360739">Amgryptiwyd data â'ch cyfrinair cysoni am <ph name="TIME" />. Nid yw hyn yn cynnwys dulliau talu a chyfeiriadau gan Google Pay.</translation>
 <translation id="8678582529642151449">Nid yw tabiau yn crebachu</translation>
 <translation id="8678933587484842200">Sut hoffech i'r ap hwn gael ei lansio?</translation>
@@ -8234,6 +8252,7 @@
 <translation id="8910987510378294980">Cuddio'r rhestr o ddyfeisiau</translation>
 <translation id="8912362522468806198">Cyfrif Google</translation>
 <translation id="8912810933860534797">Galluogi awtosganio</translation>
+<translation id="8915307125957890427">De-gliciwch ar dab a dewiswch "Ychwanegu'r tab at grŵp" a dewiswch "Grŵp newydd"</translation>
 <translation id="8915370057835397490">Wrthi'n llwytho awgrym</translation>
 <translation id="8916476537757519021">Is-ffrâm Anhysbys: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="DEVICE_TYPE" /> <ph name="GIVEN_NAME" /></translation>
@@ -8308,6 +8327,7 @@
 <translation id="8986362086234534611">Anghofio</translation>
 <translation id="8986494364107987395">Anfon ystadegau defnydd ac adroddiadau damweiniau at Google yn awtomatig</translation>
 <translation id="8987927404178983737">Mis</translation>
+<translation id="8989359959810288806">Ail-lwytho Statws Rhannu Cysylltiad</translation>
 <translation id="8991520179165052608">Gall y wefan ddefnyddio eich meicroffon</translation>
 <translation id="899384117894244799">Tynnu'r defnyddiwr cyfyngedig</translation>
 <translation id="899403249577094719">URL Sylfaen Tystysgrif Netscape</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 1b30e9f6..9adbed0 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -4839,7 +4839,6 @@
 <translation id="5601503069213153581">Pinkode</translation>
 <translation id="5601823921345337195">Har ikke tilladelse til at oprette forbindelse til MIDI-enheder</translation>
 <translation id="5602765853043467355">Ryd bogmærker, historik, adgangskoder osv. fra denne enhed</translation>
-<translation id="5605623530403479164">Andre søgemaskiner</translation>
 <translation id="5605758115928394442">Der blev sendt en notifikation til din telefon til bekræftelse af din identitet.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Denne udvidelse er blokeret}one{Denne udvidelse er blokeret}other{Disse udvidelser er blokeret}}</translation>
 <translation id="560834977503641186">Wi-Fi-synkronisering, Få flere oplysninger</translation>
@@ -5140,6 +5139,7 @@
 <translation id="5909379458939060601">Vil du slette denne profil og de tilhørende browserdata?</translation>
 <translation id="5910363049092958439">Ge&amp;m billede som...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> er offline</translation>
+<translation id="5911030830365207728">Google Oversæt</translation>
 <translation id="5911533659001334206">Genvejsviser</translation>
 <translation id="5914724413750400082">Modulus (<ph name="MODULUS_NUM_BITS" /> bit):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 3721a72..f391e99 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -4659,6 +4659,7 @@
 <translation id="5470735824776589490">Für das Zurücksetzen deines Geräts mit Powerwash ist ein Neustart erforderlich. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Hallo! Ich bin die Stimme deiner Sprachausgabe.</translation>
 <translation id="5472627187093107397">Passwörter für diese Website speichern</translation>
+<translation id="5473062644742711742">Weitere Bedienungshilfen findest du im Chrome Web Store</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">Wenn du fortfährst, stimmst du zu, dass auf diesem Gerät auch automatisch Updates und Apps von Google, vom Mobilfunkanbieter deines Kindes und vom Hersteller dieses Geräts abgerufen und installiert werden dürfen, möglicherweise über eine mobile Datenverbindung. Bei einigen dieser Apps werden eventuell In-App-Käufe angeboten.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Die PIN muss aus mindestens 1 Zeichen bestehen}other{Die PIN muss aus mindestens # Zeichen bestehen}}</translation>
@@ -4806,7 +4807,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Dürfen keine Verbindung mit MIDI-Geräten herstellen</translation>
 <translation id="5602765853043467355">Lesezeichen, Verlauf, Passwörter und weitere Daten von diesem Gerät löschen</translation>
-<translation id="5605623530403479164">Andere Suchmaschinen</translation>
 <translation id="5605758115928394442">An dein Smartphone wurde eine Benachrichtigung gesendet, um deine Identität zu bestätigen.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Diese Erweiterung ist blockiert}other{Diese Erweiterungen sind blockiert}}</translation>
 <translation id="560834977503641186">Weitere Informationen zur WLAN-Synchronisation</translation>
@@ -5103,6 +5103,7 @@
 <translation id="5909379458939060601">Dieses Profil und diese Browserdaten löschen?</translation>
 <translation id="5910363049092958439">Bi&amp;ld speichern unter...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ist offline</translation>
+<translation id="5911030830365207728">Google Übersetzer</translation>
 <translation id="5911533659001334206">Tastenkombinationsanzeige</translation>
 <translation id="5914724413750400082">Modulo (<ph name="MODULUS_NUM_BITS" /> Bits):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index 05c679a..e2870af 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Χρήση του μικροφώνου και της κάμεράς σας</translation>
 <translation id="1005333234656240382">Θέλετε να ενεργοποιήσετε τον εντοπισμό και τη διόρθωση σφαλμάτων ADB;</translation>
 <translation id="1006873397406093306">Αυτή η επέκταση μπορεί να διαβάσει και να αλλάξει τα δεδομένα σας στους ιστότοπους. Μπορείτε να ελέγξετε σε ποιους ιστότοπους αποκτά πρόσβαση η επέκταση.</translation>
+<translation id="1007057452468855774">Ενεργοποίηση του Google Play Store</translation>
 <translation id="1008186147501209563">Εξαγωγή σελιδοδεικτών</translation>
 <translation id="1008557486741366299">Όχι τώρα</translation>
 <translation id="1009476156254802388">Τοποθεσία <ph name="WEB_DRIVE" /></translation>
 <translation id="1009663062402466586">Τα στοιχεία ελέγχου παιχνιδιού είναι πλέον διαθέσιμα</translation>
 <translation id="1010498023906173788">Αυτή η καρτέλα είναι συνδεδεμένη σε μια σειριακή θύρα.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Μη ανταποκρίσιμη σελίδα}other{Μη ανταποκρίσιμες σελίδες}}</translation>
+<translation id="1011003645819296594">Αποθηκευμένες συσκευές</translation>
 <translation id="1011355516189274711">Ένταση ήχου μετατροπής κειμένου σε ομιλία</translation>
 <translation id="1012794136286421601">Τα αρχεία Εγγράφων, Φύλλων, Διαφανειών και Σχεδίων συγχρονίζονται. Ανοίξτε την εφαρμογή Google Drive, για να τα προσπελάσετε στο διαδίκτυο ή εκτός σύνδεσης.</translation>
 <translation id="1012876632442809908">Συσκευή USB-C (μπροστινή θύρα)</translation>
@@ -494,6 +496,7 @@
 <translation id="1470350905258700113">Χρήση αυτής της συσκευής</translation>
 <translation id="1470946456740188591">Για την ενεργοποίηση ή την απενεργοποίηση της περιήγησης με σύμβολα προσθήκης, χρησιμοποιήστε τη συντόμευση Ctrl+Αναζήτηση+7</translation>
 <translation id="1472675084647422956">Εμφάνιση περισσότερων</translation>
+<translation id="1473223074251193484">Ρύθμιση διαμόρφωσης σύνδεσης</translation>
 <translation id="1474785664565228650">Η αλλαγή της ρύθμισης για το μικρόφωνο απαιτεί την επανεκκίνηση του Parallels Desktop. Κάντε επανεκκίνηση του Parallels Desktop για να συνεχίσετε.</translation>
 <translation id="1474893630593443211">Περισσότερος έλεγχος στις διαφημίσεις που βλέπετε</translation>
 <translation id="1475502736924165259">Έχετε καταχωρίσει πιστοποιητικά που δεν αντιστοιχούν σε καμία από τις άλλες κατηγορίες</translation>
@@ -1125,6 +1128,7 @@
 <translation id="2044014337866019681">Βεβαιωθείτε ότι επαληθεύετε τον λογαριασμό <ph name="ACCOUNT" /> για να ξεκλειδώσετε την περίοδο λειτουργίας.</translation>
 <translation id="204497730941176055">Microsoft Certificate Template Name</translation>
 <translation id="2045117674524495717">Πρόγραμμα βοήθειας συντομεύσεων πληκτρολογίου</translation>
+<translation id="2045211794962848221">Δεν θα δείτε ξανά αυτό το συγκεκριμένο μήνυμα</translation>
 <translation id="2045969484888636535">Συνέχεια αποκλεισμού cookie</translation>
 <translation id="204622017488417136">Η συσκευή σας θα πρέπει να επανέλθει στην προηγούμενη εγκατεστημένη έκδοση του Chrome. Θα καταργηθούν όλοι οι λογαριασμοί χρηστών και τα τοπικά δεδομένα. Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.</translation>
 <translation id="2046702855113914483">Ράμεν</translation>
@@ -3814,6 +3818,7 @@
 <translation id="4594577641390224176">Αναζητάτε τη σελίδα πληροφοριών του συστήματος; Επισκεφτείτε τη σελίδα</translation>
 <translation id="4595560905247879544">Οι εφαρμογές και οι επεκτάσεις μπορούν να τροποποιηθούν μόνο από τον διαχειριστή(<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">Έχετε καταχωρίσει πιστοποιητικά που προσδιορίζουν αυτούς τους διακομιστές</translation>
+<translation id="4598345735110653698">Διαχείριση κλειδιών πρόσβασης</translation>
 <translation id="4598556348158889687">Διαχείριση αποθηκευτικού χώρου</translation>
 <translation id="4598776695426288251">Το Wi-Fi είναι διαθέσιμο από πολλαπλές συσκευές</translation>
 <translation id="4601426376352205922">Σήμανση ως μη αναγνωσμένης</translation>
@@ -4039,6 +4044,7 @@
 <translation id="4823894915586516138">Αυτό το PIN ή ο κωδικός πρόσβασης προστατεύει τα δεδομένα σας στη συσκευή <ph name="DEVICE_TYPE" />, συμπεριλαμβανομένων τυχόν πληροφοριών στις οποίες έχετε πρόσβαση από το τηλέφωνό σας</translation>
 <translation id="4824037980212326045">Δημιουργία αντιγράφου ασφαλείας και επαναφορά Linux</translation>
 <translation id="4824958205181053313">Ακύρωση συγχρονισμού;</translation>
+<translation id="4825532258163983651">Δεν είναι δυνατή η διαγραφή του κλειδιού πρόσβασης</translation>
 <translation id="4827675678516992122">Αδυναμία σύνδεσης</translation>
 <translation id="4827784381479890589">Βελτιωμένος ορθογραφικός έλεγχος στο πρόγραμμα περιήγησης Chrome (Αποστολή κειμένου στη Google για τη λήψη προτάσεων ορθογραφίας)</translation>
 <translation id="4827904420700932487">Δημιουργία κωδικού QR για αυτήν την εικόνα</translation>
@@ -4301,6 +4307,7 @@
 <translation id="5087249366037322692">Προστέθηκε από τρίτο μέρος</translation>
 <translation id="5087580092889165836">Προσθήκη κάρτας</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 με κρυπτογράφηση RSA</translation>
+<translation id="5089763948477033443">Δείκτης αλλαγής μεγέθους πλαϊνού πλαισίου</translation>
 <translation id="5090637338841444533">Δεν επιτρέπεται να παρακολουθούν τη θέση της κάμεράς σας</translation>
 <translation id="5093569275467863761">Υποπλαίσιο ανώνυμης περιήγησης αποθηκευμένο στην κρυφή μνήμη πίσω-εμπρός: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Μπορείτε να ανοίξετε και να επεξεργαστείτε υποστηριζόμενα αρχεία με αυτήν την εφαρμογή από την εφαρμογή Αρχεία ή από άλλες εφαρμογές. Για να ελέγξετε ποια αρχεία ανοίγουν αυτήν την εφαρμογή από προεπιλογή, <ph name="BEGIN_LINK" />μάθετε πώς να ορίσετε προεπιλεγμένες εφαρμογές στη συσκευή σας<ph name="END_LINK" />.</translation>
@@ -4466,6 +4473,7 @@
 <translation id="5258992782919386492">Εγκατάσταση σε αυτήν τη συσκευή</translation>
 <translation id="5260334392110301220">Έξυπνα εισαγωγικά</translation>
 <translation id="5260508466980570042">Λυπούμαστε, δεν ήταν δυνατή η επαλήθευση της διεύθυνσής σας ηλεκτρονικού ταχυδρομείου ή του κωδικού πρόσβασής σας. Δοκιμάστε ξανά.</translation>
+<translation id="5260958083445173099">Οι ιστότοποι θα εμφανίζουν περιεχόμενο στις προτιμώμενες γλώσσες σας, όταν υπάρχει αυτή η δυνατότητα.</translation>
 <translation id="5261683757250193089">Άνοιγμα στο Web Store</translation>
 <translation id="5262178194499261222">Κατάργηση κωδικού πρόσβασης</translation>
 <translation id="5262784498883614021">Αυτόματη σύνδεση στο δίκτυο</translation>
@@ -4506,6 +4514,7 @@
 <translation id="5294097441441645251">Πρέπει να ξεκινά με έναν πεζό χαρακτήρα ή σύμβολο υπογράμμισης</translation>
 <translation id="5294618183559481278">Η συσκευή σας <ph name="DEVICE_TYPE" /> χρησιμοποιεί έναν ενσωματωμένο αισθητήρα για να εντοπίσει άτομα που βρίσκονται μπροστά στη συσκευή σας. Όλα τα δεδομένα υποβάλλονται σε επεξεργασία στη συσκευή σας και έπειτα διαγράφονται. Τα δεδομένα αισθητήρα δεν αποστέλλονται ποτέ στην Google. <ph name="LINK_BEGIN" />Μάθετε περισσότερα<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Ακούστε εκφωνημένα σχόλια για να χρησιμοποιείτε τη συσκευή σας χωρίς να κοιτάζετε την οθόνη. Τα σχόλια μπράιγ είναι διαθέσιμα με μια συνδεδεμένη συσκευή.</translation>
+<translation id="5297005732522718715">Ανανέωση διαμόρφωσης σύνδεσης</translation>
 <translation id="5297082477358294722">Ο κωδικός πρόσβασης αποθηκεύτηκε. Δείτε και διαχειριστείτε τους αποθηκευμένους κωδικούς πρόσβασης στον <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Όταν κάποιος άλλος κοιτάζει την οθόνη σας, θα εμφανίζεται το εικονίδιο με το μάτι απορρήτου στην κάτω δεξιά γωνίας της οθόνης</translation>
 <translation id="5298219193514155779">Το θέμα δημιουργήθηκε από τον/την</translation>
@@ -4676,6 +4685,7 @@
 <translation id="5466374726908360271">Επικόλληση και αναζήτηση για "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="5467207440419968613">Αποκλείστηκαν οι άδειες <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Αναζήτηση για κοινές χρήσεις αρχείου</translation>
+<translation id="5468330507528805311">Κατάσταση σύνδεσης:</translation>
 <translation id="5468881191994555667">Επιλογή αρχείου</translation>
 <translation id="5469852975082458401">Μπορείτε να πλοηγηθείτε σε σελίδες με δείκτη κειμένου. Πατήστε F7 για απενεργοποίηση.</translation>
 <translation id="5470735824776589490">Απαιτείται επανεκκίνηση προκειμένου να είναι δυνατή η επαναφορά της συσκευής σας με Powerwash. <ph name="LINK_BEGIN" />Μάθετε περισσότερα<ph name="LINK_END" /></translation>
@@ -4828,7 +4838,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Δεν επιτρέπεται να συνδέονται σε συσκευές MIDI</translation>
 <translation id="5602765853043467355">Διαγραφή σελιδοδεικτών, ιστορικού, κωδικών πρόσβασης κ.ά. από αυτή τη συσκευή</translation>
-<translation id="5605623530403479164">Άλλες μηχανές αναζήτησης</translation>
 <translation id="5605758115928394442">Στάλθηκε μια ειδοποίηση στο τηλέφωνό σας για την επιβεβαίωση της ταυτότητάς σας.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Αυτή η επέκταση έχει αποκλειστεί}other{Αυτές οι επεκτάσεις έχουν αποκλειστεί}}</translation>
 <translation id="560834977503641186">Συγχρονισμός Wi-Fi, Μάθετε περισσότερα</translation>
@@ -4953,6 +4962,7 @@
 <translation id="5734362860645681824">Επικοινωνίες</translation>
 <translation id="5734697361979786483">Προσθήκη κοινής χρήσης αρχείου</translation>
 <translation id="5736796278325406685">Καταχωρίστε ένα έγκυρο όνομα χρήστη</translation>
+<translation id="5738093759615225354">Χρειάζεστε αυτό το κλειδί πρόσβασης για να συνδεθείτε στον υπολογιστή σας.</translation>
 <translation id="5739017626473506901">Συνδεθείτε για να βοηθήσετε τον χρήστη <ph name="USER_NAME" /> να προσθέσει έναν σχολικό λογαριασμό</translation>
 <translation id="5739235828260127894">Αναμονή για επαλήθευση. <ph name="LINK_BEGIN" />Μάθετε περισσότερα<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Πολύ μεγάλο</translation>
@@ -5114,6 +5124,7 @@
 <translation id="589541317545606110">Αναζήτηση σελίδας με <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Να μην επιτρέπεται</translation>
 <translation id="5900186025777217044">Το Smart Lock άλλαξε</translation>
+<translation id="5900243355162006650">Διαμόρφωση σύνδεσης:</translation>
 <translation id="5900302528761731119">Φωτογραφία προφίλ Google</translation>
 <translation id="590036993063074298">Λεπτομέρειες ποιότητας κατοπτρισμού</translation>
 <translation id="5901069264981746702">Τα δεδομένα δακτυλικών αποτυπωμάτων σας αποθηκεύονται με ασφάλεια και παραμένουν πάντα στη συσκευή <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Μάθετε περισσότερα<ph name="LINK_END" /></translation>
@@ -5128,6 +5139,7 @@
 <translation id="5909379458939060601">Διαγραφή αυτού του προφίλ και των δεδομένων περιήγησης;</translation>
 <translation id="5910363049092958439">Απο&amp;θήκευση Εικόνας Ως...</translation>
 <translation id="5910726859585389579">Η συσκευή <ph name="DEVICE_TYPE" /> είναι εκτός σύνδεσης.</translation>
+<translation id="5911030830365207728">Μετάφραση Google</translation>
 <translation id="5911533659001334206">Πρόγραμμα προβολής συντομεύσεων</translation>
 <translation id="5914724413750400082">Συντελεστής (<ph name="MODULUS_NUM_BITS" /> bits):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5417,6 +5429,7 @@
 <translation id="6196640612572343990">Αποκλεισμός cookie τρίτων</translation>
 <translation id="6196854373336333322">Η επέκταση "<ph name="EXTENSION_NAME" />" ελέγχει τις ρυθμίσεις διακομιστή μεσολάβησης. Αυτό σημαίνει ότι μπορεί να αλλάξει, να διακόψει ή να παρακολουθήσει όλες τις ενέργειες που εκτελείτε στο διαδίκτυο. Εάν δεν είστε βέβαιοι για το λόγο αυτής της αλλαγής, πιθανότατα να μην την επιθυμούσατε.</translation>
 <translation id="6197128521826316819">Δημιουργία κωδικού QR για αυτήν τη σελίδα</translation>
+<translation id="6197223946499512637">Αυτά τα κλειδιά πρόσβασης αποθηκεύονται στο Windows Hello σε αυτόν τον υπολογιστή. Δεν αποθηκεύονται στον Λογαριασμό σας Google.</translation>
 <translation id="6198252989419008588">Αλλαγή PIN</translation>
 <translation id="6200047250927636406">Απόρριψη αρχείου</translation>
 <translation id="6200151268994853226">Διαχείριση επέκτασης</translation>
@@ -5714,6 +5727,7 @@
 <translation id="6482559668224714696">Μεγεθυντικός φακός πλήρους οθόνης</translation>
 <translation id="6483485061007832714">Άνοιγμα λήψης</translation>
 <translation id="6483805311199035658">Άνοιγμα του αρχείου <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">Για να διαχειριστείτε τα κλειδιά πρόσβασης, χρησιμοποιήστε μια νεότερη έκδοση των Windows.</translation>
 <translation id="6488384360522318064">Επιλογή γλώσσας</translation>
 <translation id="648927581764831596">Κανένα διαθέσιμο</translation>
 <translation id="6490471652906364588">Συσκευή USB-C (δεξιά θύρα)</translation>
@@ -6300,6 +6314,7 @@
 <translation id="7029307918966275733">Το Crostini δεν έχει εγκατασταθεί. Εγκαταστήστε το Crostini για να δείτε τους συντελεστές.</translation>
 <translation id="7029809446516969842">Κωδ. πρόσβασης</translation>
 <translation id="7030304022046916278">Στέλνει URL στην Ασφαλή περιήγηση για να τα ελέγξει</translation>
+<translation id="7030695672997239647">Κάντε δεξί κλικ σε μια καρτέλα, επιλέξτε Προσθήκη καρτέλας σε ομάδα και έπειτα επιλέξτε Νέα ομάδα.</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - Συνδεδεμένη σε σειριακή θύρα</translation>
 <translation id="7033616203784997570">Η καταχώριση δεν πρέπει να υπερβαίνει τους 62 χαρακτήρες.</translation>
 <translation id="7034692021407794547">Ένας διαχειριστής με προνόμια διαχείρισης χρέωσης θα πρέπει πρώτα να αποδεχτεί τους Όρους Παροχής Υπηρεσιών για τον εξοπλισμό Google Meet στην ενότητα Εξοπλισμός Google Meet της Κονσόλας διαχειριστή.</translation>
@@ -7402,6 +7417,7 @@
 <translation id="8101987792947961127">Απαιτείται Powerwash στην επόμενη επανεκκίνηση</translation>
 <translation id="81020759409809034">Τοπική τοποθεσία</translation>
 <translation id="8102139037507939978">Αφαίρεση στοιχείων προσωπικής ταυτοποίησης από το system_logs.txt.</translation>
+<translation id="810362914482827094">Αναζήτηση κλειδιών πρόσβασης</translation>
 <translation id="8104088837833760645">Λήψη προφίλ eSIM</translation>
 <translation id="8105368624971345109">Απενεργοποίηση</translation>
 <translation id="8107015733319732394">Εγκατάσταση του Google Play Store στη συσκευή σας <ph name="DEVICE_TYPE" />. Αυτό μπορεί να διαρκέσει μερικά λεπτά.</translation>
@@ -7849,6 +7865,7 @@
 <translation id="8557022314818157177">Συνεχίστε να αγγίζετε το κλειδί ασφαλείας σας μέχρι να καταγραφεί το δακτυλικό σας αποτύπωμα.</translation>
 <translation id="8557180006508471423">Ενεργοποίηση του "Google Chrome" στις Υπηρεσίες τοποθεσίας στον Mac</translation>
 <translation id="8557856025359704738">Επόμενη λήψη στις <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Κλειδιά πρόσβασης</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Άνοιγμα όλων σε &amp;νέο παράθυρο}=1{Άνοιγμα σε &amp;νέο παράθυρο}other{Άνοιγμα όλων ({COUNT}) σε &amp;νέο παράθυρο}}</translation>
 <translation id="8561206103590473338">Ελέφαντας</translation>
 <translation id="8561565784790166472">Συνεχίστε με προσοχή</translation>
@@ -7975,6 +7992,7 @@
 <translation id="8677212948402625567">Σύμπτυξη όλων...</translation>
 <translation id="867767487203716855">Επόμενη ενημέρωση</translation>
 <translation id="8677859815076891398">Δεν υπάρχουν λευκώματα. Δημιουργήστε ένα λεύκωμα στις <ph name="LINK_BEGIN" />Φωτογραφίες Google<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Επανεκκίνηση και λήψη αυτόματων ενημερώσεων</translation>
 <translation id="8678538439778360739">Τα δεδομένα κρυπτογραφήθηκαν με τη φράση πρόσβασης συγχρονισμού στις <ph name="TIME" />. Αυτά τα δεδομένα δεν περιλαμβάνουν τρόπους πληρωμής και διευθύνσεις από το Google Pay.</translation>
 <translation id="8678582529642151449">Καρτέλες που δεν σμικρύνονται</translation>
 <translation id="8678933587484842200">Πώς θέλετε να ανοίγει αυτή η εφαρμογή;</translation>
@@ -8219,6 +8237,7 @@
 <translation id="8910987510378294980">Απόκρυψη λίστας συσκευών</translation>
 <translation id="8912362522468806198">Λογαριασμός Google</translation>
 <translation id="8912810933860534797">Ενεργοποίηση αυτόματης σάρωσης</translation>
+<translation id="8915307125957890427">Κάντε δεξί κλικ σε μια καρτέλα, επιλέξτε Προσθήκη καρτέλας σε ομάδα και έπειτα επιλέξτε Νέα ομάδα.</translation>
 <translation id="8915370057835397490">Φόρτωση πρότασης</translation>
 <translation id="8916476537757519021">Υποπλαίσιο ανώνυμης περιήγησης: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="DEVICE_TYPE" /> του/της <ph name="GIVEN_NAME" /></translation>
@@ -8293,6 +8312,7 @@
 <translation id="8986362086234534611">Διαγραφή από τη μνήμη</translation>
 <translation id="8986494364107987395">Αυτόματη αποστολή στατιστικών στοιχείων χρήσης και αναφορών σφαλμάτων στην Google</translation>
 <translation id="8987927404178983737">Μήνας</translation>
+<translation id="8989359959810288806">Ανανέωση κατάστασης σύνδεσης</translation>
 <translation id="8991520179165052608">Ο ιστότοπος μπορεί να χρησιμοποιήσει το μικρόφωνό σας</translation>
 <translation id="899384117894244799">Κατάργηση περιορισμένου χρήστη</translation>
 <translation id="899403249577094719">Βασική διεύθυνση URL πιστοποιητικού Netscape</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index e7861727..85031b47 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -4839,7 +4839,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Not allowed to connect to MIDI devices</translation>
 <translation id="5602765853043467355">Clear bookmarks, history, passwords and more from this device</translation>
-<translation id="5605623530403479164">Other search engines</translation>
 <translation id="5605758115928394442">A notification was sent to your phone to confirm that it's you.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{This extension is blocked}other{These extensions are blocked}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync, learn more</translation>
@@ -5140,6 +5139,7 @@
 <translation id="5909379458939060601">Delete this profile and browsing data?</translation>
 <translation id="5910363049092958439">Sa&amp;ve Image As...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> is offline</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">Shortcut viewer</translation>
 <translation id="5914724413750400082">Modulus (<ph name="MODULUS_NUM_BITS" /> bits):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index d343a3e8..0eebdad 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -892,6 +892,7 @@
 <translation id="1829129547161959350">Pingüino</translation>
 <translation id="1829192082282182671">Alejar</translation>
 <translation id="1830550083491357902">No has accedido.</translation>
+<translation id="1831848493690504725">No podemos comunicarnos con Google a través de la red conectada. Prueba elegir otra red o revisa tu configuración de red o proxy (si usas un proxy).</translation>
 <translation id="1832459821645506983">Sí, acepto</translation>
 <translation id="1832511806131704864">Cambio de teléfono actualizado</translation>
 <translation id="1832848789136765277">Para asegurarte de que siempre puedas acceder a tus datos sincronizados, verifica tu identidad.</translation>
@@ -2190,6 +2191,7 @@
 <translation id="3021065318976393105">Mientras se usa la batería</translation>
 <translation id="3021066826692793094">Mariposa</translation>
 <translation id="3021678814754966447">&amp;Ver fuente del marco</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> se quitará de esta Chromebook y no se guardará en <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">No entendí.</translation>
 <translation id="3023464535986383522">Seleccionar para pronunciar</translation>
 <translation id="3024374909719388945">Utilizar reloj de 24 horas</translation>
@@ -3728,6 +3730,7 @@
 <translation id="4535127706710932914">Perfil predeterminado</translation>
 <translation id="4535767533210902251">El sensor de huellas dactilares es la opción de la parte superior derecha del teclado. Tócalo suavemente con un dedo.</translation>
 <translation id="4536140153723794651">Sitios que siempre pueden usar cookies</translation>
+<translation id="4536769240747010177">Funciones de conexión mediante dispositivo móvil:</translation>
 <translation id="4538417792467843292">Eliminar palabra</translation>
 <translation id="4538792345715658285">Instalada por una política empresarial</translation>
 <translation id="4541123282641193691">No se pudo verificar la cuenta. Vuelve a intentarlo o reinicia la Chromebook.</translation>
@@ -3755,6 +3758,7 @@
 <translation id="4561893854334016293">No se cambió ningún permiso recientemente</translation>
 <translation id="4562155214028662640">Agregar huella dactilar</translation>
 <translation id="4563210852471260509">El idioma inicial de entrada es chino</translation>
+<translation id="4563382028841851106">Quitar de la cuenta</translation>
 <translation id="4563880231729913339">Dedo 3</translation>
 <translation id="4564245002465020751">Termina la configuración en el teléfono.</translation>
 <translation id="4565377596337484307">Ocultar contraseña</translation>
@@ -4731,6 +4735,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> quiere</translation>
 <translation id="5534304873398226603">Descartar foto o video</translation>
 <translation id="5537725057119320332">Transmitir</translation>
+<translation id="5539070192556911367">No se puede acceder a Google</translation>
 <translation id="5539221284352502426">El servidor rechazó la contraseña que ingresaste porque es demasiado corta, debe incluir números o símbolos, o debe ser diferente a las contraseñas anteriores.</translation>
 <translation id="5541694225089836610">Tu administrador inhabilitó esta acción</translation>
 <translation id="5542132724887566711">Perfil</translation>
@@ -4794,6 +4799,7 @@
 <translation id="5585912436068747822">Error al dar formato</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Cargando apps…</translation>
+<translation id="5590418976913374224">Reproducir un sonido al iniciar el dispositivo</translation>
 <translation id="5592595402373377407">Aún no hay suficientes datos disponibles.</translation>
 <translation id="5595307023264033512">Almacenamiento total que usan los sitios: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Editar dirección</translation>
@@ -4803,7 +4809,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">No puede conectarse con dispositivos MIDI</translation>
 <translation id="5602765853043467355">Borrar favoritos, historial, contraseñas y otras opciones de configuración de este dispositivo</translation>
-<translation id="5605623530403479164">Otros motores de búsqueda</translation>
 <translation id="5605758115928394442">Se envió una notificación a tu teléfono para confirmar que eres tú</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Se bloqueó esta extensión}other{Se bloquearon estas extensiones}}</translation>
 <translation id="560834977503641186">Sincronización Wi-Fi, Más información</translation>
@@ -5102,6 +5107,7 @@
 <translation id="5909379458939060601">¿Quieres borrar este perfil y los datos de navegación?</translation>
 <translation id="5910363049092958439">Gu&amp;ardar imagen como...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> está sin conexión</translation>
+<translation id="5911030830365207728">Google Traductor</translation>
 <translation id="5911533659001334206">Visualizador de combinaciones de teclas</translation>
 <translation id="5914724413750400082">Módulo (<ph name="MODULUS_NUM_BITS" /> bits):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6171,6 +6177,10 @@
 <translation id="6943939122536910181">Desconectado de <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Seleccionar</translation>
 <translation id="694592694773692225">Se bloqueó el redireccionamiento en esta página.</translation>
+<translation id="6947015141909171112">Estás viendo recetas según tu actividad de búsqueda reciente.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Puedes administrar la configuración desde el menú de la tarjeta o ver más opciones en la sección Personalizar Chrome.</translation>
 <translation id="6949434160682548041">Contraseña (opcional)</translation>
 <translation id="6950627417367801484">Restablecer apps</translation>
 <translation id="6952242901357037157">También puedes mostrar las contraseñas de tu <ph name="BEGIN_LINK" />Cuenta de Google<ph name="END_LINK" /> aquí</translation>
@@ -6338,6 +6348,7 @@
 <translation id="7102687220333134671">Las actualizaciones automáticas están activadas</translation>
 <translation id="7102832101143475489">Se agotó el tiempo de espera de la solicitud</translation>
 <translation id="710640343305609397">Abrir la configuración de red</translation>
+<translation id="7107609441453408294">Reproducir el mismo audio en todas las bocinas</translation>
 <translation id="7108338896283013870">Ocultar</translation>
 <translation id="7108668606237948702">ingresar</translation>
 <translation id="7108933416628942903">Bloquear ahora</translation>
@@ -6568,6 +6579,7 @@
 <translation id="7364745943115323529">Transmitir...</translation>
 <translation id="7364796246159120393">Seleccionar archivo</translation>
 <translation id="7365076891350562061">Tamaño de la pantalla</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" />: Fijada</translation>
 <translation id="7366316827772164604">Buscando dispositivos cercanos…</translation>
 <translation id="7366415735885268578">Agregar un sitio</translation>
 <translation id="7366909168761621528">Datos de navegación</translation>
@@ -6964,6 +6976,7 @@
 <translation id="7737115349420013392">Vinculando con "<ph name="DEVICE_NAME" />"…</translation>
 <translation id="7737846262459425222">Puedes cambiar esta opción cuando quieras en Configuración &gt; Asistente de Google &gt; Contexto de pantalla.</translation>
 <translation id="7737948071472253612">No puede usar la cámara</translation>
+<translation id="77381465218432215">Mostrar tildes y caracteres especiales</translation>
 <translation id="7740996059027112821">Estándar</translation>
 <translation id="7741307896921365578">Habilita un panel lateral en el navegador para tener un acceso útil y siempre disponible a tu Lista de lectura y Favoritos.</translation>
 <translation id="7742558784808143689">¿Deseas borrar los datos y permisos de <ph name="SITE_NAME" />, de todos sus sitios secundarios y de las apps instaladas?</translation>
@@ -7754,6 +7767,7 @@
 <translation id="8486666913807228950">Motivo: Se encontró la regla invertida <ph name="REVERT_RULE" /> en la lista "Forzar la apertura en".</translation>
 <translation id="848666842773560761">Una app intenta acceder a la cámara. Para permitir el acceso, desactiva el interruptor de privacidad de la cámara.</translation>
 <translation id="8487678622945914333">Acercar</translation>
+<translation id="8487699605742506766">Hotspot</translation>
 <translation id="8489156414266187072">Las sugerencias personales solo se muestran en tu cuenta</translation>
 <translation id="8490896350101740396">Se actualizaron las siguientes aplicaciones de kiosco "<ph name="UPDATED_APPS" />". Reinicia el dispositivo para completar el proceso de actualización.</translation>
 <translation id="8492685019009920170">Toca el sensor de huellas dactilares con el dedo. Tus datos se almacenan de forma segura y no salen de tu <ph name="DEVICE_TYPE" />.</translation>
@@ -8247,6 +8261,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" y 1 pestaña más}other{"<ph name="TAB_TITLE" />" y # pestañas más}}</translation>
 <translation id="8977811652087512276">Contraseña incorrecta o archivo dañado</translation>
 <translation id="8978154919215542464">Activada: sincronizar todo</translation>
+<translation id="8978670037548431647">Actualizar funciones de conexión mediante dispositivo móvil</translation>
 <translation id="897939795688207351">En <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Informes de comentarios</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" />: Falló</translation>
@@ -8511,6 +8526,7 @@
 <translation id="935854577147268200">Se cambió el número de Smart Lock. Ingresa tu contraseña para actualizar Smart Lock. La próxima vez, tu teléfono desbloqueará tu <ph name="DEVICE_TYPE" />. Puedes desactivar Smart Lock en la configuración</translation>
 <translation id="936646668635477464">Cámara y micrófono</translation>
 <translation id="936801553271523408">Datos de diagnóstico del sistema</translation>
+<translation id="937053962468712792">¿Deseas quitar tu <ph name="DEVICE" /> de <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Reparar extensión</translation>
 <translation id="938568644810664664">Puedes preguntar "Hey Google, ¿qué canción es esta?" o "Hey Google, ¿qué hay en la pantalla?"</translation>
 <translation id="938623846785894166">Archivo desconocido.</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 9ba5665..df6d9ef 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -2195,6 +2195,7 @@
 <translation id="3021065318976393105">Con batería</translation>
 <translation id="3021066826692793094">Mariposa</translation>
 <translation id="3021678814754966447">&amp;Ver fuente del marco</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> se quitará de este Chromebook y no se guardará en <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">No te he entendido.</translation>
 <translation id="3023464535986383522">Enunciar selección</translation>
 <translation id="3024374909719388945">Usar reloj de 24 horas</translation>
@@ -3732,6 +3733,7 @@
 <translation id="4535127706710932914">Perfil predeterminado</translation>
 <translation id="4535767533210902251">El sensor de huellas digitales está en la tecla de arriba a la derecha de tu teclado. Tócalo ligeramente con un dedo.</translation>
 <translation id="4536140153723794651">Sitios que pueden usar cookies siempre</translation>
+<translation id="4536769240747010177">Funciones de conexión compartida:</translation>
 <translation id="4538417792467843292">Eliminar palabra</translation>
 <translation id="4538792345715658285">Instalada por una política empresarial</translation>
 <translation id="4541123282641193691">No se ha podido verificar tu cuenta. Vuelve a intentarlo o reinicia el Chromebook.</translation>
@@ -3759,6 +3761,7 @@
 <translation id="4561893854334016293">No se ha cambiado ningún permiso recientemente</translation>
 <translation id="4562155214028662640">Añadir huella digital</translation>
 <translation id="4563210852471260509">El lenguaje de entrada inicial es el chino.</translation>
+<translation id="4563382028841851106">Quitar de la cuenta</translation>
 <translation id="4563880231729913339">Dedo 3</translation>
 <translation id="4564245002465020751">Termina la configuración en tu teléfono</translation>
 <translation id="4565377596337484307">Ocultar contraseña</translation>
@@ -4809,7 +4812,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">No puede conectarse a dispositivos MIDI</translation>
 <translation id="5602765853043467355">Borrar marcadores, historial, contraseñas, etc. de este dispositivo</translation>
-<translation id="5605623530403479164">Otros buscadores</translation>
 <translation id="5605758115928394442">Se ha enviado una notificación a tu teléfono para confirmar que eres tú.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Esta extensión está bloqueada}other{Estas extensiones están bloqueadas}}</translation>
 <translation id="560834977503641186">Más información sobre Sincronización Wi‑Fi</translation>
@@ -5108,6 +5110,7 @@
 <translation id="5909379458939060601">¿Eliminar este perfil y los datos de navegación?</translation>
 <translation id="5910363049092958439">Guar&amp;dar imagen como...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> no tiene conexión</translation>
+<translation id="5911030830365207728">Traductor de Google</translation>
 <translation id="5911533659001334206">Visor de combinaciones de teclas</translation>
 <translation id="5914724413750400082">Módulo (<ph name="MODULUS_NUM_BITS" /> bits):
 <ph name="MODULUS_HEX_DUMP" />
@@ -6177,6 +6180,10 @@
 <translation id="6943939122536910181">Desconectado de <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Seleccionar</translation>
 <translation id="694592694773692225">Se ha bloqueado la redirección bloqueada en esta página.</translation>
+<translation id="6947015141909171112">Estás viendo recetas basadas en tu reciente actividad de búsqueda de recetas.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Puedes gestionar los ajustes en el menú de la tarjeta o ver más opciones en Personalizar Chrome.</translation>
 <translation id="6949434160682548041">Contraseña (opcional)</translation>
 <translation id="6950627417367801484">Restaurar aplicaciones</translation>
 <translation id="6952242901357037157">También puedes mostrar contraseñas de tu <ph name="BEGIN_LINK" />cuenta de Google<ph name="END_LINK" /> aquí</translation>
@@ -6972,6 +6979,7 @@
 <translation id="7737115349420013392">Vinculando con "<ph name="DEVICE_NAME" />"…</translation>
 <translation id="7737846262459425222">Puedes cambiar esta opción en cualquier momento en Configuración &gt; Asistente de Google &gt; Contexto de la pantalla.</translation>
 <translation id="7737948071472253612">No puede usar tu cámara</translation>
+<translation id="77381465218432215">Mostrar tildes y caracteres especiales</translation>
 <translation id="7740996059027112821">Estándar</translation>
 <translation id="7741307896921365578">Habilita un panel lateral en el navegador para acceder a tu lista de lectura y a tus marcadores fácilmente siempre que quieras.</translation>
 <translation id="7742558784808143689">¿Borrar datos del sitio y permisos de <ph name="SITE_NAME" />, todos los sitios que incluya y sus aplicaciones instaladas?</translation>
@@ -7762,6 +7770,7 @@
 <translation id="8486666913807228950">Motivo: la regla invertida <ph name="REVERT_RULE" /> se ha encontrado en la lista "Forzar apertura".</translation>
 <translation id="848666842773560761">Una aplicación está intentando acceder a la cámara. Desactiva el interruptor de privacidad de la cámara para darle acceso.</translation>
 <translation id="8487678622945914333">Acercar</translation>
+<translation id="8487699605742506766">Compartir Internet</translation>
 <translation id="8489156414266187072">Las sugerencias personales solo se muestran en tu cuenta</translation>
 <translation id="8490896350101740396">Las siguientes aplicaciones de kiosco (<ph name="UPDATED_APPS" />) se han actualizado. Reinicia el dispositivo para completar el proceso de actualización.</translation>
 <translation id="8492685019009920170">Toca el sensor de huellas digitales con el dedo. Tus datos se almacenan de forma segura y nunca abandonan tu <ph name="DEVICE_TYPE" />.</translation>
@@ -8255,6 +8264,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" y 1 pestaña más}other{"<ph name="TAB_TITLE" />" y # pestañas más}}</translation>
 <translation id="8977811652087512276">La contraseña es incorrecta o el archivo está dañado</translation>
 <translation id="8978154919215542464">Activada: sincronizar todo</translation>
+<translation id="8978670037548431647">Actualizar funciones de conexión compartida</translation>
 <translation id="897939795688207351">En <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Informes de comentarios</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" />: ha fallado</translation>
@@ -8519,6 +8529,7 @@
 <translation id="935854577147268200">El teléfono de Smart Lock ha cambiado. Introduce tu contraseña para actualizar Smart Lock. La próxima vez, el teléfono desbloqueará tu <ph name="DEVICE_TYPE" />. Puedes desactivar Smart Lock en la configuración.</translation>
 <translation id="936646668635477464">Cámara y micrófono</translation>
 <translation id="936801553271523408">Datos de diagnóstico del sistema</translation>
+<translation id="937053962468712792">¿Quitar <ph name="DEVICE" /> de <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Reparar extensión</translation>
 <translation id="938568644810664664">Prueba a decir "Hey Google, ¿qué canción es esta?" o "Hey Google, ¿qué aparece en la pantalla?"</translation>
 <translation id="938623846785894166">Archivo poco común</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 4fea3b52..6e662aa9 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Mikrofoni ja kaamera kasutamine</translation>
 <translation id="1005333234656240382">Kas lubada ADB silumine?</translation>
 <translation id="1006873397406093306">See laiendus saab saitidel teie andmeid lugeda ja muuta. Saate hallata, millistele saitidele laiendus juurde pääseb.</translation>
+<translation id="1007057452468855774">Google Play poe sisselülitamine</translation>
 <translation id="1008186147501209563">Järjehoidjate eksportimine</translation>
 <translation id="1008557486741366299">Mitte praegu</translation>
 <translation id="1009476156254802388">Teenuse <ph name="WEB_DRIVE" /> asukoht</translation>
 <translation id="1009663062402466586">Mängu juhtnupud on nüüd saadaval</translation>
 <translation id="1010498023906173788">See vaheleht on ühendatud jadapordiga.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Leht ei reageeri}other{Lehed ei reageeri}}</translation>
+<translation id="1011003645819296594">Salvestatud seadmed</translation>
 <translation id="1011355516189274711">Kõnesünteesi helitugevus</translation>
 <translation id="1012794136286421601">Teie rakenduste Dokumendid, Arvutustabelid, Esitlused ja Joonised failid sünkroonitakse. Nendele võrgus või võrguühenduseta juurdepääsemiseks avage Google Drive'i rakendus.</translation>
 <translation id="1012876632442809908">C-tüüpi USB-seade (eesmine port)</translation>
@@ -494,6 +496,7 @@
 <translation id="1470350905258700113">Kasuta seda seadet</translation>
 <translation id="1470946456740188591">Sisestusmärgiga sirvimise sisse- ja väljalülitamiseks võite kasutada otseteed Ctrl + otsinguklahv + 7</translation>
 <translation id="1472675084647422956">Kuva rohkem</translation>
+<translation id="1473223074251193484">Seadista jagamine</translation>
 <translation id="1474785664565228650">Mikrofoni seade muudatuse jõustumiseks tuleb Parallels Desktop uuesti käivitada. Jätkamiseks käivitage Parallels Desktop uuesti.</translation>
 <translation id="1474893630593443211">Suurem kontroll kuvatavate reklaamide üle</translation>
 <translation id="1475502736924165259">Teil on sertifikaate, mis ei sobi ühtegi muusse kategooriasse</translation>
@@ -1116,6 +1119,7 @@
 <translation id="2044014337866019681">Seansi avamiseks veenduge, et kinnitaksite konto <ph name="ACCOUNT" />.</translation>
 <translation id="204497730941176055">Microsofti sertifikaadi malli nimi</translation>
 <translation id="2045117674524495717">Klaviatuuri otseteede abiline</translation>
+<translation id="2045211794962848221">Te ei näe enam seda konkreetset sõnumit</translation>
 <translation id="2045969484888636535">Jätka küpsiste blokeerimist</translation>
 <translation id="204622017488417136">Teie seadmes taastatakse varem installitud Chrome'i versioon. Kõik kasutajakontod ja kohalikud andmed kustutatakse. Seda ei saa tagasi võtta.</translation>
 <translation id="2046702855113914483">Rāmen</translation>
@@ -3804,6 +3808,7 @@
 <translation id="4594577641390224176">Kas otsite süsteemi teabe lehte? Külastage saiti</translation>
 <translation id="4595560905247879544">Rakendusi ja laiendusi saab muuta ainult haldur (<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">Teil on neid servereid tuvastavad sertifikaadid</translation>
+<translation id="4598345735110653698">Pääsukoodide haldamine</translation>
 <translation id="4598556348158889687">Salvestusruumi haldus</translation>
 <translation id="4598776695426288251">WiFi on saadaval mitme seadme kaudu</translation>
 <translation id="4601426376352205922">Märgi mitteloetuks</translation>
@@ -4029,6 +4034,7 @@
 <translation id="4823894915586516138">See PIN-kood või parool kaitseb teie andmeid seadmes <ph name="DEVICE_TYPE" />, sealhulgas teavet, millele telefoni kaudu juurde pääsete</translation>
 <translation id="4824037980212326045">Linuxi varundamine ja taastamine</translation>
 <translation id="4824958205181053313">Kas tühistada sünkroonimine?</translation>
+<translation id="4825532258163983651">Pääsukoodi ei õnnestu kustutada</translation>
 <translation id="4827675678516992122">Ühendamine ebaõnnestus</translation>
 <translation id="4827784381479890589">Täiustatud õigekirjakontroll Chrome'i brauseris (tekst saadetakse õigekirjasoovituste saamiseks Google'ile)</translation>
 <translation id="4827904420700932487">Loo selle pildi jaoks QR-kood</translation>
@@ -4291,6 +4297,7 @@
 <translation id="5087249366037322692">Lisas kolmas osapool</translation>
 <translation id="5087580092889165836">Lisa kaart</translation>
 <translation id="5088534251099454936">PKCS 1 SHA-512 koos RSA krüpteerimisega</translation>
+<translation id="5089763948477033443">Külgpaneeli suuruse muutja</translation>
 <translation id="5090637338841444533">Pole lubatud jälgida teie kaamera asendit</translation>
 <translation id="5093569275467863761">Vahemälu tagasi-edasiliikumiseks inkognito alamraamis: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Võite toetatud faile avada ja redigeerida selle rakendusega rakenduse Failid või muude rakenduste kaudu. Selle haldamiseks, millised failid vaikimisi selles rakenduses avatakse, <ph name="BEGIN_LINK" />vaadake, kuidas oma seadmes vaikerakendusi seadistada<ph name="END_LINK" />.</translation>
@@ -4456,6 +4463,7 @@
 <translation id="5258992782919386492">Installi sellesse seadmesse</translation>
 <translation id="5260334392110301220">Nutikad jutumärgid</translation>
 <translation id="5260508466980570042">Kahjuks ei õnnestunud teie meili või parooli kinnitada. Proovige uuesti.</translation>
+<translation id="5260958083445173099">Veebisaitide sisu kuvatakse võimaluse korral teie eelistatud keeles</translation>
 <translation id="5261683757250193089">Ava veebipoes</translation>
 <translation id="5262178194499261222">Eemalda parool</translation>
 <translation id="5262784498883614021">Automaatne ühendamine võrguga</translation>
@@ -4496,6 +4504,7 @@
 <translation id="5294097441441645251">Peab algama väiketähe või alljoonega</translation>
 <translation id="5294618183559481278">Seade <ph name="DEVICE_TYPE" /> kasutab sisseehitatud andurit, et tuvastada seadme ees olevaid inimesi. Kõiki andmeid töödeldakse kohe seadmes ja seejärel need kustutatakse. Anduri andmeid ei saadeta mitte kunagi Google'ile. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Esitatakse suulist tagasisidet, et saaksite seadet kasutada ilma ekraanikuva vaatamata. Braille'i teel tagasiside on saadaval ühendatud seadme puhul.</translation>
+<translation id="5297005732522718715">Värskenda jagamise seadistust</translation>
 <translation id="5297082477358294722">Parool salvestati. Vaadake ja hallake salvestatud paroole siin: <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Kui keegi teine vaatab teie ekraanikuva, kuvatakse ekraani paremas alanurgas silmakujuline privaatsusikoon</translation>
 <translation id="5298219193514155779">Teema on loonud</translation>
@@ -4666,6 +4675,7 @@
 <translation id="5466374726908360271">Kleebi ja otsi üksust „<ph name="SEARCH_TERMS" />”</translation>
 <translation id="5467207440419968613">Blokeeritud on <ph name="PERMISSION_1" /> ja <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Jagatud failide otsimine</translation>
+<translation id="5468330507528805311">Jagamise olek:</translation>
 <translation id="5468881191994555667">Valige fail</translation>
 <translation id="5469852975082458401">Lehtedel saab navigeerida tekstikursoriga. Funktsiooni väljalülitamiseks vajutage klahvi F7.</translation>
 <translation id="5470735824776589490">Seade tuleb taaskäivitada, enne kui saate selle Powerwashiga lähtestada. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation>
@@ -4818,7 +4828,6 @@
 <translation id="5601503069213153581">PIN-kood</translation>
 <translation id="5601823921345337195">Pole lubatud MIDI-seadmetega ühendada</translation>
 <translation id="5602765853043467355">Kustuta sellest seadmest järjehoidjad, ajalugu, paroolid ja muu</translation>
-<translation id="5605623530403479164">Muud otsingumootorid</translation>
 <translation id="5605758115928394442">Teie telefoni saadeti märguanne, et teie isik kinnitada.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{See laiendus on blokeeritud}other{Need laiendused on blokeeritud}}</translation>
 <translation id="560834977503641186">WiFi sünkroonimine, lisateave</translation>
@@ -4942,6 +4951,7 @@
 <translation id="5734362860645681824">Vestlusteenused</translation>
 <translation id="5734697361979786483">Lisa failide võrguhoidla</translation>
 <translation id="5736796278325406685">Sisestage kehtiv kasutajanimi</translation>
+<translation id="5738093759615225354">Vajate seda pääsukoodi oma arvutisse sisselogimiseks</translation>
 <translation id="5739017626473506901">Logige sisse, et aidata kasutajal <ph name="USER_NAME" /> lisada koolikonto</translation>
 <translation id="5739235828260127894">Kinnitamise ootel. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Väga suur</translation>
@@ -5103,6 +5113,7 @@
 <translation id="589541317545606110">Otsige lehelt rakendusega <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Ära luba</translation>
 <translation id="5900186025777217044">Smart Lock on muutunud</translation>
+<translation id="5900243355162006650">Jagamise seadistus:</translation>
 <translation id="5900302528761731119">Google'i profiilifoto</translation>
 <translation id="590036993063074298">Peegeldamise kvaliteedi üksikasjad</translation>
 <translation id="5901069264981746702">Teie sõrmejäljeandmed talletatakse turvaliselt ja neid ei edastata seadmest <ph name="DEVICE_TYPE" /> väljapoole. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation>
@@ -5117,6 +5128,7 @@
 <translation id="5909379458939060601">Kas kustutada see profiil ja sirvimisandmed?</translation>
 <translation id="5910363049092958439">Sal&amp;vesta pilt nimega...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> on võrguühenduseta</translation>
+<translation id="5911030830365207728">Google'i tõlge</translation>
 <translation id="5911533659001334206">Otseteede vaatur</translation>
 <translation id="5914724413750400082">Moodul (<ph name="MODULUS_NUM_BITS" /> bitti):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5406,6 +5418,7 @@
 <translation id="6196640612572343990">Blokeeri kolmanda osapoole küpsisefailid</translation>
 <translation id="6196854373336333322">Laiendus „<ph name="EXTENSION_NAME" />” on hõivanud puhverserveri seaded, mis tähendab, et see saab muuta, lõhkuda või kuulata pealt kogu teie veebitegevust. Kui te pole kindel, miks see muudatus toimus, siis te tõenäoliselt ei taha seda.</translation>
 <translation id="6197128521826316819">Loo selle lehe jaoks QR-kood</translation>
+<translation id="6197223946499512637">Need pääsukoodid talletatakse selles arvutis rakendusse Windows Hello. Neid ei salvestata teie Google'i kontole.</translation>
 <translation id="6198252989419008588">Muuda PIN-koodi</translation>
 <translation id="6200047250927636406">Loobu failist</translation>
 <translation id="6200151268994853226">Laienduse haldamine</translation>
@@ -5703,6 +5716,7 @@
 <translation id="6482559668224714696">Täisekraani luup</translation>
 <translation id="6483485061007832714">Allalaadimise avamine</translation>
 <translation id="6483805311199035658">Avatakse <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">Pääsukoodide haldamiseks kasutage Windowsi uuemat versiooni</translation>
 <translation id="6488384360522318064">Keele valimine</translation>
 <translation id="648927581764831596">Pole saadaval</translation>
 <translation id="6490471652906364588">C-tüüpi USB-seade (parempoolne port)</translation>
@@ -6289,6 +6303,7 @@
 <translation id="7029307918966275733">Crostini pole installitud. Krediidi vaatamiseks installige Crostini.</translation>
 <translation id="7029809446516969842">Paroolid</translation>
 <translation id="7030304022046916278">Saadab URL-id kontrollimiseks teenusele Google'i ohutu sirvimine.</translation>
+<translation id="7030695672997239647">Paremklõpsake vahelehel ja tehke valik „Lisa vaheleht gruppi“, seejärel valige „Uus grupp“</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> – jadapordiga ühendatud</translation>
 <translation id="7033616203784997570">Sisestus tohib olla kuni 62 tähemärki</translation>
 <translation id="7034692021407794547">Administraator, kellel on arvelduse halduse õigused, peab administraatorikonsoolil Google Meeti riistvara jaotises esmalt nõustuma Google Meeti riistvara teenusetingimustega.</translation>
@@ -7391,6 +7406,7 @@
 <translation id="8101987792947961127">Järgmisel taaskäivitusel nõutakse Powerwashi</translation>
 <translation id="81020759409809034">Kohalik asukoht</translation>
 <translation id="8102139037507939978">Eemaldage failist system_logs.txt isikut tuvastav teave.</translation>
+<translation id="810362914482827094">Otsige pääsukoode</translation>
 <translation id="8104088837833760645">eSIM-i profiili allalaadimine</translation>
 <translation id="8105368624971345109">Lülita välja</translation>
 <translation id="8107015733319732394">Google Play pood installitakse teie seadmesse <ph name="DEVICE_TYPE" />. See võib võtta mõne minuti.</translation>
@@ -7838,6 +7854,7 @@
 <translation id="8557022314818157177">Hoidke sõrme turvavõtmel, kuni sõrmejälg jäädvustatakse</translation>
 <translation id="8557180006508471423">Lülitage oma Maci jaotises Location Services sisse valik „Google Chrome”</translation>
 <translation id="8557856025359704738">Järgmine allalaadimine: <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Pääsukoodid</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Ava kõik &amp;uues aknas}=1{Ava &amp;uues aknas}other{Ava kõik ({COUNT}) &amp;uues aknas}}</translation>
 <translation id="8561206103590473338">Elevant</translation>
 <translation id="8561565784790166472">Olge jätkamisel ettevaatlik</translation>
@@ -7964,6 +7981,7 @@
 <translation id="8677212948402625567">Ahenda kõik ...  </translation>
 <translation id="867767487203716855">Järgmine värskendus</translation>
 <translation id="8677859815076891398">Albumeid pole. Looge album teenuses <ph name="LINK_BEGIN" />Google Photos<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Taaskäivita ja hangi automaatsed värskendused</translation>
 <translation id="8678538439778360739">Andmed on kuupäeval <ph name="TIME" /> krüpteeritud teie sünkroonimisparooliga. See ei hõlma Google Pay makseviise ega aadresse.</translation>
 <translation id="8678582529642151449">Vahelehed ei kahane</translation>
 <translation id="8678933587484842200">Kuidas soovite selle rakenduse käivitada?</translation>
@@ -8210,6 +8228,7 @@
 <translation id="8910987510378294980">Peida seadmete loend</translation>
 <translation id="8912362522468806198">Google'i konto</translation>
 <translation id="8912810933860534797">Automaatse skannimise lubamine</translation>
+<translation id="8915307125957890427">Paremklõpsake vahelehel ja tehke valik „Lisa vaheleht gruppi“, seejärel valige „Uus grupp“</translation>
 <translation id="8915370057835397490">Soovituste laadimine</translation>
 <translation id="8916476537757519021">Inkognito alamraam: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138">Kasutaja <ph name="GIVEN_NAME" /> <ph name="DEVICE_TYPE" /></translation>
@@ -8284,6 +8303,7 @@
 <translation id="8986362086234534611">Unusta</translation>
 <translation id="8986494364107987395">Saada kasutusstatistika ja krahhiaruanded automaatselt Google'ile</translation>
 <translation id="8987927404178983737">kuu</translation>
+<translation id="8989359959810288806">Värskenda jagamise olekut</translation>
 <translation id="8991520179165052608">Sait saab kasutada teie mikrofoni</translation>
 <translation id="899384117894244799">Piiratud juurdepääsuga kasutaja eemaldamine</translation>
 <translation id="899403249577094719">Netscape'i sertifikaadi baas-URL</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index b3580a21..cf7fc62 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Erabili mikrofonoa eta kamera</translation>
 <translation id="1005333234656240382">ADB arazketa gaitu nahi duzu?</translation>
 <translation id="1006873397406093306">Luzapen honek webguneetan dituzun datuak irakurri eta alda ditzake. Luzapenak zein webgune atzi ditzakeen kontrola dezakezu.</translation>
+<translation id="1007057452468855774">Aktibatu Google Play Store</translation>
 <translation id="1008186147501209563">Esportatu laster-markak</translation>
 <translation id="1008557486741366299">Ez une honetan</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" /> zerbitzuko kokapena</translation>
 <translation id="1009663062402466586">Orain, jokoak kontrolatzeko aukerak daude</translation>
 <translation id="1010498023906173788">Fitxa hau serieko ataka batera konektatuta dago.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Orriak ez du erantzuten}other{Orriek ez dute erantzuten}}</translation>
+<translation id="1011003645819296594">Gordetako gailuak</translation>
 <translation id="1011355516189274711">Testua ahots bihurtzeko eginbidearen bolumena</translation>
 <translation id="1012794136286421601">Google dokumentuak, kalkulu-orriak, diapositibak eta marrazkiak sinkronizatzen ari zara. Elementuok konexioarekin edo konexiorik gabe atzitzeko, ireki Google Drive aplikazioa.</translation>
 <translation id="1012876632442809908">USB-C gailua (aurrealdeko ataka)</translation>
@@ -491,6 +493,7 @@
 <translation id="1470350905258700113">Erabili gailu hau</translation>
 <translation id="1470946456740188591">Testu-kurtsorearen bidez arakatzeko eginbidea aktibatu edo desaktibatzeko, erabili Ktrl + Bilatu + 7 lasterbidea</translation>
 <translation id="1472675084647422956">Erakutsi gehiago</translation>
+<translation id="1473223074251193484">Ezarri konexioa partekatzeko aukeraren konfigurazioa</translation>
 <translation id="1474785664565228650">Mikrofonoaren ezarpenean egindako aldaketa gauzatzeko, berrabiarazi egin behar da Parallels Desktop. Aurrera egiteko, berrabiarazi Parallels Desktop.</translation>
 <translation id="1474893630593443211">Ikusten dituzun iragarkien gaineko kontrol handiagoa</translation>
 <translation id="1475502736924165259">Beste kategorietarako egokiak ez diren ziurtagiriak dituzu erregistratuta</translation>
@@ -1113,6 +1116,7 @@
 <translation id="2044014337866019681">Ziurtatu <ph name="ACCOUNT" /> kontua ari zarela egiaztatzen saioa desblokeatzeko.</translation>
 <translation id="204497730941176055">Microsoft ziurtagiriaren txantiloiaren izena</translation>
 <translation id="2045117674524495717">Lasterbideei buruzko laguntza</translation>
+<translation id="2045211794962848221">Mezu hau ez zaizu berriro erakutsiko</translation>
 <translation id="2045969484888636535">Jarraitu cookieak blokeatzen</translation>
 <translation id="204622017488417136">Gailua aurrez instalatutako Chrome bertsiora itzuliko da. Erabiltzaile-kontu eta tokiko datu guztiak kendu egingo dira. Ekintza hau ezin da desegin.</translation>
 <translation id="2046702855113914483">Ramen-a</translation>
@@ -3798,6 +3802,7 @@
 <translation id="4594577641390224176">Sistemaren "Honi buruz" orriaren bila zabiltza? Joan helbide honetara:</translation>
 <translation id="4595560905247879544">Kudeatzaileak (<ph name="CUSTODIAN_NAME" />) soilik alda ditzake aplikazioak eta luzapenak.</translation>
 <translation id="4596295440756783523">Zerbitzari hauek identifikatzen dituzten ziurtagiriak dituzu erregistratuta</translation>
+<translation id="4598345735110653698">Kudeatu sarbide-gakoak</translation>
 <translation id="4598556348158889687">Memoriaren kudeaketa</translation>
 <translation id="4598776695426288251">Gailu bat baino gehiagoren bidez erabil dezakezu wifi-konexioa</translation>
 <translation id="4601426376352205922">Markatu irakurri gabeko gisa</translation>
@@ -4023,6 +4028,7 @@
 <translation id="4823894915586516138">PIN edo pasahitz honek <ph name="DEVICE_TYPE" />-ean dauzkazun datuak babesten ditu, telefonoaren bidez atzitzen duzun informazioa barne</translation>
 <translation id="4824037980212326045">Linux-en babeskopiak eta leheneratzea</translation>
 <translation id="4824958205181053313">Sinkronizazioa bertan behera utzi nahi duzu?</translation>
+<translation id="4825532258163983651">Ezin da ezabatu sarbide-gakoa</translation>
 <translation id="4827675678516992122">Ezin izan da konektatu</translation>
 <translation id="4827784381479890589">Ortografia-zuzentzaile hobetua Chrome arakatzailean (testua Google-ri bidaltzen zaio ortografia-iradokizunak jasotzeko)</translation>
 <translation id="4827904420700932487">Sortu irudi honen QR kodea</translation>
@@ -4285,6 +4291,7 @@
 <translation id="5087249366037322692">Hirugarrenen batek gehitu du</translation>
 <translation id="5087580092889165836">Gehitu txartel bat</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 RSA enkriptatzearekin</translation>
+<translation id="5089763948477033443">Alboko panelaren tamaina aldatzeko kontrol-puntua</translation>
 <translation id="5090637338841444533">Ezin dute egin kameraren posizioaren jarraipena</translation>
 <translation id="5093569275467863761">Aurreko orria cachean gordetzeko eginbidean gordetako ezkutuko moduko azpimarkoa: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Fitxategi bateragarriak aplikazio honekin ireki ditzakezu Fitxategiak aplikaziotik edo beste aplikazio batzuetatik. Aplikazio hau modu lehenetsian zein fitxategik irekitzen duten kontrolatzeko, <ph name="BEGIN_LINK" />ikusi gailuaren aplikazio lehenetsiak ezartzeko argibideak<ph name="END_LINK" />.</translation>
@@ -4450,6 +4457,7 @@
 <translation id="5258992782919386492">Instalatu gailu honetan</translation>
 <translation id="5260334392110301220">Komatxo adimendunak</translation>
 <translation id="5260508466980570042">Ezin izan da helbide elektronikoa edo pasahitza egiaztatu. Saiatu berriro.</translation>
+<translation id="5260958083445173099">Webguneak hizkuntza hobetsietan erakutsiko dira, ahal denean</translation>
 <translation id="5261683757250193089">Ireki Web Store dendan</translation>
 <translation id="5262178194499261222">Kendu pasahitza</translation>
 <translation id="5262784498883614021">Konektatu automatikoki sarera</translation>
@@ -4490,6 +4498,7 @@
 <translation id="5294097441441645251">Minuskula edo azpimarra batekin hasi behar da</translation>
 <translation id="5294618183559481278"><ph name="DEVICE_TYPE" />-ak sentsore integratu bat dauka gailuaren aurrean dauden pertsonak hautemateko. Datu guztiak berehala prozesatzen dira gailuan eta, gero, ezabatu egiten dira. Sentsorearen datuak ez dira inoiz bidaltzen Google-ra. <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Entzun ahozko argibideak gailua pantailari begiratu gabe erabili ahal izateko. Braillea erabilita ematen diren argibideak konektatutako gailuekin erabilgarri daude.</translation>
+<translation id="5297005732522718715">Freskatu konexioa partekatzeko aukeraren konfigurazioa</translation>
 <translation id="5297082477358294722">Gorde da pasahitza. Ikusi eta kudeatu gordetako pasahitzak hemen: <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Beste norbaitek pantailari begiratzen dionean, erakutsi Pribatutasun-begia ikonoa pantailaren behealdean, eskuinetara</translation>
 <translation id="5298219193514155779">Gaiaren sortzailea:</translation>
@@ -4660,6 +4669,7 @@
 <translation id="5466374726908360271">It&amp;satsi eta bilatu "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="5467207440419968613">Blokeatutako <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Fitxategiak parekatzeko sareko gailuak bilatzen</translation>
+<translation id="5468330507528805311">Konexioa partekatzeko aukeraren egoera:</translation>
 <translation id="5468881191994555667">Aukeratu fitxategi bat</translation>
 <translation id="5469852975082458401">Nabigatu orrietatik testu-kurtsorea erabilita. Eginbidea desaktibatzeko, sakatu F7.</translation>
 <translation id="5470735824776589490">Berrabiarazi egin behar da gailuan fabrikako ezarpenak Powerwash bidez berrezarri ahal izateko. <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation>
@@ -4812,7 +4822,6 @@
 <translation id="5601503069213153581">PINa</translation>
 <translation id="5601823921345337195">Ezin da konektatu MIDI gailuetara</translation>
 <translation id="5602765853043467355">Ezabatu gailu honetako laster-markak, historia, pasahitzak eta beste</translation>
-<translation id="5605623530403479164">Beste bilatzaile batzuk</translation>
 <translation id="5605758115928394442">Jakinarazpen bat bidali dizugu telefonora zeu zarela berresteko.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Luzapena blokeatuta dago}other{Luzapenak blokeatuta daude}}</translation>
 <translation id="560834977503641186">Wifi-sinkronizazioa, Lortu informazio gehiago</translation>
@@ -4934,6 +4943,7 @@
 <translation id="5734362860645681824">Komunikazioak</translation>
 <translation id="5734697361979786483">Gehitu fitxategiak partekatzeko biltegia</translation>
 <translation id="5736796278325406685">Idatzi balio duen erabiltzaile-izen bat</translation>
+<translation id="5738093759615225354">Sarbide-gako hau behar duzu ordenagailuan saioa hasteko</translation>
 <translation id="5739017626473506901">Hasi saioa <ph name="USER_NAME" /> erabiltzaileak ikastetxeko kontua gehi dezan</translation>
 <translation id="5739235828260127894">Egiaztapenaren zain. <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Oso handia</translation>
@@ -5095,6 +5105,7 @@
 <translation id="589541317545606110">Bilatu orria <ph name="VISUAL_SEARCH_PROVIDER" /> bidez</translation>
 <translation id="5896436821193322561">Ez eman baimenik</translation>
 <translation id="5900186025777217044">Aldatu egin da Smart Lock</translation>
+<translation id="5900243355162006650">Konexioa partekatzeko aukeraren konfigurazioa:</translation>
 <translation id="5900302528761731119">Google-ko profileko argazkia</translation>
 <translation id="590036993063074298">Islatzearen kalitateari buruzko xehetasunak</translation>
 <translation id="5901069264981746702">Zure hatz-markaren datuak modu seguruan gordeko dira eta ez dira inoiz aterako <ph name="DEVICE_TYPE" /> gailutik. <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation>
@@ -5109,6 +5120,7 @@
 <translation id="5909379458939060601">Profila eta arakatze-datuak ezabatu nahi dituzu?</translation>
 <translation id="5910363049092958439">Gor&amp;de irudia honela…</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ez dago konektatuta</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">Lasterbideen ikustailea</translation>
 <translation id="5914724413750400082">Modulua (<ph name="MODULUS_NUM_BITS" /> bit):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5397,6 +5409,7 @@
 <translation id="6196640612572343990">Blokeatu hirugarrenen cookieak</translation>
 <translation id="6196854373336333322"><ph name="EXTENSION_NAME" /> luzapenak zure proxy-ezarpenen kontrola hartu du; alegia, sarean egiten duzun edozer alda, honda edo zelata dezake. Aldaketa zergatik gertatu den ziur ez badakizu, baliteke aldaketa nahi ez izatea.</translation>
 <translation id="6197128521826316819">Sortu orri honen QR kodea</translation>
+<translation id="6197223946499512637">Sarbide-gako hauek ordenagailu honetako Windows Hello-n daude gordeta. Ez daude Google-ko kontuan gordeta.</translation>
 <translation id="6198252989419008588">Aldatu PINa</translation>
 <translation id="6200047250927636406">Baztertu fitxategia</translation>
 <translation id="6200151268994853226">Kudeatu luzapena</translation>
@@ -5694,6 +5707,7 @@
 <translation id="6482559668224714696">Pantaila osoko lupa</translation>
 <translation id="6483485061007832714">Ireki deskarga</translation>
 <translation id="6483805311199035658"><ph name="FILE" /> irekitzen…</translation>
+<translation id="6486301003991593638">Sarbide-gakoak kudeatzeko, erabili Windows-en bertsio berriago bat</translation>
 <translation id="6488384360522318064">Hautatu hizkuntza</translation>
 <translation id="648927581764831596">Ez dago bat ere erabilgarri</translation>
 <translation id="6490471652906364588">USB-C gailua (eskuinaldeko ataka)</translation>
@@ -6280,6 +6294,7 @@
 <translation id="7029307918966275733">Crostini ez dago instalatuta. Zerrendak ikusi nahi badituzu, instalatu Crostini.</translation>
 <translation id="7029809446516969842">Pasahitzak</translation>
 <translation id="7030304022046916278">URLak Arakatze segurua eginbideari bidaltzen dizkio egiazta ditzan.</translation>
+<translation id="7030695672997239647">Egin klik eskuineko botoiarekin fitxa batean, hautatu "Gehitu fitxa taldean" eta, ondoren, hautatu Talde berria</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - Serieko ataka konektatuta</translation>
 <translation id="7033616203784997570">Gehienez 62 karaktere idatz daitezke</translation>
 <translation id="7034692021407794547">Fakturazio-pribilegioak dituzten administratzaileek Google Meet-en hardwarearen Zerbitzu-baldintzak onartu behar dituzte lehendabizi administrazio-kontsolako Google Meet-en hardwarea atalean.</translation>
@@ -7380,6 +7395,7 @@
 <translation id="8101987792947961127">Fabrikako ezarpenak berrezarri behar dira Powerwash bidez hurrengo aldiz berrabiaraztean</translation>
 <translation id="81020759409809034">Gailuko kokapena</translation>
 <translation id="8102139037507939978">Kendu jendea pertsonalki identifikatzeko balio duen informazioa system_logs.txt dokumentutik.</translation>
+<translation id="810362914482827094">Bilatu sarbide-gakoak</translation>
 <translation id="8104088837833760645">Deskargatu eSIMaren profila</translation>
 <translation id="8105368624971345109">Desaktibatu</translation>
 <translation id="8107015733319732394">Google Play Store <ph name="DEVICE_TYPE" /> gailuan instalatzen ari gara. Minutu batzuk beharko ditugu.</translation>
@@ -7827,6 +7843,7 @@
 <translation id="8557022314818157177">Jarraitu segurtasun-giltza sakatzen, hatz-marka hauteman arte</translation>
 <translation id="8557180006508471423">Aktibatu "Google Chrome" Mac-eko Kokapen-zerbitzuak ezarpenean</translation>
 <translation id="8557856025359704738">Hurrengo deskargaren ordua: <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Sarbide-gakoak</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Ireki guztiak &amp;beste leiho batean}=1{Ireki &amp;beste leiho batean}other{Ireki guztiak ({COUNT}) &amp;beste leiho batean}}</translation>
 <translation id="8561206103590473338">Elefantea</translation>
 <translation id="8561565784790166472">Kontuz ibili</translation>
@@ -7953,6 +7970,7 @@
 <translation id="8677212948402625567">Tolestu guztiak…</translation>
 <translation id="867767487203716855">Hurrengo eguneratzea</translation>
 <translation id="8677859815076891398">Ez dago albumik. Sortu bat <ph name="LINK_BEGIN" />Google Argazkiak<ph name="LINK_END" /> zerbitzuan.</translation>
+<translation id="8678378565142776698">Berrezarri eta jaso eguneratze automatikoak</translation>
 <translation id="8678538439778360739">Sinkronizazio-pasaesaldiarekin enkriptatu dira datuak (<ph name="TIME" />). Kanpoan utzi dira Google Pay-ko ordainketa-metodoak eta helbideak.</translation>
 <translation id="8678582529642151449">Fitxak ez dira txikitzen</translation>
 <translation id="8678933587484842200">Nola abiarazi behar da aplikazio hau?</translation>
@@ -8199,6 +8217,7 @@
 <translation id="8910987510378294980">Ezkutatu gailuen zerrenda</translation>
 <translation id="8912362522468806198">Google-ko kontua</translation>
 <translation id="8912810933860534797">Gaitu pantailan automatikoki mugitzeko aukera</translation>
+<translation id="8915307125957890427">Egin klik eskuineko botoiarekin fitxa batean, hautatu "Gehitu fitxa taldean" eta, ondoren, hautatu Talde berria</translation>
 <translation id="8915370057835397490">Iradokizuna kargatzen</translation>
 <translation id="8916476537757519021">Ezkutuko moduko azpimarkoa: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" /> erabiltzailearen <ph name="DEVICE_TYPE" /> gailua</translation>
@@ -8273,6 +8292,7 @@
 <translation id="8986362086234534611">Ahaztu</translation>
 <translation id="8986494364107987395">Bidali automatikoki erabilera-estatistikak eta hutsegite-txostenak Google-ra</translation>
 <translation id="8987927404178983737">Hilabetea</translation>
+<translation id="8989359959810288806">Freskatu konexioa partekatzeko aukeraren egoera</translation>
 <translation id="8991520179165052608">Webguneak mikrofonoa erabil dezake</translation>
 <translation id="899384117894244799">Kendu murriztapenak dituen erabiltzaile bat</translation>
 <translation id="899403249577094719">Netscape ziurtagiriaren oinarrizko URLa</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 19ba2f9..4129acc 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -4825,7 +4825,6 @@
 <translation id="5601503069213153581">پین</translation>
 <translation id="5601823921345337195">‏اجازه ندارد به دستگاه‌های MIDI مرتبط شود</translation>
 <translation id="5602765853043467355">نشانک‌ها، سابقه، گذرواژه‌ها و موارد دیگر از این دستگاه پاک شود</translation>
-<translation id="5605623530403479164">موتورهای جستجوی دیگر</translation>
 <translation id="5605758115928394442">برای تأیید اینکه خودتان هستید، اعلانی به تلفنتان ارسال شد.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{این افزونه مسدود شده است}one{این افزونه‌ها مسدود شده‌اند}other{این افزونه‌ها مسدود شده‌اند}}</translation>
 <translation id="560834977503641186">‏«همگام‌سازی Wi-Fi»، بیشتر بدانید</translation>
@@ -5124,6 +5123,7 @@
 <translation id="5909379458939060601">این نمایه و داده‌های مرور حذف شود؟</translation>
 <translation id="5910363049092958439">ذ&amp;خیره فایل تصویری به‌عنوان...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> آفلاین است</translation>
+<translation id="5911030830365207728">‏ترجمه Google</translation>
 <translation id="5911533659001334206">نمایشگر میان‌بر</translation>
 <translation id="5914724413750400082">مدول (<ph name="MODULUS_NUM_BITS" /> بیت):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index 918753d..7ca103e 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Käyttää mikrofonia ja kameraa</translation>
 <translation id="1005333234656240382">Otetaanko ADB-virheenkorjaus käyttöön?</translation>
 <translation id="1006873397406093306">Tämä laajennus voi lukea ja muuttaa dataasi sivustoilla. Sinä päätät, mille sivustoille laajennuksella on pääsy.</translation>
+<translation id="1007057452468855774">Laita Google Play Kauppa päälle</translation>
 <translation id="1008186147501209563">Vie kirjanmerkkejä</translation>
 <translation id="1008557486741366299">Ei nyt</translation>
 <translation id="1009476156254802388">Sijainti: <ph name="WEB_DRIVE" /></translation>
 <translation id="1009663062402466586">Peliohjaimet nyt käytettävissä</translation>
 <translation id="1010498023906173788">Tämä välilehti on yhdistetty sarjaporttiin.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Sivu ei vastaa.}other{Sivut eivät vastaa.}}</translation>
+<translation id="1011003645819296594">Tallennetut laitteet</translation>
 <translation id="1011355516189274711">Tekstistä puheeksi ‑äänenvoimakkuus</translation>
 <translation id="1012794136286421601">Dokumenttien, Taulukoiden, Presentaatioiden ja Piirrosten tiedostoja synkronoidaan. Voit käyttää niitä online- tai offline-tilassa Google Drive -sovelluksessa.</translation>
 <translation id="1012876632442809908">C-tyypin USB-laite (etuportti)</translation>
@@ -494,6 +496,7 @@
 <translation id="1470350905258700113">Käytä tätä laitetta</translation>
 <translation id="1470946456740188591">Voit laittaa näppäimistöselaamisen päälle tai pois päältä pikanäppäimellä Ctrl + Haku + 7</translation>
 <translation id="1472675084647422956">Näytä enemmän</translation>
+<translation id="1473223074251193484">Ota yhteyden jakaminen käyttöön</translation>
 <translation id="1474785664565228650">Mikrofoniasetuksen muutos edellyttää Parallels Desktopin käynnistämistä uudelleen. Käynnistä Parallels Desktop uudelleen jatkaaksesi.</translation>
 <translation id="1474893630593443211">Enemmän päätösvaltaa näkemiisi mainoksiin</translation>
 <translation id="1475502736924165259">Sinulla on tallennettuja varmenteita, jotka eivät sovi muihin luokkiin.</translation>
@@ -905,6 +908,7 @@
 <translation id="1829129547161959350">Pingviini</translation>
 <translation id="1829192082282182671">L&amp;oitonna</translation>
 <translation id="1830550083491357902">Ei kirjautunut</translation>
+<translation id="1831848493690504725">Emme saa yhdistetyn verkon kautta yhteyttä Googleen. Kokeile valita toinen verkko tai tarkista verkkoasetukset tai välityspalvelimen asetukset (jos käytät välityspalvelinta).</translation>
 <translation id="1832459821645506983">Kyllä</translation>
 <translation id="1832511806131704864">Puhelimen vaihdos päivitettiin</translation>
 <translation id="1832848789136765277">Todenna henkilöllisyytesi varmistaaksesi, että sinulla on aina pääsy synkronoituun dataasi</translation>
@@ -1123,6 +1127,7 @@
 <translation id="2044014337866019681">Avaa istunto varmistamalla, että vahvistamasi tili on <ph name="ACCOUNT" />.</translation>
 <translation id="204497730941176055">Microsoftin varmenteen mallin nimi</translation>
 <translation id="2045117674524495717">Pikanäppäinapuri</translation>
+<translation id="2045211794962848221">Et näe tätä viestiä enää</translation>
 <translation id="2045969484888636535">Estä evästeet edelleen</translation>
 <translation id="204622017488417136">Laitteeseesi palautetaan aiemmin asennettu Chromen versio. Kaikki käyttäjätilit ja paikalliset tiedot poistetaan. Tätä ei voi kumota.</translation>
 <translation id="2046702855113914483">Ramen</translation>
@@ -2207,6 +2212,7 @@
 <translation id="3021065318976393105">Akkuvirralla</translation>
 <translation id="3021066826692793094">Perhonen</translation>
 <translation id="3021678814754966447">&amp;Näytä kehyksen lähdekoodi</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> poistetaan Chromebookilta, eikä sitä tallenneta tilille <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">En ymmärtänyt.</translation>
 <translation id="3023464535986383522">Teksti puhuttuna</translation>
 <translation id="3024374909719388945">Käytä 24 tunnin kelloa</translation>
@@ -3743,6 +3749,7 @@
 <translation id="4535127706710932914">Oletusprofiili</translation>
 <translation id="4535767533210902251">Sormenjälkitunnistin on näppäimistön oikeassa yläkulmassa. Kosketa sitä kevyesti millä tahansa sormella.</translation>
 <translation id="4536140153723794651">Sivustot, jotka voivat aina käyttää evästeitä</translation>
+<translation id="4536769240747010177">Yhteyden jako-ominaisuudet:</translation>
 <translation id="4538417792467843292">Poista sana</translation>
 <translation id="4538792345715658285">Asennettu yrityskäytännön mukaisesti</translation>
 <translation id="4541123282641193691">Tilisi vahvistus ei onnistunut. Yritä uudelleen tai käynnistä Chromebook uudelleen.</translation>
@@ -3770,6 +3777,7 @@
 <translation id="4561893854334016293">Ei äskettäin muutettuja lupia</translation>
 <translation id="4562155214028662640">Lisää sormenjälki</translation>
 <translation id="4563210852471260509">Alkuperäinen syöttökieli on kiina</translation>
+<translation id="4563382028841851106">Poista tililtä</translation>
 <translation id="4563880231729913339">Sormi 3</translation>
 <translation id="4564245002465020751">Viimeistele puhelimella</translation>
 <translation id="4565377596337484307">Piilota salasana</translation>
@@ -3806,6 +3814,7 @@
 <translation id="4594577641390224176">Etsitkö järjestelmän tietosivua? Avaa</translation>
 <translation id="4595560905247879544">Vain ylläpitäjä (<ph name="CUSTODIAN_NAME" />) voi muokata sovelluksia ja laajennuksia.</translation>
 <translation id="4596295440756783523">Olet tallentanut seuraavat palvelimet tunnistavat varmenteet</translation>
+<translation id="4598345735110653698">Hallinnoi avainkoodeja</translation>
 <translation id="4598556348158889687">Tallennustilan hallinta</translation>
 <translation id="4598776695426288251">Wi-Fi käytettävissä useilla laitteilla</translation>
 <translation id="4601426376352205922">Merkitse lukemattomaksi</translation>
@@ -4031,6 +4040,7 @@
 <translation id="4823894915586516138">PIN-koodi tai salasana suojaa dataasi laitteella (<ph name="DEVICE_TYPE" />), esim. puhelimella käyttämiäsi tietoja</translation>
 <translation id="4824037980212326045">Linuxin varmuuskopiointi ja palautus</translation>
 <translation id="4824958205181053313">Perutaanko synkronointi?</translation>
+<translation id="4825532258163983651">Avainkoodia ei voi poistaa</translation>
 <translation id="4827675678516992122">Ei yhteyttä</translation>
 <translation id="4827784381479890589">Parannettu oikeinkirjoituksen tarkistus Chrome-selaimessa (teksti lähetetään Googlelle ehdotusten saamiseksi)</translation>
 <translation id="4827904420700932487">Luo QR-koodi tälle kuvalle</translation>
@@ -4293,6 +4303,7 @@
 <translation id="5087249366037322692">Kolmannen osapuolen lisäämä</translation>
 <translation id="5087580092889165836">Lisää kortti</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 ja RSA-salaus</translation>
+<translation id="5089763948477033443">Sivupaneelin rajauskahva</translation>
 <translation id="5090637338841444533">Kameran asennon seuraaminen kielletty</translation>
 <translation id="5093569275467863761">Siirtymisvälimuistissa oleva incognito-alakehys: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Tällä sovelluksella voit avata ja muokata tuettuja tiedostoja Tiedostot-sovelluksesta tai muista sovelluksista. Jos haluat valita, mitkä tiedostot avautuvat oletuksena tässä sovelluksessa, <ph name="BEGIN_LINK" />lue lisää oletussovelluksen valitsemisesta laitteella<ph name="END_LINK" />.</translation>
@@ -4458,6 +4469,7 @@
 <translation id="5258992782919386492">Asenna tälle laitteelle</translation>
 <translation id="5260334392110301220">Älykkäät lainausmerkit</translation>
 <translation id="5260508466980570042">Sähköpostiosoitteesi tai salasanasi vahvistaminen epäonnistui. Yritä uudelleen.</translation>
+<translation id="5260958083445173099">Verkkosivustojen sisältö näkyy haluamillasi kielillä, jos mahdollista</translation>
 <translation id="5261683757250193089">Avaa Web Storessa</translation>
 <translation id="5262178194499261222">Poista salasana</translation>
 <translation id="5262784498883614021">Yhdistä verkkoon automaattisesti</translation>
@@ -4498,6 +4510,7 @@
 <translation id="5294097441441645251">On alettava pienellä kirjaimella tai alaviivalla</translation>
 <translation id="5294618183559481278"><ph name="DEVICE_TYPE" /> käyttää sisäänrakennettua anturia, jonka avulla se havaitsee laitteesi edessä olevat ihmiset. Kaikki data käsitellään heti laitteellasi ja poistetaan sitten. Anturidataa ei koskaan lähetetä Googlelle. <ph name="LINK_BEGIN" />Lue lisää<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Kuule äänipalautetta, jonka avulla voit käyttää laitetta näyttöä katsomatta. Pistekirjoituspalaute on käytettävissä verkkoon yhdistettävillä laitteilla.</translation>
+<translation id="5297005732522718715">Päivitä yhteyden jakaminen</translation>
 <translation id="5297082477358294722">Salasana tallennettu. Katso ja ylläpidä tallennettuja salasanoja: <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Kun joku muu katsoo näyttöäsi, näytön oikeassa alareunassa näkyy Yksityisyys-silmäkuvake</translation>
 <translation id="5298219193514155779">Teeman loi</translation>
@@ -4668,6 +4681,7 @@
 <translation id="5466374726908360271">Liitä ja tee haku <ph name="SEARCH_TERMS" /></translation>
 <translation id="5467207440419968613">Estetty: <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Etsitään jaettuja tiedostoja</translation>
+<translation id="5468330507528805311">Yhteyden jakamisen tila:</translation>
 <translation id="5468881191994555667">Valitse tiedosto</translation>
 <translation id="5469852975082458401">Voit siirtyä sivuilla tekstikohdistimen avulla. Laita pois päältä painamalla F7.</translation>
 <translation id="5470735824776589490">Käynnistä laite uudelleen, jotta siihen voidaan palauttaa tehdasasetukset Powerwashin avulla. <ph name="LINK_BEGIN" />Lue lisää<ph name="LINK_END" /></translation>
@@ -4746,6 +4760,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> pyytää lupaa</translation>
 <translation id="5534304873398226603">Hylkää kuva tai video</translation>
 <translation id="5537725057119320332">Suoratoista</translation>
+<translation id="5539070192556911367">Googleen ei saa yhteyttä</translation>
 <translation id="5539221284352502426">Palvelin hylkäsi antamasi salasanan. Mahdollisia syitä: Salasana on liian lyhyt. Salasanassa on oltava numeroita tai merkkejä. Salasanan on oltava eri kuin aiemmat salasanat.</translation>
 <translation id="5541694225089836610">Järjestelmänvalvoja on poistanut toiminnon käytöstä</translation>
 <translation id="5542132724887566711">Profiili</translation>
@@ -4809,6 +4824,7 @@
 <translation id="5585912436068747822">Alustaminen epäonnistui</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Ladataan sovelluksia…</translation>
+<translation id="5590418976913374224">Toista ääni laitteen käynnistyessä</translation>
 <translation id="5592595402373377407">Tietoja ei ole vielä saatavilla tarpeeksi.</translation>
 <translation id="5595307023264033512">Sivustojen yhteensä käyttämä tallennustila: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Osoitteen muokkaus</translation>
@@ -4818,7 +4834,6 @@
 <translation id="5601503069213153581">PIN-koodi</translation>
 <translation id="5601823921345337195">MIDI-laitteisiin yhdistäminen kielletty</translation>
 <translation id="5602765853043467355">Poista kirjanmerkit, historia, salasanat ja muuta tältä laitteelta</translation>
-<translation id="5605623530403479164">Muut hakukoneet</translation>
 <translation id="5605758115928394442">Puhelimeesi lähetettiin ilmoitus henkilöllisyytesi vahvistamiseksi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Tämä laajennus on estetty}other{Nämä laajennukset on estetty}}</translation>
 <translation id="560834977503641186">Wi-Fin synkronointi, lue lisää</translation>
@@ -4942,6 +4957,7 @@
 <translation id="5734362860645681824">Äänilaitteet</translation>
 <translation id="5734697361979786483">Lisää tiedostonjako</translation>
 <translation id="5736796278325406685">Anna kelvollinen käyttäjänimi</translation>
+<translation id="5738093759615225354">Tarvitset tämän koodin tietokoneelle kirjautumiseen</translation>
 <translation id="5739017626473506901">Kirjaudu sisään, niin <ph name="USER_NAME" /> voi lisätä koulutilin avullasi</translation>
 <translation id="5739235828260127894">Odotetaan vahvistusta. <ph name="LINK_BEGIN" />Lisätietoja<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Hyvin suuri</translation>
@@ -5103,6 +5119,7 @@
 <translation id="589541317545606110">Hae sivua tällä: <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Älä salli</translation>
 <translation id="5900186025777217044">Muutoksia Smart Lockissa</translation>
+<translation id="5900243355162006650">Yhteyden jakaminen:</translation>
 <translation id="5900302528761731119">Google-profiilin kuva</translation>
 <translation id="590036993063074298">Peilauksen laatutiedot</translation>
 <translation id="5901069264981746702">Sormenjälkidata tallennetaan turvallisesti vain laitteellesi (<ph name="DEVICE_TYPE" />). <ph name="LINK_BEGIN" />Lue lisää<ph name="LINK_END" /></translation>
@@ -5117,6 +5134,7 @@
 <translation id="5909379458939060601">Poistetaanko tämä profiili ja selausdata?</translation>
 <translation id="5910363049092958439">T&amp;allenna kuva nimellä...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> on offline-tilassa</translation>
+<translation id="5911030830365207728">Google Kääntäjä</translation>
 <translation id="5911533659001334206">Pikanäppäimet</translation>
 <translation id="5914724413750400082">Modulus (<ph name="MODULUS_NUM_BITS" /> bittiä):
 <ph name="MODULUS_HEX_DUMP" />
@@ -5406,6 +5424,7 @@
 <translation id="6196640612572343990">Estä kolmannen osapuolen evästeet</translation>
 <translation id="6196854373336333322">Välityspalvelimesi asetuksia hallinnoi tällä hetkellä tämä laajennus <ph name="EXTENSION_NAME" />, joka voi muokata, haitata tai salakuunnella kaikkia verkkotoimiasi. Jos et tiedä, miksi tämä muutos tehtiin, et luultavasti halua käyttää sitä.</translation>
 <translation id="6197128521826316819">Luo QR-koodi tälle sivulle</translation>
+<translation id="6197223946499512637">Nämä avainkoodit on tallennettu Windows Helloon tällä tietokoneella. Niitä ei tallenneta Google-tilillesi.</translation>
 <translation id="6198252989419008588">Vaihda PIN-koodi</translation>
 <translation id="6200047250927636406">Hylkää tiedosto</translation>
 <translation id="6200151268994853226">Muokkaa laajennusta</translation>
@@ -5703,6 +5722,7 @@
 <translation id="6482559668224714696">Koko näytön suurennus</translation>
 <translation id="6483485061007832714">Avaa lataus</translation>
 <translation id="6483805311199035658">Avataan tiedostoa <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">Jos haluat hallinnoida avainkoodeja, käytä uudempaa Windows-versiota</translation>
 <translation id="6488384360522318064">Valitse kieli</translation>
 <translation id="648927581764831596">Ei saatavilla</translation>
 <translation id="6490471652906364588">C-tyypin USB-laite (oikean sivun portti)</translation>
@@ -6186,6 +6206,10 @@
 <translation id="6943939122536910181">Yhteys katkaistu: <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Valitse</translation>
 <translation id="694592694773692225">Uudelleenohjaus estettiin tällä sivulla.</translation>
+<translation id="6947015141909171112">Näet reseptejä, jotka perustuvat viime aikoina hakemiisi resepteihin.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Voit muuttaa asetuksia korttivalikossa. Lisää vaihtoehtoja löydät Yksilöi Chromea ‑osiosta.</translation>
 <translation id="6949434160682548041">Salasana (valinnainen)</translation>
 <translation id="6950627417367801484">Palauta sovellukset</translation>
 <translation id="6952242901357037157">Voit myös näyttää <ph name="BEGIN_LINK" />Google-tilisi<ph name="END_LINK" /> salasanat täällä</translation>
@@ -6285,6 +6309,7 @@
 <translation id="7029307918966275733">Crostinia ei ole asennettu. Asenna Crostini nähdäksesi tekijätiedot.</translation>
 <translation id="7029809446516969842">Salasanat</translation>
 <translation id="7030304022046916278">Lähettää URL-osoitteita Selaussuojan tarkistettavaksi</translation>
+<translation id="7030695672997239647">Klikkaa välilehteä kakkospainikkeella, valitse Lisää välilehti ryhmään ja valitse sitten Uusi ryhmä</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> – Sarjaportti yhdistetty</translation>
 <translation id="7033616203784997570">Syöte voi olla enintään 62 merkkiä</translation>
 <translation id="7034692021407794547">Järjestelmänvalvojan, jolla on Laskutuksen hallinta ‑lupa, täytyy ensin hyväksyä Google Meet ‑laitteiston käyttöehdot hallintakonsolin kohdasta "Google Meet ‑laitteisto".</translation>
@@ -6353,6 +6378,7 @@
 <translation id="7102687220333134671">Automaattiset päivitykset ovat käytössä.</translation>
 <translation id="7102832101143475489">Pyyntö aikakatkaistiin</translation>
 <translation id="710640343305609397">Avaa verkkoasetukset</translation>
+<translation id="7107609441453408294">Toista sama audio kaikista kaiuttimista</translation>
 <translation id="7108338896283013870">Piilota</translation>
 <translation id="7108668606237948702">kirjoita</translation>
 <translation id="7108933416628942903">Lukitse nyt</translation>
@@ -6583,6 +6609,7 @@
 <translation id="7364745943115323529">Suoratoista…</translation>
 <translation id="7364796246159120393">Valitse tiedosto</translation>
 <translation id="7365076891350562061">Näytön koko</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> – Kiinnitetty</translation>
 <translation id="7366316827772164604">Etsitään lähellä olevia laitteita…</translation>
 <translation id="7366415735885268578">Lisää sivusto</translation>
 <translation id="7366909168761621528">Selausdata</translation>
@@ -6979,6 +7006,7 @@
 <translation id="7737115349420013392"><ph name="DEVICE_NAME" /> lisätään laitepariksi…</translation>
 <translation id="7737846262459425222">Voit muuttaa tätä koska tahansa valitsemalla Asetukset &gt; Google Assistant &gt; Näyttökonteksti.</translation>
 <translation id="7737948071472253612">Kameran käyttö kielletty</translation>
+<translation id="77381465218432215">Näytä aksenttimerkit ja erikoismerkit</translation>
 <translation id="7740996059027112821">Vakio</translation>
 <translation id="7741307896921365578">Sallii selaintason sivupaneelille pääsyn lukulistallesi ja kirjanmerkkeihisi hyödyllisellä ja pysyvällä tavalla.</translation>
 <translation id="7742558784808143689">Tyhjennetäänkö sivuston <ph name="SITE_NAME" />, kaikkien sen alla olevien sivustojen ja asennettujen sovellusten sivustodata ja luvat?</translation>
@@ -7383,6 +7411,7 @@
 <translation id="8101987792947961127">Powerwash vaaditaan seuraavan uudelleenkäynnistyksen yhteydessä</translation>
 <translation id="81020759409809034">Paikallinen sijainti</translation>
 <translation id="8102139037507939978">Poista henkilökohtaiset tunnistetiedot system_logs.txt-tiedostosta.</translation>
+<translation id="810362914482827094">Hae avainkoodeja</translation>
 <translation id="8104088837833760645">Lataa eSIM-profiili</translation>
 <translation id="8105368624971345109">Poista käytöstä</translation>
 <translation id="8107015733319732394"><ph name="DEVICE_TYPE" /> asentaa Google Play Kauppaa. Tämä voi kestää pari minuuttia.</translation>
@@ -7768,6 +7797,7 @@
 <translation id="8486666913807228950">Syy: Käänteinen sääntö <ph name="REVERT_RULE" /> löytyi "Pakota avaaminen täällä:" ‑luettelosta.</translation>
 <translation id="848666842773560761">Sovellus yrittää käyttää kameraa. Salli kameran käyttö laittamalla sen yksityisyysvalinta pois päältä.</translation>
 <translation id="8487678622945914333">Lähennä</translation>
+<translation id="8487699605742506766">Hotspot</translation>
 <translation id="8489156414266187072">Henkilökohtaisia ehdotuksia näytetään vain sinun tililläsi</translation>
 <translation id="8490896350101740396">Seuraavat kioskisovellukset on päivitetty: <ph name="UPDATED_APPS" />. Suorita päivitys loppuun käynnistämällä laite uudelleen.</translation>
 <translation id="8492685019009920170">Kosketa sormenjälkitunnistinta sormellasi. Datasi tallennetaan turvallisesti laitteellesi, eikä data koskaan poistu sieltä (<ph name="DEVICE_TYPE" />).</translation>
@@ -7829,6 +7859,7 @@
 <translation id="8557022314818157177">Jatka suojausavaimen koskettamista, kunnes sormenjälki tallennetaan</translation>
 <translation id="8557180006508471423">Salli "Google Chrome" Macin sijaintipalveluissa</translation>
 <translation id="8557856025359704738">Seuraava lataus tehdään <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Avainkoodit</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Avaa kaikki uudessa ikku&amp;nassa}=1{Avaa uudessa ikku&amp;nassa}other{Avaa kaikki ({COUNT}) uudessa ikku&amp;nassa}}</translation>
 <translation id="8561206103590473338">Norsu</translation>
 <translation id="8561565784790166472">Harkitse tarkkaan ennen kuin jatkat</translation>
@@ -7955,6 +7986,7 @@
 <translation id="8677212948402625567">Tiivistä kaikki...</translation>
 <translation id="867767487203716855">Seuraava päivitys</translation>
 <translation id="8677859815076891398">Albumeja ei ole. Luo albumi <ph name="LINK_BEGIN" />Google Kuvissa<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Käynnistä uudelleen ja päivitä automaattisesti</translation>
 <translation id="8678538439778360739">Data salattiin synkronoinnin tunnuslauseellasi <ph name="TIME" />. Tämä ei koske Google Payhin tallennettuja maksutapoja tai osoitteita.</translation>
 <translation id="8678582529642151449">Välilehdet eivät kutistu</translation>
 <translation id="8678933587484842200">Miten haluat käynnistää tämän sovelluksen?</translation>
@@ -8201,6 +8233,7 @@
 <translation id="8910987510378294980">Piilota laiteluettelo</translation>
 <translation id="8912362522468806198">Google-tilisi avulla</translation>
 <translation id="8912810933860534797">Ota automaattinen skannaus käyttöön</translation>
+<translation id="8915307125957890427">Klikkaa välilehteä kakkospainikkeella, valitse Lisää välilehti ryhmään ja valitse sitten Uusi ryhmä</translation>
 <translation id="8915370057835397490">Ladataan ehdotusta</translation>
 <translation id="8916476537757519021">Incognito-alakehys: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="DEVICE_TYPE" /> (<ph name="GIVEN_NAME" />)</translation>
@@ -8261,6 +8294,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{<ph name="TAB_TITLE" />}=1{<ph name="TAB_TITLE" /> ja yksi muu välilehti}other{<ph name="TAB_TITLE" /> ja # muuta välilehteä}}</translation>
 <translation id="8977811652087512276">Virheellinen salasana tai vioittunut tiedosto</translation>
 <translation id="8978154919215542464">Käytössä – synkronoi kaikki</translation>
+<translation id="8978670037548431647">Päivitä yhteyden jako-ominaisuudet</translation>
 <translation id="897939795688207351">Osoitteessa <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Palauteraportit</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – kaatunut</translation>
@@ -8274,6 +8308,7 @@
 <translation id="8986362086234534611">Unohda</translation>
 <translation id="8986494364107987395">Lähetä Googlelle käyttötilastoja ja virheraportteja automaattisesti</translation>
 <translation id="8987927404178983737">Kuukausi</translation>
+<translation id="8989359959810288806">Päivitä yhteyden jakamisen tila</translation>
 <translation id="8991520179165052608">Sivusto voi käyttää mikrofoniasi</translation>
 <translation id="899384117894244799">Poista rajoitettu käyttäjä</translation>
 <translation id="899403249577094719">Netscape-varmenteen URL-osoite</translation>
@@ -8525,6 +8560,7 @@
 <translation id="935854577147268200">Smart Lock ‑puhelin on vaihtunut. Kirjoita salasana, jotta Smart Lock voidaan päivittää. Seuraavalla kerralla puhelimesi avaa laitteen <ph name="DEVICE_TYPE" /> lukituksen. Voit poistaa Smart Lockin käytöstä asetuksissa.</translation>
 <translation id="936646668635477464">Kamera ja mikrofoni</translation>
 <translation id="936801553271523408">Järjestelmän diagnostiikkatiedot</translation>
+<translation id="937053962468712792">Poistetaanko <ph name="DEVICE" /> tililtä <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Korjaa laajennus</translation>
 <translation id="938568644810664664">Kokeile kysyä "Hey Google, what song is this?" tai "Hey Google, what's on my screen?"</translation>
 <translation id="938623846785894166">Epätavallinen tiedosto</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 6669ed0..b88be53 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -4829,7 +4829,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Hindi pinapayagang kumonekta sa mga MIDI device</translation>
 <translation id="5602765853043467355">I-clear ang mga bookmark, history, mga password, at higit pa sa device na ito</translation>
-<translation id="5605623530403479164">Iba pang mga search engine</translation>
 <translation id="5605758115928394442">Nagpadala ng notification sa iyong telepono para kumpirmahing ikaw nga ito.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Naka-block ang extension na ito}one{Naka-block ang mga extension na ito}other{Naka-block ang mga extension na ito}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync, Matuto Pa</translation>
@@ -5128,6 +5127,7 @@
 <translation id="5909379458939060601">I-delete ang profile at data mula sa pag-browse na ito?</translation>
 <translation id="5910363049092958439">I-sa&amp;ve ang Imahe Bilang...</translation>
 <translation id="5910726859585389579">Offline ang <ph name="DEVICE_TYPE" /></translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">Shortcut viewer</translation>
 <translation id="5914724413750400082">Modulus (<ph name="MODULUS_NUM_BITS" /> (na) bit):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 5d288ad..d7473ff 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -2200,6 +2200,7 @@
 <translation id="3021065318976393105">Sur la pile</translation>
 <translation id="3021066826692793094">Papillon</translation>
 <translation id="3021678814754966447">&amp;Afficher le code source du cadre</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> sera retiré de ce Chromebook et ne sera pas enregistré dans <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Je n'ai pas compris.</translation>
 <translation id="3023464535986383522">Sélectionner pour énoncer</translation>
 <translation id="3024374909719388945">Utiliser l'horloge au format 24 heures</translation>
@@ -3738,6 +3739,7 @@
 <translation id="4535127706710932914">Profil par défaut</translation>
 <translation id="4535767533210902251">Le capteur d'empreintes digitales se trouve sur la touche dans le coin supérieur droit de votre clavier. Touchez-le doucement avec n'importe quel doigt.</translation>
 <translation id="4536140153723794651">Sites qui peuvent toujours utiliser les témoins</translation>
+<translation id="4536769240747010177">Fonctionnalités de partage de connexion :</translation>
 <translation id="4538417792467843292">Supprimer un mot</translation>
 <translation id="4538792345715658285">Installée conformément à la politique d'entreprise.</translation>
 <translation id="4541123282641193691">Impossible de vérifier votre compte. Veuillez réessayer ou redémarrer votre Chromebook.</translation>
@@ -3765,6 +3767,7 @@
 <translation id="4561893854334016293">Aucune autorisation n'a récemment été modifiée</translation>
 <translation id="4562155214028662640">Ajouter une empreinte digitale</translation>
 <translation id="4563210852471260509">Le chinois est la langue d'entrée initiale</translation>
+<translation id="4563382028841851106">Retirer du compte</translation>
 <translation id="4563880231729913339">Doigt 3</translation>
 <translation id="4564245002465020751">Terminer la configuration sur votre téléphone</translation>
 <translation id="4565377596337484307">Masquer le mot de passe</translation>
@@ -4674,6 +4677,7 @@
 <translation id="5470735824776589490">Vous devez redémarrer votre appareil avant de pouvoir faire une réinitialisation Powerwash. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Bonjour! Je suis votre voix pour la synthèse vocale.</translation>
 <translation id="5472627187093107397">Enregistrer les mots de passe pour ce site</translation>
+<translation id="5473062644742711742">Trouver plus d'outils d'accessibilité dans la boutique en ligne Chrome Web Store</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">En continuant, vous acceptez que cet appareil puisse également recevoir et installer automatiquement des mises à jour et des applications de Google, du fournisseur de services de votre enfant, et de son fabricant (et utiliser les données cellulaires, le cas échéant). Certaines de ces applications offrent des achats au moyen de l'application.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Le NIP doit comprendre au moins un caractère}one{Le NIP doit comprendre au moins # caractère}other{Le NIP doit comprendre au moins # caractères}}</translation>
@@ -4821,7 +4825,6 @@
 <translation id="5601503069213153581">NIP</translation>
 <translation id="5601823921345337195">Non autorisés à se connecter à des appareils MIDI</translation>
 <translation id="5602765853043467355">Effacer les favoris, l'historique, les mots de passe et autres de cet appareil</translation>
-<translation id="5605623530403479164">Autres moteurs de recherche</translation>
 <translation id="5605758115928394442">Nous avons envoyé une notification à votre téléphone pour confirmer votre identité.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Cette extension est bloquée}one{Cette extension est bloquée}other{Ces extensions sont bloquées}}</translation>
 <translation id="560834977503641186">Synchronisation Wi-Fi, en savoir plus</translation>
@@ -5122,6 +5125,7 @@
 <translation id="5909379458939060601">Supprimer ce profil et les données de navigation?</translation>
 <translation id="5910363049092958439">En&amp;registrer l'image sous...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> est hors ligne</translation>
+<translation id="5911030830365207728">Google Traduction</translation>
 <translation id="5911533659001334206">Visualiseur de raccourcis</translation>
 <translation id="5914724413750400082">Module (<ph name="MODULUS_NUM_BITS" /> bits) :
   <ph name="MODULUS_HEX_DUMP" />
@@ -6195,6 +6199,10 @@
 <translation id="6943939122536910181">Déconnecté de <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Sélectionner</translation>
 <translation id="694592694773692225">Redirection bloquée sur cette page.</translation>
+<translation id="6947015141909171112">Des recettes sont affichées en fonction de votre activité de recherche récente sur ce sujet.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Vous pouvez gérer les paramètres à partir du menu de la carte ou voir plus d'options dans Personnaliser Chrome.</translation>
 <translation id="6949434160682548041">Mot de passe (facultatif)</translation>
 <translation id="6950627417367801484">Restaurer les applications</translation>
 <translation id="6952242901357037157">Vous pouvez aussi afficher les mots de passe de votre <ph name="BEGIN_LINK" />compte Google<ph name="END_LINK" /> ici</translation>
@@ -6991,6 +6999,7 @@
 <translation id="7737115349420013392">Association avec « <ph name="DEVICE_NAME" /> » en cours…</translation>
 <translation id="7737846262459425222">Vous pouvez modifier cette option en tout temps dans Paramètres &gt; Assistant Google &gt; Contexte à l'écran.</translation>
 <translation id="7737948071472253612">Non autorisés à utiliser votre caméra</translation>
+<translation id="77381465218432215">Afficher les accents et les caractères spéciaux</translation>
 <translation id="7740996059027112821">Standard</translation>
 <translation id="7741307896921365578">Active un panneau latéral propre au navigateur pour offrir un accès utile et permanent à votre liste de lecture ainsi qu'à vos favoris.</translation>
 <translation id="7742558784808143689">Effacer les données et les autorisations relatives aux sites pour le site <ph name="SITE_NAME" />, tous les sites qui y sont subordonnés ainsi que les applications installées?</translation>
@@ -7781,6 +7790,7 @@
 <translation id="8486666913807228950">Motif : la règle inversée <ph name="REVERT_RULE" /> a été trouvée dans la liste « Forcer l'ouverture dans ».</translation>
 <translation id="848666842773560761">Une application tente d'accéder à la caméra. Désactivez le commutateur de confidentialité de la caméra pour autoriser l'accès.</translation>
 <translation id="8487678622945914333">Zoom avant</translation>
+<translation id="8487699605742506766">Point d'accès sans fil</translation>
 <translation id="8489156414266187072">Les suggestions personnelles s'affichent seulement sur votre compte</translation>
 <translation id="8490896350101740396">Les applications de kiosque suivantes « <ph name="UPDATED_APPS" /> » ont été mises à jour. Veuillez redémarrer l'appareil pour terminer le processus de mise à jour.</translation>
 <translation id="8492685019009920170">Touchez le capteur d'empreintes digitales avec votre doigt. Les données sont stockées de façon sécurisée et ne quittent jamais votre <ph name="DEVICE_TYPE" />.</translation>
@@ -8278,6 +8288,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{« <ph name="TAB_TITLE" /> »}=1{« <ph name="TAB_TITLE" /> » et 1 autre onglet}one{« <ph name="TAB_TITLE" /> » et # autre onglet}other{« <ph name="TAB_TITLE" /> » et # autres onglets}}</translation>
 <translation id="8977811652087512276">Mot de passe incorrect ou fichier corrompu</translation>
 <translation id="8978154919215542464">Activé - tout synchroniser</translation>
+<translation id="8978670037548431647">Actualiser les fonctionnalités de partage de connexion</translation>
 <translation id="897939795688207351">Sur <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Rapports de commentaire</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Plantage</translation>
@@ -8543,6 +8554,7 @@
 <translation id="935854577147268200">Changement de téléphone Smart Lock. Entrez votre mot de passe pour mettre à jour Smart Lock. La prochaine fois, votre téléphone pourra déverrouiller votre <ph name="DEVICE_TYPE" />. Vous pouvez désactiver Smart Lock dans le menu Paramètres.</translation>
 <translation id="936646668635477464">Caméra et microphone</translation>
 <translation id="936801553271523408">Données de diagnostic système</translation>
+<translation id="937053962468712792">Retirer <ph name="DEVICE" /> de <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Réparer l'extension</translation>
 <translation id="938568644810664664">Essayez « Ok Google, quelle est cette chanson? » ou « Ok Google, qu'y a-t-il sur mon écran? »</translation>
 <translation id="938623846785894166">Fichier inhabituel</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 4269431..fe968c0 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -896,6 +896,7 @@
 <translation id="1829129547161959350">Pingouin</translation>
 <translation id="1829192082282182671">Z&amp;oom arrière</translation>
 <translation id="1830550083491357902">Non connecté</translation>
+<translation id="1831848493690504725">Impossible de joindre Google via le réseau connecté. Choisissez un autre réseau ou vérifiez vos paramètres réseau ou vos paramètres proxy (si vous utilisez un proxy).</translation>
 <translation id="1832459821645506983">Oui, j'accepte</translation>
 <translation id="1832511806131704864">Changement de téléphone mis à jour</translation>
 <translation id="1832848789136765277">Pour toujours avoir accès à vos données synchronisées, confirmez votre identité</translation>
@@ -2194,6 +2195,7 @@
 <translation id="3021065318976393105">Lorsque l'appareil est sur batterie</translation>
 <translation id="3021066826692793094">Papillon</translation>
 <translation id="3021678814754966447">&amp;Afficher le code source du cadre</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> sera supprimé de ce Chromebook et ne sera pas enregistré dans <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Je n'ai pas compris.</translation>
 <translation id="3023464535986383522">Sélectionner pour prononcer</translation>
 <translation id="3024374909719388945">Utiliser l'horloge au format 24 heures</translation>
@@ -3732,6 +3734,7 @@
 <translation id="4535127706710932914">Profil par défaut</translation>
 <translation id="4535767533210902251">Le lecteur d'empreinte digitale est la touche située en haut à droite de votre clavier. Appuyez dessus légèrement avec n'importe quel doigt.</translation>
 <translation id="4536140153723794651">Sites autorisés à utiliser des cookies</translation>
+<translation id="4536769240747010177">Fonctionnalités de partage de connexion :</translation>
 <translation id="4538417792467843292">Supprimer le mot</translation>
 <translation id="4538792345715658285">Installée conformément à une règle d'entreprise</translation>
 <translation id="4541123282641193691">Impossible de valider votre compte. Veuillez réessayer ou redémarrer votre Chromebook.</translation>
@@ -3759,6 +3762,7 @@
 <translation id="4561893854334016293">Aucune autorisation modifiée récemment</translation>
 <translation id="4562155214028662640">Ajouter empreinte digitale</translation>
 <translation id="4563210852471260509">Le chinois est la langue de saisie initiale</translation>
+<translation id="4563382028841851106">Supprimer du compte</translation>
 <translation id="4563880231729913339">Doigt 3</translation>
 <translation id="4564245002465020751">Terminer la configuration sur votre téléphone</translation>
 <translation id="4565377596337484307">Masquer le mot de passe</translation>
@@ -4735,6 +4739,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> souhaite</translation>
 <translation id="5534304873398226603">Supprimer la photo ou la vidéo</translation>
 <translation id="5537725057119320332">Caster</translation>
+<translation id="5539070192556911367">Impossible de joindre Google</translation>
 <translation id="5539221284352502426">Le serveur a refusé le mot de passe que vous avez saisi. Voici plusieurs raisons possibles : le mot de passe est trop court. Il ne contient pas de chiffres ni de symboles. Il est identique aux précédents mots de passe.</translation>
 <translation id="5541694225089836610">Votre administrateur a désactivé cette action</translation>
 <translation id="5542132724887566711">Profil</translation>
@@ -4798,6 +4803,7 @@
 <translation id="5585912436068747822">Échec du formatage</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Chargement des applications…</translation>
+<translation id="5590418976913374224">Émettre un son au démarrage de l'appareil</translation>
 <translation id="5592595402373377407">Les données disponibles sont insuffisantes pour le moment.</translation>
 <translation id="5595307023264033512">Espace de stockage total utilisé par les sites : <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Modifier l'adresse</translation>
@@ -4807,7 +4813,6 @@
 <translation id="5601503069213153581">Code d'accès</translation>
 <translation id="5601823921345337195">Non autorisé à se connecter à des appareils MIDI</translation>
 <translation id="5602765853043467355">Effacer les favoris, l'historique, les mots de passe et autres paramètres de cet appareil</translation>
-<translation id="5605623530403479164">Autres moteurs de recherche</translation>
 <translation id="5605758115928394442">Une notification a été envoyée à votre téléphone pour que vous puissiez confirmer votre identité.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Cette extension est bloquée}one{Cette extension est bloquée}other{Ces extensions sont bloquées}}</translation>
 <translation id="560834977503641186">Sync Wi-Fi (en savoir plus)</translation>
@@ -5107,6 +5112,7 @@
 <translation id="5909379458939060601">Supprimer ce profil et les données de connexion ?</translation>
 <translation id="5910363049092958439">En&amp;registrer l'image sous...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> est hors connexion</translation>
+<translation id="5911030830365207728">Google Traduction</translation>
 <translation id="5911533659001334206">Visionneuse de raccourcis</translation>
 <translation id="5914724413750400082">Module (<ph name="MODULUS_NUM_BITS" /> bits) :
   <ph name="MODULUS_HEX_DUMP" />
@@ -6178,6 +6184,10 @@
 <translation id="6943939122536910181">Déconnecté de <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Sélectionner</translation>
 <translation id="694592694773692225">Redirection bloquée sur cette page.</translation>
+<translation id="6947015141909171112">Des recettes vous sont suggérées en fonction de vos recherches récentes de recettes.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Vous pouvez gérer les paramètres dans le menu de la carte ou voir plus d'options dans "Personnaliser Chrome".</translation>
 <translation id="6949434160682548041">Mot de passe (facultatif)</translation>
 <translation id="6950627417367801484">Restaurer les applications</translation>
 <translation id="6952242901357037157">Vous pouvez également afficher les mots de passe de votre <ph name="BEGIN_LINK" />compte Google<ph name="END_LINK" /> ici</translation>
@@ -6345,6 +6355,7 @@
 <translation id="7102687220333134671">Les mises à jour automatiques sont activées</translation>
 <translation id="7102832101143475489">Le délai imparti à la demande est dépassé</translation>
 <translation id="710640343305609397">Ouvrir les paramètres réseau</translation>
+<translation id="7107609441453408294">Lire le même contenu audio sur toutes les enceintes</translation>
 <translation id="7108338896283013870">Masquer</translation>
 <translation id="7108668606237948702">saisir la clé</translation>
 <translation id="7108933416628942903">Verrouiller maintenant</translation>
@@ -6575,6 +6586,7 @@
 <translation id="7364745943115323529">Caster…</translation>
 <translation id="7364796246159120393">Choisir un fichier</translation>
 <translation id="7365076891350562061">Taille du moniteur</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> - Épinglée</translation>
 <translation id="7366316827772164604">Recherche d'appareils à proximité…</translation>
 <translation id="7366415735885268578">Ajouter un site</translation>
 <translation id="7366909168761621528">Données de navigation</translation>
@@ -6971,6 +6983,7 @@
 <translation id="7737115349420013392">Association avec "<ph name="DEVICE_NAME" />" en cours…</translation>
 <translation id="7737846262459425222">Vous pouvez modifier cette option à tout moment dans Paramètres &gt; Assistant Google &gt; Contexte de l'écran.</translation>
 <translation id="7737948071472253612">Non autorisé à utiliser votre caméra</translation>
+<translation id="77381465218432215">Afficher les accents et les caractères spéciaux</translation>
 <translation id="7740996059027112821">Standard</translation>
 <translation id="7741307896921365578">Activer un panneau latéral dans le navigateur pour accéder facilement et en permanence à votre liste de lecture et à vos favoris.</translation>
 <translation id="7742558784808143689">Effacer les données et autorisations de "<ph name="SITE_NAME" />", de tous les sites qui en dépendent et des applis installées ?</translation>
@@ -7761,6 +7774,7 @@
 <translation id="8486666913807228950">Motif : la règle inversée <ph name="REVERT_RULE" /> a été trouvée dans la liste "Forcer l'ouverture dans".</translation>
 <translation id="848666842773560761">Une appli tente d'accéder à la caméra. Pour lui accorder l'accès, désactivez le paramètre de confidentialité de la caméra.</translation>
 <translation id="8487678622945914333">Zoom avant</translation>
+<translation id="8487699605742506766">Point d'accès</translation>
 <translation id="8489156414266187072">Les suggestions personnelles ne sont affichées que sur votre compte</translation>
 <translation id="8490896350101740396">Les applications kiosque "<ph name="UPDATED_APPS" />" ont bien été mises à jour. Veuillez redémarrer l'appareil afin de terminer la procédure.</translation>
 <translation id="8492685019009920170">Appuyez sur le lecteur d'empreinte. Les données sont stockées de façon sécurisée et ne quittent jamais votre <ph name="DEVICE_TYPE" />.</translation>
@@ -8255,6 +8269,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" et 1 autre onglet}one{"<ph name="TAB_TITLE" />" et # autre onglet}other{"<ph name="TAB_TITLE" />" et # autres onglets}}</translation>
 <translation id="8977811652087512276">Mot de passe incorrect ou fichier corrompu</translation>
 <translation id="8978154919215542464">Activée – Tout synchroniser</translation>
+<translation id="8978670037548431647">Actualiser les fonctionnalités de partage de connexion</translation>
 <translation id="897939795688207351">Sur <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Rapports de commentaires</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – Plantage</translation>
@@ -8519,6 +8534,7 @@
 <translation id="935854577147268200">Le téléphone Smart Lock a changé. Saisissez votre mot de passe pour activer Smart Lock. La prochaine fois, votre téléphone déverrouillera votre <ph name="DEVICE_TYPE" />. Vous pouvez désactiver Smart Lock dans les paramètres.</translation>
 <translation id="936646668635477464">Caméra et micro</translation>
 <translation id="936801553271523408">Données de diagnostic système</translation>
+<translation id="937053962468712792">Supprimer <ph name="DEVICE" /> de <ph name="PRIMARY_EMAIL" /> ?</translation>
 <translation id="93766956588638423">Réparer l'extension</translation>
 <translation id="938568644810664664">Essayez "Hey Google, quelle est cette chanson ?" ou "Hey Google, qu'est-ce qu'il y a à l'écran ?"</translation>
 <translation id="938623846785894166">Fichier inhabituel</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index c4c7d02..0d5595d 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -894,6 +894,7 @@
 <translation id="1829129547161959350">Pingüín</translation>
 <translation id="1829192082282182671">A&amp;fastar</translation>
 <translation id="1830550083491357902">Sesión non iniciada</translation>
+<translation id="1831848493690504725">Non se puido acceder a Google a través da rede conectada. Proba a escoller unha rede diferente ou a comprobar a súa configuración ou a do proxy (se é que estás utilizando un).</translation>
 <translation id="1832459821645506983">Si, acepto</translation>
 <translation id="1832511806131704864">Cambio de teléfono actualizado</translation>
 <translation id="1832848789136765277">Para asegurarte de poder acceder sempre aos teus datos sincronizados, verifica a túa identidade</translation>
@@ -2192,6 +2193,7 @@
 <translation id="3021065318976393105">Durante o uso da batería</translation>
 <translation id="3021066826692793094">Bolboreta</translation>
 <translation id="3021678814754966447">&amp;Ver fonte do marco</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> quitarase deste Chromebook e non se gardará en <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Non se entendeu a mensaxe.</translation>
 <translation id="3023464535986383522">Escoitar selección</translation>
 <translation id="3024374909719388945">Utilizar reloxo de 24 horas</translation>
@@ -3730,6 +3732,7 @@
 <translation id="4535127706710932914">Perfil predeterminado</translation>
 <translation id="4535767533210902251">O sensor de impresión dixital está na tecla situada na parte superior dereita do teclado. Tócaa suavemente con calquera dedo.</translation>
 <translation id="4536140153723794651">Sitios que sempre poden utilizar cookies</translation>
+<translation id="4536769240747010177">Funcións de conexión compartida:</translation>
 <translation id="4538417792467843292">Eliminar palabra</translation>
 <translation id="4538792345715658285">Instalada pola política de empresa.</translation>
 <translation id="4541123282641193691">Non se puido verificar a túa conta. Téntao de novo ou reinicia o Chromebook.</translation>
@@ -3757,6 +3760,7 @@
 <translation id="4561893854334016293">Non cambiaches ningún permiso recentemente</translation>
 <translation id="4562155214028662640">Engadir impresión dixital</translation>
 <translation id="4563210852471260509">O idioma inicial de introdución de texto é o chinés</translation>
+<translation id="4563382028841851106">Eliminar da conta</translation>
 <translation id="4563880231729913339">Dedo 3</translation>
 <translation id="4564245002465020751">Finalizar a configuración no teléfono</translation>
 <translation id="4565377596337484307">Ocultar contrasinal</translation>
@@ -4733,6 +4737,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> quere:</translation>
 <translation id="5534304873398226603">Descartar foto ou vídeo</translation>
 <translation id="5537725057119320332">Emitir</translation>
+<translation id="5539070192556911367">Non se puido acceder a Google</translation>
 <translation id="5539221284352502426">O servidor rexeitou o contrasinal que introduciches. Pode deberse a algunha destas causas: o contrasinal é demasiado curto, debe incluír números ou símbolos, ou non é diferente dos contrasinais anteriores.</translation>
 <translation id="5541694225089836610">O teu administrador desactivou esta acción</translation>
 <translation id="5542132724887566711">Perfil</translation>
@@ -4796,6 +4801,7 @@
 <translation id="5585912436068747822">Erro de formato</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Cargando aplicacións...</translation>
+<translation id="5590418976913374224">Reproducir son ao iniciar o dispositivo</translation>
 <translation id="5592595402373377407">Aínda non hai datos suficientes dispoñibles.</translation>
 <translation id="5595307023264033512">Almacenamento total usado polos sitios: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Editar enderezo</translation>
@@ -4805,7 +4811,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Sitios que non poden conectarse a dispositivos MIDI</translation>
 <translation id="5602765853043467355">Borrar marcadores, historial, contrasinais etc., deste dispositivo</translation>
-<translation id="5605623530403479164">Outros motores de busca</translation>
 <translation id="5605758115928394442">Enviouse unha notificación ao teu teléfono para confirmar a túa identidade.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Esta extensión está bloqueada}other{Estas extensións están bloqueadas}}</translation>
 <translation id="560834977503641186">Sincronización wifi; máis información</translation>
@@ -5102,6 +5107,7 @@
 <translation id="5909379458939060601">Queres eliminar este perfil e os datos de navegación?</translation>
 <translation id="5910363049092958439">Gar&amp;dar imaxe como...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> está sen conexión</translation>
+<translation id="5911030830365207728">Tradutor de Google</translation>
 <translation id="5911533659001334206">Visor de atallos</translation>
 <translation id="5914724413750400082">Módulo (<ph name="MODULUS_NUM_BITS" /> bits):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6170,6 +6176,10 @@
 <translation id="6943939122536910181">Desconectado de: <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Seleccionar</translation>
 <translation id="694592694773692225">Bloqueouse a redirección nesta páxina.</translation>
+<translation id="6947015141909171112">Estás vendo receitas baseadas na túa actividade recente na Busca en relación con este tema.
+        <ph name="BREAK" />
+<ph name="BREAK" />
+Podes xestionar a configuración desde o menú da tarxeta ou ver máis opcións en Personalizar Chrome.</translation>
 <translation id="6949434160682548041">Contrasinal (opcional)</translation>
 <translation id="6950627417367801484">Restaurar aplicacións</translation>
 <translation id="6952242901357037157">Tamén podes mostrar aquí os contrasinais da túa <ph name="BEGIN_LINK" />Conta de Google<ph name="END_LINK" /></translation>
@@ -6337,6 +6347,7 @@
 <translation id="7102687220333134671">As actualizacións automáticas están activadas</translation>
 <translation id="7102832101143475489">Esgotouse o tempo de espera da solicitude</translation>
 <translation id="710640343305609397">Abrir configuración de rede</translation>
+<translation id="7107609441453408294">Reproduce o mesmo audio por todos os altofalantes</translation>
 <translation id="7108338896283013870">Ocultar</translation>
 <translation id="7108668606237948702">intro</translation>
 <translation id="7108933416628942903">Bloquear agora</translation>
@@ -6567,6 +6578,7 @@
 <translation id="7364745943115323529">Emitir...</translation>
 <translation id="7364796246159120393">Seleccionar ficheiro</translation>
 <translation id="7365076891350562061">Tamaño do monitor</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> (pestana fixada)</translation>
 <translation id="7366316827772164604">Buscando dispositivos próximos...</translation>
 <translation id="7366415735885268578">Engade un sitio</translation>
 <translation id="7366909168761621528">Datos de navegación</translation>
@@ -6963,6 +6975,7 @@
 <translation id="7737115349420013392">Vinculando co dispositivo (<ph name="DEVICE_NAME" />)...</translation>
 <translation id="7737846262459425222">Podes cambiar esta opción cando queiras en Configuración &gt; Asistente de Google &gt; Contexto da pantalla.</translation>
 <translation id="7737948071472253612">Sitios que non poden usar a cámara</translation>
+<translation id="77381465218432215">Mostrar acentos e caracteres especiais</translation>
 <translation id="7740996059027112821">Estándar</translation>
 <translation id="7741307896921365578">Activa un útil panel lateral que che permite ter sempre á man a túa lista de lectura e os marcadores.</translation>
 <translation id="7742558784808143689">Queres borrar os datos dos sitios e os permisos de <ph name="SITE_NAME" />, todos os sitios que inclúa e tamén as aplicacións que ten instaladas?</translation>
@@ -7751,6 +7764,7 @@
 <translation id="8486666913807228950">Razón: atopouse a regra invertida <ph name="REVERT_RULE" /> na lista "Forzar a apertura en".</translation>
 <translation id="848666842773560761">Hai unha aplicación que está tentando acceder á cámara. Para darlle acceso, desactiva o interruptor de privacidade da cámara.</translation>
 <translation id="8487678622945914333">Achegar o zoom</translation>
+<translation id="8487699605742506766">Zona wifi</translation>
 <translation id="8489156414266187072">As suxestións persoais só se mostran na túa conta</translation>
 <translation id="8490896350101740396">Actualizáronse as seguintes aplicacións de quiosco: "<ph name="UPDATED_APPS" />". Reinicia o dispositivo para completar o proceso de actualización.</translation>
 <translation id="8492685019009920170">Toca o sensor de impresión dixital co dedo. Os teus datos almacenaranse de maneira segura no teu dispositivo (<ph name="DEVICE_TYPE" />) e nunca sairán del.</translation>
@@ -8244,6 +8258,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" e 1 pestana máis}other{"<ph name="TAB_TITLE" />" e # pestanas máis}}</translation>
 <translation id="8977811652087512276">O contrasinal é incorrecto ou o ficheiro está danado</translation>
 <translation id="8978154919215542464">Activado: sincronizar todo</translation>
+<translation id="8978670037548431647">Actualizar funcións de conexión compartida</translation>
 <translation id="897939795688207351">En <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Informes de comentarios</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" />: produciuse un fallo</translation>
@@ -8508,6 +8523,7 @@
 <translation id="935854577147268200">Modificouse o teléfono que ten activada a función Smart Lock. Introduce o teu contrasinal para actualizar a función. A próxima vez, o teléfono desbloqueará o dispositivo <ph name="DEVICE_TYPE" />. Podes desactivar Smart Lock en Configuración</translation>
 <translation id="936646668635477464">Cámara e micrófono</translation>
 <translation id="936801553271523408">Datos de diagnóstico do sistema</translation>
+<translation id="937053962468712792">Queres quitar <ph name="DEVICE" /> de <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Reparar extensión</translation>
 <translation id="938568644810664664">Tenta dicir: “Hey Google, que canción é esta?” ou “Hey Google, que hai na miña pantalla?”</translation>
 <translation id="938623846785894166">O ficheiro non é habitual</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index bd27aa78..61356e8f 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">તમારા માઇક્રોફોનનો અને કૅમેરાનો ઉપયોગ કરો</translation>
 <translation id="1005333234656240382">ADB ડિબગીંગ ચાલુ કરીએ?</translation>
 <translation id="1006873397406093306">આ એક્સ્ટેન્શન સાઇટ પરનો તમારો ડેટા વાંચી અને તેમાં ફેરફાર કરી શકે છે. એક્સ્ટેન્શન કઈ સાઇટને ઍક્સેસ કરી શકે છે તેને તમે નિયંત્રિત કરી શકો છો.</translation>
+<translation id="1007057452468855774">Google Play Store ચાલુ કરો</translation>
 <translation id="1008186147501209563">બુકમાર્ક નિકાસ કરો</translation>
 <translation id="1008557486741366299">હમણાં નહીં</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" /> સ્થાન</translation>
 <translation id="1009663062402466586">ગેમના નિયંત્રણો હવે ઉપલબ્ધ છે</translation>
 <translation id="1010498023906173788">આ ટૅબ સિરીઅલ પોર્ટ સાથે કનેક્ટ થયેલ છે.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{પેજ પ્રતિભાવ આપતું નથી}one{પેજ પ્રતિભાવ આપતું નથી}other{પેજ પ્રતિભાવ આપતું નથી}}</translation>
+<translation id="1011003645819296594">સાચવેલા ડિવાઇસ</translation>
 <translation id="1011355516189274711">ટેક્સ્ટ ટૂ સ્પીચનું વૉલ્યૂમ</translation>
 <translation id="1012794136286421601">તમારી Docs, Sheets, Slides, અને Drawings ફાઇલો સિંક થઈ રહી છે. ઑનલાઇન કે ઑફલાઇન તેમને વાપરવા માટે Google Drive ઍપ ખોલો.</translation>
 <translation id="1012876632442809908">USB-C ઉપકરણ (આગળનું પોર્ટ)</translation>
@@ -492,6 +494,7 @@
 <translation id="1470350905258700113">આ ડિવાઇસનો ઉપયોગ કરો</translation>
 <translation id="1470946456740188591">ટેક્સ્ટના કર્સર વડે બ્રાઉઝ કરવાનું ચાલુ અથવા બંધ કરવા માટે, Ctrl+Search+7 શૉર્ટકટ કીનો ઉપયોગ કરો</translation>
 <translation id="1472675084647422956">વધુ બતાવો</translation>
+<translation id="1473223074251193484">ઇન્ટરનેટ શેર કરવાની સુવિધાનું કન્ફિગ્યુરેશન સેટ કરો</translation>
 <translation id="1474785664565228650">માઇક્રોફોનના સેટિંગમાં ફેરફાર કરવા માટે, Parallelsનું ડેસ્કટૉપ ફરીથી લૉન્ચ કરવાની આવશ્યકતા રહેશે. આગળ વધવા માટે, Parallelsનું ડેસ્કટૉપ ફરીથી લૉન્ચ કરો.</translation>
 <translation id="1474893630593443211">તમે જુઓ છો તે જાહેરાતો પર વધુ નિયંત્રણ</translation>
 <translation id="1475502736924165259">તમારી પાસે ફાઇલ પર પ્રમાણપત્રો છે જે અન્ય કોઈપણ કૅટેગરીઝમાં ફિટ થતાં નથી</translation>
@@ -1110,6 +1113,7 @@
 <translation id="2044014337866019681">કૃપા કરીને ખાતરી કરો કે સત્રને અનલૉક કરવા માટે તમે <ph name="ACCOUNT" />ની ચકાસણી કરી રહ્યાં છો.</translation>
 <translation id="204497730941176055">Microsoft પ્રમાણપત્ર નમૂના નામ</translation>
 <translation id="2045117674524495717">કીબોર્ડ શૉર્ટકટ સહાયક</translation>
+<translation id="2045211794962848221">તમને આ ચોક્કસ મેસેજ ફરીથી દેખાશે નહીં</translation>
 <translation id="2045969484888636535">કૂકીઝ અવરોધિત કરવાનું ચાલુ રાખો</translation>
 <translation id="204622017488417136">તમારું ડિવાઇસ Chromeના અગાઉ ઇન્ટોલ કરેલા વર્ઝન પર પરત ફરશે. તમામ વપરાશકર્તા એકાઉન્ટ અને સ્થાનિક ડેટા દૂર કરવામાં આવશે. આ પહેલાંના જેવું કરી શકાતું નથી.</translation>
 <translation id="2046702855113914483">રામેન - જાપાનના એક પ્રકારના નૂડલ</translation>
@@ -3796,6 +3800,7 @@
 <translation id="4594577641390224176">શું સિસ્ટમની માહિતી ધરાવતું પેજ શોધી રહ્યાં છો? મુલાકાત લો</translation>
 <translation id="4595560905247879544">ઍપ્લિકેશન્સ અને એક્સટેન્શન્સને માત્ર સંચાલક (<ph name="CUSTODIAN_NAME" />) દ્વારા જ સંશોધિત કરી શકાય છે.</translation>
 <translation id="4596295440756783523">તમારી પાસે ફાઇલ પર પ્રમાણપત્રો છે જે આ સર્વર્સને ઓળખે છે</translation>
+<translation id="4598345735110653698">પાસકી મેનેજ કરો</translation>
 <translation id="4598556348158889687">સ્ટોરેજ સંચાલન</translation>
 <translation id="4598776695426288251">બહુવિધ ડિવાઇસ દ્વારા વાઇ-ફાઇ ઉપલબ્ધ</translation>
 <translation id="4601426376352205922">વાંચ્યા વગરનું તરીકે માર્ક કરો</translation>
@@ -4021,6 +4026,7 @@
 <translation id="4823894915586516138">આ પિન અથવા પાસવર્ડ તમારા ફોન પરથી તમે ઍક્સેસ કરો છો તેવી કોઈપણ માહિતી સહિત <ph name="DEVICE_TYPE" /> પરના તમારા ડેટાનું રક્ષણ કરે છે</translation>
 <translation id="4824037980212326045">Linux બૅકઅપ લો અને રિસ્ટોર કરો</translation>
 <translation id="4824958205181053313">સિંક કરવાનું રદ કરીએ?</translation>
+<translation id="4825532258163983651">પાસકી ડિલીટ કરી શકાતી નથી</translation>
 <translation id="4827675678516992122">કનેક્ટ કરી શકાયું નથી</translation>
 <translation id="4827784381479890589">Chrome બ્રાઉઝરમાં જોડણીની તપાસની વધારેલી સુવિધા (જોડણીના સૂચનો માટે ટેક્સ્ટ Googleને મોકલાય છે)</translation>
 <translation id="4827904420700932487">આ છબી માટે QR કોડ બનાવો</translation>
@@ -4283,6 +4289,7 @@
 <translation id="5087249366037322692">તૃતીય પક્ષ દ્વારા ઉમેરાયેલ</translation>
 <translation id="5087580092889165836">કાર્ડ ઉમેરો</translation>
 <translation id="5088534251099454936">RSA એન્ક્રિપ્શનવાળું PKCS #1 SHA-512</translation>
+<translation id="5089763948477033443">બાજુની પૅનલનું કદ બદલવાનું હેન્ડલ</translation>
 <translation id="5090637338841444533">તમારા કૅમેરાનું સ્ટેટસ ટ્રૅક કરવાની મંજૂરી નથી</translation>
 <translation id="5093569275467863761">બૅક/ફૉરવર્ડ કૅશ મેમરીમાં સ્ટોર કરેલી છૂપી સબફ્રેમ: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">તમે Files ઍપ અથવા અન્ય ઍપમાં, આ ઍપ વડે સપોર્ટેડ ફાઇલો ખોલી શકો છો અને તેમાં ફેરફાર કરી શકો છો. આ ઍપમાં ડિફૉલ્ટ તરીકે ખોલવામાં આવે તેવી ફાઇલોને નિયંત્રિત કરવા માટે, <ph name="BEGIN_LINK" />તમારા ડિવાઇસ પર ડિફૉલ્ટ ઍપને સેટ કરવાની રીત વિશે જાણો<ph name="END_LINK" />.</translation>
@@ -4448,6 +4455,7 @@
 <translation id="5258992782919386492">આ ડિવાઇસ પર ઇન્સ્ટૉલ કરો</translation>
 <translation id="5260334392110301220">સ્માર્ટ ક્વોટ</translation>
 <translation id="5260508466980570042">માફ કરશો, તમારો ઈમેઇલ અથવા પાસવર્ડ ચકાસી શકાયો નથી. કૃપા કરી ફરી પ્રયાસ કરો.</translation>
+<translation id="5260958083445173099">જ્યારે શક્ય હશે, ત્યારે વેબસાઇટ તમારી પસંદગીની ભાષાઓમાં કન્ટેન્ટ બતાવશે</translation>
 <translation id="5261683757250193089">વેબ દુકાનમાં ખોલો</translation>
 <translation id="5262178194499261222">પાસવર્ડ કાઢી નાખો</translation>
 <translation id="5262784498883614021">નેટવર્ક સાથે ઑટોમૅટિક રીતે કનેક્ટ થાઓ</translation>
@@ -4488,6 +4496,7 @@
 <translation id="5294097441441645251">કોઈ લોઅરકેસ અક્ષર અથવા અન્ડરસ્કોરથી જ શરૂ કરવું જોઈએ</translation>
 <translation id="5294618183559481278">તમારા ડિવાઇસની સ્ક્રીનની સામે કોઈ અન્ય વ્યક્તિની હાજરીની ભાળ મેળવવા માટે, તમારું <ph name="DEVICE_TYPE" /> બિલ્ટ-ઇન સેન્સરનો ઉપયોગ કરે છે. બધા ડેટા પર પ્રક્રિયા તરત જ તમારા ડિવાઇસમાં કરવામાં આવે છે અને પછી ડિલીટ કરવામાં આવે છે. સેન્સરનો ડેટા ક્યારેય Googleને મોકલવામાં આવતો નથી. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">બોલાયેલો પ્રતિસાદ સાંભળો, જેથી સ્ક્રીનની સામે જોયા વિના તમે તમારા ડિવાઇસનો ઉપયોગ કરી શકો. કનેક્ટ કરેલા ડિવાઇસ સાથે બ્રેઇલમાં પ્રતિસાદ આપવાની સુવિધા ઉપલબ્ધ છે.</translation>
+<translation id="5297005732522718715">ઇન્ટરનેટ શેર કરવાની સુવિધાનું કન્ફિગ્યુરેશન રિફ્રેશ કરો</translation>
 <translation id="5297082477358294722">પાસવર્ડ સાચવ્યો. સાચવેલા પાસવર્ડ તમારા <ph name="SAVED_PASSWORDS_STORE" />માં જુઓ અને મેનેજ કરો.</translation>
 <translation id="5297946558563358707">જ્યારે કોઈ અન્ય વ્યક્તિ તમારી સ્ક્રીનની તરફ જુએ, ત્યારે તમારી સ્ક્રીનની સૌથી નીચે જમણી બાજુનું પ્રાઇવસી આંખનું આઇકન પસંદ કરો</translation>
 <translation id="5298219193514155779">થીમ રચનાકાર</translation>
@@ -4658,6 +4667,7 @@
 <translation id="5466374726908360271">“<ph name="SEARCH_TERMS" />” પેસ્ટ કરો અને શોધો</translation>
 <translation id="5467207440419968613"><ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> બ્લૉક કરવામાં આવી</translation>
 <translation id="5468173180030470402">શેર કરેલી ફાઇલ માટે શોધી રહ્યાં છીએ</translation>
+<translation id="5468330507528805311">ઇન્ટરનેટ શેર કરવાની સુવિધાનું સ્ટેટસ:</translation>
 <translation id="5468881191994555667">ફાઇલ પસંદ કરો</translation>
 <translation id="5469852975082458401">તમે ટેક્સ્ટ કર્સર વડે કોઈપણ પેજ પર નૅવિગેટ કરી શકશો. બંધ કરવા માટે, F7 દબાવો.</translation>
 <translation id="5470735824776589490">તમારું ડિવાઇસ Powerwash સાથે રીસેટ થઈ શકે તે પહેલાં એકવાર ફરી શરૂ કરવું આવશ્યક છે. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation>
@@ -4810,7 +4820,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI ડિવાઇસ સાથે કનેક્ટ કરવાની મંજૂરી આપેલી નથી</translation>
 <translation id="5602765853043467355">આ ડિવાઇસમાંથી બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને વધુ સાફ કરો</translation>
-<translation id="5605623530403479164">અન્ય શોધ એન્જિન</translation>
 <translation id="5605758115928394442">તમે જ છો તે કન્ફર્મ કરવા માટે તમારા ફોન પર નોટિફિકેશન મોકલવામાં આવ્યું હતું.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{આ એક્સ્ટેન્શનને બ્લૉક કરવામાં આવ્યું છે}one{આ એક્સ્ટેન્શનને બ્લૉક કરવામાં આવ્યું છે}other{આ એક્સ્ટેન્શનને બ્લૉક કરવામાં આવ્યા છે}}</translation>
 <translation id="560834977503641186">વાઇ-ફાઇ સિંક, વધુ જાણો</translation>
@@ -4935,6 +4944,7 @@
 <translation id="5734362860645681824">સંચાર</translation>
 <translation id="5734697361979786483">ફાઇલ શેર ઉમેરો</translation>
 <translation id="5736796278325406685">કૃપા કરીને એક માન્ય વપરાશકર્તાનામ દાખલ કરો</translation>
+<translation id="5738093759615225354">તમારા કમ્પ્યુટરમાં સાઇન ઇન કરવા, તમારા માટે આ પાસકી જરૂરી છે</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" />ને સ્કૂલ એકાઉન્ટ ઉમેરવામાં સહાય કરવા માટે સાઇન ઇન કરો</translation>
 <translation id="5739235828260127894">ચકાસણીની રાહ જોઈ રહ્યાં છીએ. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">બહુ મોટું</translation>
@@ -5096,6 +5106,7 @@
 <translation id="589541317545606110"><ph name="VISUAL_SEARCH_PROVIDER" /> વડે પેજ શોધો</translation>
 <translation id="5896436821193322561">મંજૂરી આપશો નહીં</translation>
 <translation id="5900186025777217044">Smart Lockની સુવિધામાં ફેરફાર કરવામાં આવ્યો છે</translation>
+<translation id="5900243355162006650">ઇન્ટરનેટ શેર કરવાની સુવિધાનું કન્ફિગ્યુરેશન:</translation>
 <translation id="5900302528761731119">Google પ્રોફાઇલ ફોટો</translation>
 <translation id="590036993063074298">મીરરીંગ ક્વૉલિટીની વિગતો</translation>
 <translation id="5901069264981746702">તમારી ફિંગરપ્રિન્ટનો ડેટા સુરક્ષિત રીતે સ્ટોર કરવામાં આવે છે અને હંમેશાં તમારા <ph name="DEVICE_TYPE" />માં જ રહે છે. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation>
@@ -5110,6 +5121,7 @@
 <translation id="5909379458939060601">શું આ પ્રોફાઇલ અને બ્રાઉઝિંગ ડેટા ડિલીટ કરીએ?</translation>
 <translation id="5910363049092958439">છબીને આ રૂપે સા&amp;ચવો...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ઑફલાઇન છે</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">શૉર્ટકટ દર્શક</translation>
 <translation id="5914724413750400082">મૉડ્યૂલ્સ (<ph name="MODULUS_NUM_BITS" /> બિટ્સ):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5400,6 +5412,7 @@
 <translation id="6196640612572343990">ત્રીજા પક્ષની કુકીને બ્લૉક કરો</translation>
 <translation id="6196854373336333322">"<ph name="EXTENSION_NAME" />" એક્સ્ટેન્શને તમારા પ્રૉક્સી સેટિંગનું નિયંત્રણ લઈ લીધું છે, એનો અર્થ છે કે તમે જે કંઈ પણ ઓનલાઇન કરો છો એને એ બદલી, ભંગ કરી કે છુપાઈને પારકી વાતો સાંભળી શકે છે. આ ફેરફાર કેમ થયો એ અંગે જો તમને ખાતરી નથી, તો સંભવિત રૂપે એ તમને જોઈતું નહિ હોય.</translation>
 <translation id="6197128521826316819">આ પેજ માટે QR કોડ બનાવો</translation>
+<translation id="6197223946499512637">આ કમ્પ્યુટર પર Windows Helloમાં આ પાસકી સ્ટોર કરેલી છે. તે તમારા Google એકાઉન્ટમાં સાચવવામાં આવતી નથી.</translation>
 <translation id="6198252989419008588">PIN બદલો</translation>
 <translation id="6200047250927636406">ફાઇલ કાઢી નાખો</translation>
 <translation id="6200151268994853226">એક્સ્ટેન્શન મેનેજ કરો</translation>
@@ -5697,6 +5710,7 @@
 <translation id="6482559668224714696">પૂર્ણ-સ્ક્રીન મૅગ્નિફાયર</translation>
 <translation id="6483485061007832714">ડાઉનલોડ ખોલો</translation>
 <translation id="6483805311199035658">ખુલી રહી છે <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">પાસકી મેનેજ કરવા માટે, Windowsના કોઈ નવા વર્ઝનનો ઉપયોગ કરો</translation>
 <translation id="6488384360522318064">ભાષા પસંદ કરો</translation>
 <translation id="648927581764831596">કંઈપણ ઉપલબ્ધ નથી</translation>
 <translation id="6490471652906364588">USB-C ઉપકરણ (જમણું પોર્ટ)</translation>
@@ -6285,6 +6299,7 @@
 <translation id="7029307918966275733">Crostini ઇન્સ્ટૉલ કરેલી નથી. કૃપા કરીને ક્રેડિટ જોવા માટે Crostini ઇન્સ્ટૉલ કરો.</translation>
 <translation id="7029809446516969842">પાસવર્ડ</translation>
 <translation id="7030304022046916278">URLs ચેક કરવા માટે તેમને Safe Browsing પર મોકલે છે</translation>
+<translation id="7030695672997239647">કોઈ ટૅબ પર રાઇટ ક્લિક કરીને પહેલાં "ગ્રૂપમાં ટૅબ ઉમેરો" પસંદ કરો અને પછી "નવું ગ્રૂપ" પસંદ કરો</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - સિરીઅલ પોર્ટ કનેક્ટ કર્યું</translation>
 <translation id="7033616203784997570">ઇનપુટ વધુમાં વધુ 62 અક્ષરનું હોવું આવશ્યક છે</translation>
 <translation id="7034692021407794547">બિલિંગ મેનેજમેન્ટના વિશેષાધિકાર ધરાવતા વ્યવસ્થાપકે પહેલાં વ્યવસ્થાપક કન્સોલના Google Meet હાર્ડવેર વિભાગમાં, Google Meet હાર્ડવેરની સેવાની શરતો સ્વીકારવી આવશ્યક છે.</translation>
@@ -7381,6 +7396,7 @@
 <translation id="8101987792947961127">આગલા રીબૂટ પર Powerwash આવશ્યક છે</translation>
 <translation id="81020759409809034">સ્થાનિક જગ્યા</translation>
 <translation id="8102139037507939978">system_logs.txtમાંથી વ્યક્તિગત રૂપે ઓળખી શકાય તેવી માહિતી જુદી પાડો.</translation>
+<translation id="810362914482827094">પાસકી શોધો</translation>
 <translation id="8104088837833760645">ઇ-સિમ પ્રોફાઇલ ડાઉનલોડ કરો</translation>
 <translation id="8105368624971345109">બંધ કરો</translation>
 <translation id="8107015733319732394">તમારા <ph name="DEVICE_TYPE" /> પર Google Play Store ઇન્સ્ટૉલ કરી રહ્યાં છીએ. આમાં થોડી મિનિટ લાગી શકે છે.</translation>
@@ -7828,6 +7844,7 @@
 <translation id="8557022314818157177">જ્યાં સુધી તમારી ફિંગરપ્રિન્ટ કૅપ્ચર ન થાય, ત્યાં સુધી તમારી સિક્યુરિટી કીનો સ્પર્શ કરતા રહો</translation>
 <translation id="8557180006508471423">તમારા Mac પર સ્થાન સેવાઓમાં "Google Chrome" ચાલુ કરો</translation>
 <translation id="8557856025359704738">આગામી ડાઉનલોડ <ph name="NEXT_DATE_DOWNLOAD" />ના રોજ છે.</translation>
+<translation id="8559858985063901027">પાસકી</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{તમામ URLને &amp;નવી વિન્ડોમાં ખોલો}=1{&amp;નવી વિન્ડોમાં ખોલો}one{તમામ ({COUNT}) URLને &amp;નવી વિન્ડોમાં ખોલો}other{તમામ ({COUNT}) URLને &amp;નવી વિન્ડોમાં ખોલો}}</translation>
 <translation id="8561206103590473338">હાથી</translation>
 <translation id="8561565784790166472">સાવધાનીથી આગળ વધો</translation>
@@ -7954,6 +7971,7 @@
 <translation id="8677212948402625567">બધાને સંકુચિત કરો...</translation>
 <translation id="867767487203716855">આગલી અપડેટ</translation>
 <translation id="8677859815076891398">કોઈ આલ્બમ નથી. <ph name="LINK_BEGIN" />Google Photos<ph name="LINK_END" />માં કોઈ આલ્બમ બનાવો.</translation>
+<translation id="8678378565142776698">ફરી શરૂ કરીને ઑટોમૅટિક રીતે અપડેટ મેળવો</translation>
 <translation id="8678538439778360739"><ph name="TIME" /> વાગ્યે તમારા સિંક પાસફ્રેઝ વડે ડેટા એન્ક્રિપ્ટ કરવામાં આવ્યો હતો. આમાં Google Payની ચુકવણી પદ્ધતિઓ અને ઍડ્રેસનો સમાવેશ હોતો નથી.</translation>
 <translation id="8678582529642151449">ટૅબ સંકોચાતી નથી</translation>
 <translation id="8678933587484842200">તમે આ ઍપ્લિકેશન કેવી રીતે લૉન્ચ કરવાનું પસંદ કરશો?</translation>
@@ -8201,6 +8219,7 @@
 <translation id="8910987510378294980">ડિવાઇસની સૂચિ છુપાવો</translation>
 <translation id="8912362522468806198">Google એકાઉન્ટ</translation>
 <translation id="8912810933860534797">ઑટો સ્કૅન ચાલુ કરો</translation>
+<translation id="8915307125957890427">કોઈ ટૅબ પર રાઇટ ક્લિક કરીને પહેલાં "ગ્રૂપમાં ટૅબ ઉમેરો" પસંદ કરો અને પછી "નવું ગ્રૂપ" પસંદ કરો</translation>
 <translation id="8915370057835397490">સૂચનને લોડ કરી રહ્યું છે</translation>
 <translation id="8916476537757519021">છુપો મોડ સબફ્રેમ: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" />ની <ph name="DEVICE_TYPE" /></translation>
@@ -8275,6 +8294,7 @@
 <translation id="8986362086234534611">ભૂલી ગયા</translation>
 <translation id="8986494364107987395">ઉપયોગિતા આંકડાઓ અને ક્રૅશ રિપોર્ટ Googleને ઑટોમૅટિક રીતે મોકલો</translation>
 <translation id="8987927404178983737">મહિનો</translation>
+<translation id="8989359959810288806">ઇન્ટરનેટ શેર કરવાની સુવિધાનું સ્ટેટસ રિફ્રેશ કરો</translation>
 <translation id="8991520179165052608">સાઇટ તમારા માઇક્રોફોનનો ઉપયોગ કરી શકે છે</translation>
 <translation id="899384117894244799">પ્રતિબંધિત વપરાશકર્તાને કાઢી નાખો</translation>
 <translation id="899403249577094719">નેટસ્કેપ પ્રમાણપત્ર બેઝ URL</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index 0366c2e..7c8a5fd0 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -2210,6 +2210,7 @@
 <translation id="3021065318976393105">बैटरी का इस्तेमाल करते समय</translation>
 <translation id="3021066826692793094">तितली</translation>
 <translation id="3021678814754966447">फ़्रेम का स्रोत &amp;देखें</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> को इस Chromebook से हटा दिया जाएगा और उसे <ph name="PRIMARY_EMAIL" /> में सेव नहीं किया जाएगा.</translation>
 <translation id="3022978424994383087">समझ नहीं आया.</translation>
 <translation id="3023464535986383522">चुनें और सुनें</translation>
 <translation id="3024374909719388945">24-घंटे की घड़ी का उपयोग करें</translation>
@@ -3748,6 +3749,7 @@
 <translation id="4535127706710932914">सामान्य प्रोफ़ाइल</translation>
 <translation id="4535767533210902251">फ़िंगरप्रिंट सेंसर, आपके कीबोर्ड पर सबसे ऊपर दाईं ओर दिया गया बटन होता है. किसी भी उंगली से इसे हल्के से छुएं.</translation>
 <translation id="4536140153723794651">वे साइटें जो हमेशा कुकी का इस्तेमाल कर सकती हैं</translation>
+<translation id="4536769240747010177">टेदरिंग की सुविधा:</translation>
 <translation id="4538417792467843292">शब्‍द मिटाएं</translation>
 <translation id="4538792345715658285">एंटरप्राइज़ नीति द्वारा इंस्टॉल किया गया.</translation>
 <translation id="4541123282641193691">आपके खाते की पुष्टि नहीं हो सकी. कृपया फिर से कोशिश करें या अपना Chromebook रीस्टार्ट करें.</translation>
@@ -3775,6 +3777,7 @@
 <translation id="4561893854334016293">हाल ही में किसी भी अनुमति को नहीं बदला गया है</translation>
 <translation id="4562155214028662640">फ़िंगरप्रिंट जोड़ें</translation>
 <translation id="4563210852471260509">आरंभिक इनपुट भाषा चीनी है</translation>
+<translation id="4563382028841851106">खाते से डिवाइस को हटाएं</translation>
 <translation id="4563880231729913339">उंगली तीन</translation>
 <translation id="4564245002465020751">अपने फ़ोन पर सेट अप पूरा करें</translation>
 <translation id="4565377596337484307">पासवर्ड छिपाएं</translation>
@@ -4825,7 +4828,6 @@
 <translation id="5601503069213153581">पिन</translation>
 <translation id="5601823921345337195">MIDI डिवाइस से कनेक्ट करने की अनुमति नहीं है</translation>
 <translation id="5602765853043467355">इस डिवाइस से बुकमार्क, इतिहास, पासवर्ड वगैरह साफ़ करें</translation>
-<translation id="5605623530403479164">दूसरे सर्च इंजन</translation>
 <translation id="5605758115928394442">आपकी पहचान की पुष्टि करने के लिए, आपके फ़ोन पर एक सूचना भेजी गई थी.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{इस एक्सटेंशन को ब्लॉक किया गया है}one{इस एक्सटेंशन को ब्लॉक किया गया है}other{इन एक्सटेंशन को ब्लॉक किया गया है}}</translation>
 <translation id="560834977503641186">'वाई-फ़ाई सिंक' के बारे में ज़्यादा जानें</translation>
@@ -5124,6 +5126,7 @@
 <translation id="5909379458939060601">क्या इस प्रोफ़ाइल और ब्राउज़िंग डेटा को मिटाना है?</translation>
 <translation id="5910363049092958439">इमेज को इस रूप में सेव करें...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ऑफ़लाइन है</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">शॉर्टकट व्यूअर</translation>
 <translation id="5914724413750400082">मापांक (<ph name="MODULUS_NUM_BITS" /> बिट):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6195,6 +6198,10 @@
 <translation id="6943939122536910181"><ph name="DEVICE" /> से डिसकनेक्ट किया गया</translation>
 <translation id="6945221475159498467">चुनें</translation>
 <translation id="694592694773692225">इस पेज पर रीडायरेक्ट ब्लॉक किया गया.</translation>
+<translation id="6947015141909171112">आपको रेसिपी के सुझाव दिखाए जा रहे हैं. ये सुझाव, Search पर रेसिपी से जुड़ी आपकी हाल ही की गतिविधि के आधार पर दिखाए जाते हैं.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        इससे जुड़ी सेटिंग को, कार्ड मेन्यू में जाकर मैनेज किया जा सकता है. इसके अलावा, 'Chrome को पसंद के मुताबिक बनाएं' सेक्शन में मौजूद ज़्यादा विकल्प देखे जा सकते हैं.</translation>
 <translation id="6949434160682548041">पासवर्ड (वैकल्पिक)</translation>
 <translation id="6950627417367801484">ऐप्लिकेशन बहाल करें</translation>
 <translation id="6952242901357037157">आप यहां अपने <ph name="BEGIN_LINK" />Google खाते<ph name="END_LINK" /> से पासवर्ड भी दिखा सकते हैं</translation>
@@ -6990,6 +6997,7 @@
 <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />" से जोड़ा जा रहा है ...</translation>
 <translation id="7737846262459425222">आप जब चाहें, सेटिंग &gt; Google Assistant &gt; स्क्रीन पर दिखने वाली सामग्री इस्तेमाल करें, में जाकर बदलाव कर सकते हैं.</translation>
 <translation id="7737948071472253612">कैमरा इस्तेमाल करने की अनुमति नहीं है</translation>
+<translation id="77381465218432215">उच्चारण के चिह्न और विशेष वर्ण दिखाएं</translation>
 <translation id="7740996059027112821">मानक</translation>
 <translation id="7741307896921365578">अपनी रीडिंग लिस्ट और Bookmarks को ऐक्सेस करने के उपयोगी और स्थायी तरीके के लिए, ब्राउज़र-लेवल के साइड पैनल को चालू करें.</translation>
 <translation id="7742558784808143689">क्या आप <ph name="SITE_NAME" />, इसके तहत आने वाली सभी साइटों, और इंस्टॉल किए गए ऐप्लिकेशन के लिए, साइट डेटा और अनुमतियां मिटाना चाहते हैं?</translation>
@@ -7779,6 +7787,7 @@
 <translation id="8486666913807228950">वजह: "इस ब्राउज़र में ही खोलें" सूची में इनवर्टेड रूल <ph name="REVERT_RULE" /> मिला था.</translation>
 <translation id="848666842773560761">कोई ऐप्लिकेशन आपके कैमरे को ऐक्सेस करने की कोशिश कर रहा है. ऐक्सेस देने के लिए, कैमरा प्राइवसी स्विच को बंद करें.</translation>
 <translation id="8487678622945914333">ज़ूम इन</translation>
+<translation id="8487699605742506766">हॉटस्पॉट</translation>
 <translation id="8489156414266187072">निजी सुझाव सिर्फ़ आपके खाते पर दिखाए जाते हैं</translation>
 <translation id="8490896350101740396">नीचे दिए गए किओस्क ऐप्लिकेशन "<ph name="UPDATED_APPS" />" अपडेट कर दिए गए हैं. कृपया अपडेट प्रक्रिया पूरी करने के लिए डिवाइस को फिर से चालू करें.</translation>
 <translation id="8492685019009920170">उंगली से फ़िंगरप्रिंट सेंसर को छुएं. आपका डेटा सुरक्षित तरीके से सेव किया जाता है और हमेशा आपके <ph name="DEVICE_TYPE" /> में ही रहता है.</translation>
@@ -8273,6 +8282,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" और 1 अन्य टैब}one{"<ph name="TAB_TITLE" />" और # अन्य टैब}other{"<ph name="TAB_TITLE" />" और # अन्य टैब}}</translation>
 <translation id="8977811652087512276">गलत पासवर्ड या खराब फ़ाइल</translation>
 <translation id="8978154919215542464">चालू - सब कुछ सिंक करें</translation>
+<translation id="8978670037548431647">टेदरिंग की सुविधा को रीफ़्रेश करें</translation>
 <translation id="897939795688207351"><ph name="ORIGIN" /> पर</translation>
 <translation id="8980345560318123814">सुझाव/शिकायत/राय से जुड़ी रिपोर्ट</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - क्रैश हो गया है</translation>
@@ -8537,6 +8547,7 @@
 <translation id="935854577147268200">Smart Lock वाला फ़ोन बदल गया है. Smart Lock अपडेट करने के लिए अपना पासवर्ड डालें. अगली बार, आपका फ़ोन आपके <ph name="DEVICE_TYPE" /> को अनलॉक कर देगा. आप सेटिंग में जाकर Smart Lock को बंद कर सकते हैं</translation>
 <translation id="936646668635477464">कैमरा और माइक्रोफ़ोन</translation>
 <translation id="936801553271523408">सिस्टम का गड़बड़ी संबंधी डेटा</translation>
+<translation id="937053962468712792">क्या <ph name="PRIMARY_EMAIL" /> से <ph name="DEVICE" /> को हटाना है?</translation>
 <translation id="93766956588638423">एक्‍सटेंशन को ठीक करें</translation>
 <translation id="938568644810664664">"Ok Google, यह कौनसा गाना है?" या "Ok Google, मेरी स्क्रीन पर क्या है?" पूछें</translation>
 <translation id="938623846785894166">फ़ाइल का कॉन्टेंट असामान्य है</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 44ab7191..275977a 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -4826,7 +4826,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Nije dopušteno povezivanje s MIDI uređajima</translation>
 <translation id="5602765853043467355">Izbriši oznake, povijest, zaporke i druge podatke s ovog uređaja</translation>
-<translation id="5605623530403479164">Ostale tražilice</translation>
 <translation id="5605758115928394442">Poslali smo obavijest na vaš telefon kako bismo potvrdili da ste to vi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{To je proširenje blokirano}one{Ta su proširenja blokirana}few{Ta su proširenja blokirana}other{Ta su proširenja blokirana}}</translation>
 <translation id="560834977503641186">Wi-Fi sinkronizacija, saznajte više</translation>
@@ -5125,6 +5124,7 @@
 <translation id="5909379458939060601">Izbrisati ovaj profil i podatke o pregledavanju?</translation>
 <translation id="5910363049092958439">Sp&amp;remi sliku kao...</translation>
 <translation id="5910726859585389579">Uređaj <ph name="DEVICE_TYPE" /> nije povezan s internetom</translation>
+<translation id="5911030830365207728">Google prevoditelj</translation>
 <translation id="5911533659001334206">Pregled prečaca</translation>
 <translation id="5914724413750400082">Moduli (<ph name="MODULUS_NUM_BITS" /> bitova):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index 99817575..ef911dc 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -4690,6 +4690,7 @@
 <translation id="5470735824776589490">Mielőtt a Powerwash segítségével visszaállítaná, újra kell indítania az eszközt. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation>
 <translation id="5471768120198416576">Üdvözlöm! A szövegfelolvasó az én hangomon szólal majd meg.</translation>
 <translation id="5472627187093107397">Jelszavak mentése ennél a webhelynél</translation>
+<translation id="5473062644742711742">A Chrome Webáruházban további kisegítő eszközöket találhat</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">Ha továbblép, azzal elfogadja, hogy az eszköz automatikusan letölthet és telepíthet frissítéseket és alkalmazásokat a Google-tól, gyermeke szolgáltatójától és az eszköz gyártójától, akár mobiladat-kapcsolaton keresztül is. Egyes alkalmazások alkalmazáson belüli vásárlásokat kínálhatnak.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{A PIN-kódnak legalább egy karakterből kell állnia}other{A PIN-kódnak legalább # karakterből kell állnia}}</translation>
@@ -4837,7 +4838,6 @@
 <translation id="5601503069213153581">PIN-kód</translation>
 <translation id="5601823921345337195">Nem csatlakozhatnak a MIDI-eszközökhöz</translation>
 <translation id="5602765853043467355">Könyvjelzők, előzmények, jelszavak és egyebek törlése erről az eszközről</translation>
-<translation id="5605623530403479164">További keresők</translation>
 <translation id="5605758115928394442">A rendszer értesítést küldött az Ön telefonjára, hogy segítségével igazolhassa személyazonosságát.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Ez a bővítmény le van tiltva}other{Ezek a bővítmények le vannak tiltva}}</translation>
 <translation id="560834977503641186">Wi-Fi szinkronizálása, további információ</translation>
@@ -5139,6 +5139,7 @@
 <translation id="5909379458939060601">Törli ezt a profilt és a böngészési adatokat?</translation>
 <translation id="5910363049092958439">Ké&amp;p mentése másként...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> – offline</translation>
+<translation id="5911030830365207728">Google Fordító</translation>
 <translation id="5911533659001334206">Billentyűparancs-megjelenítő</translation>
 <translation id="5914724413750400082">Együttható (<ph name="MODULUS_NUM_BITS" /> bit):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index 5049818..5aee37b 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -897,6 +897,7 @@
 <translation id="1829129547161959350">Պինգվին</translation>
 <translation id="1829192082282182671">Փոք&amp;րացնել</translation>
 <translation id="1830550083491357902">Մուտք գործած չէ</translation>
+<translation id="1831848493690504725">Չհաջողվեց Google-ի հետ կապ հաստատել միացած ցանցի միջոցով։ Ընտրեք այլ ցանց կամ ստուգեք ձեր ցանցի կամ պրոքսի սերվերի կարգավորումները (եթե օգտագործում եք պրոքսի)։</translation>
 <translation id="1832459821645506983">Այո, թույլատրել</translation>
 <translation id="1832511806131704864">Հեռախոսի փոփոխությունը կիրառվեց</translation>
 <translation id="1832848789136765277">Հաստատեք ձեր ինքնությունը, որպեսզի համաժամացված տվյալները միշտ հասանելի լինեն ձեզ</translation>
@@ -2195,6 +2196,7 @@
 <translation id="3021065318976393105">Մարտկոցից սնուցման ընթացքում</translation>
 <translation id="3021066826692793094">Թիթեռ</translation>
 <translation id="3021678814754966447">&amp;Դիտել շրջանակի սկզբնաղբյուրը</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> սարքը կհեռացվի այս Chromebook-ից և չի պահվի <ph name="PRIMARY_EMAIL" /> հաշվում։</translation>
 <translation id="3022978424994383087">Անհասկանալի է:</translation>
 <translation id="3023464535986383522">Ընտրեք և լսեք</translation>
 <translation id="3024374909719388945">Օգտագործել 24-ժամյա ժամացույց</translation>
@@ -3732,6 +3734,7 @@
 <translation id="4535127706710932914">Կանխադրված պրոֆիլ</translation>
 <translation id="4535767533210902251">Մատնահետքերի սկաները ստեղնաշարի աջ կողմի ստեղնն է: Որևէ մատով թեթևակի հպեք դրան։</translation>
 <translation id="4536140153723794651">Կայքեր, որոնք միշտ կարող են օգտագործել քուքիներ</translation>
+<translation id="4536769240747010177">Մոդեմի ռեժիմի հնարավորություններ</translation>
 <translation id="4538417792467843292">Ջնջել բառը</translation>
 <translation id="4538792345715658285">Տեղադրված է ձեռնարկության կանոնի համաձայն:</translation>
 <translation id="4541123282641193691">Չհաջողվեց մուտք գործել։ Փորձեք նորից կամ վերաբեռնեք Chromebook-ը։</translation>
@@ -3759,6 +3762,7 @@
 <translation id="4561893854334016293">Թույլտվություններում վերջերս փոփոխություններ չեն արվել</translation>
 <translation id="4562155214028662640">Ավելացնել մատնահետք</translation>
 <translation id="4563210852471260509">Ներածման նախնական լեզուն չինարենն է</translation>
+<translation id="4563382028841851106">Հեռացնել հաշվից</translation>
 <translation id="4563880231729913339">Մատ 3</translation>
 <translation id="4564245002465020751">Ավարտեք հեռախոսի կարգավորումը</translation>
 <translation id="4565377596337484307">Թաքցնել գաղտնաբառը</translation>
@@ -4737,6 +4741,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" />․ անհրաժեշտ է հետևյալ թույլտվությունը՝</translation>
 <translation id="5534304873398226603">Հեռացնել լուսանկարը կամ տեսանյութը</translation>
 <translation id="5537725057119320332">Cast</translation>
+<translation id="5539070192556911367">Չհաջողվեց միանալ Google-ին</translation>
 <translation id="5539221284352502426">Ձեր մուտքագրած գաղտնաբառը չի ընդունվում սերվերի կողմից: Հնարավոր պատճառներն են՝ գաղտնաբառը չափազանց կարճ է, գաղտնաբառը պետք է պարունակի թվեր կամ նշաններ, գաղտնաբառը պետք է տարբեր լինի նախորդ գաղտնաբառերից:</translation>
 <translation id="5541694225089836610">Ձեր ադմինիստրատորն անջատել է այս գործողությունը</translation>
 <translation id="5542132724887566711">Պրոֆիլ</translation>
@@ -4800,6 +4805,7 @@
 <translation id="5585912436068747822">Ձևաչափումը չհաջողվեց</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Հավելվածների բեռնում…</translation>
+<translation id="5590418976913374224">Հնչեցնել ձայնային ազդանշան սարքը գործարկելիս</translation>
 <translation id="5592595402373377407">Բավարար քանակությամբ տվյալներ չկան:</translation>
 <translation id="5595307023264033512">Կայքերի կողմից օգտագործվող ընդհանուր տարածքը՝ <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Փոխել հասցեն</translation>
@@ -4809,7 +4815,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Չի թույլատրվում միանալ MIDI սարքերին</translation>
 <translation id="5602765853043467355">Մաքրել այս սարքի էջանիշները, պատմությունը, գաղտնաբառերն ու մյուս տվյալները</translation>
-<translation id="5605623530403479164">Այլ որոնիչներ</translation>
 <translation id="5605758115928394442">Ձեր ինքնությունը հաստատելու համար ձեր հեռախոսին ծանուցում է ուղարկվել:</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Այս ընդլայնումն արգելափակված է}one{Այս ընդլայնումն արգելափակված է}other{Այս ընդլայնումներն արգելափակված են}}</translation>
 <translation id="560834977503641186">Մանրամասն Wi-Fi համաժամացման մասին</translation>
@@ -5106,6 +5111,7 @@
 <translation id="5909379458939060601">Ջնջե՞լ այս պրոֆիլը և այցելությունների պատմությունը</translation>
 <translation id="5910363049092958439">Պա&amp;հել պատկերը որպես…</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> սարքը միացած չէ ինտերնետին</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">Դյուրանցումների դիտակ</translation>
 <translation id="5914724413750400082">Մոդուլը (<ph name="MODULUS_NUM_BITS" /> բիթ)՝
   <ph name="MODULUS_HEX_DUMP" />
@@ -6176,6 +6182,10 @@
 <translation id="6943939122536910181"><ph name="DEVICE" /> սարքի հետ կապն ընդհատվել է</translation>
 <translation id="6945221475159498467">Ընտրել</translation>
 <translation id="694592694773692225">Այս էջում վերահասցեավորումն արգելափակված է:</translation>
+<translation id="6947015141909171112">Այս բաղադրատոմսերն ընտրվել են որոնումների պատմությունից ձեր վերջին հարցումների հիման վրա։
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Դուք կարող եք կառավարել կարգավորումները քարտի ընտրացանկից կամ դիտել լրացուցիչ ընտրանքները «Կարգավորել Chrome-ը» բաժնում։</translation>
 <translation id="6949434160682548041">Գաղտնաբառ (պարտադիր չէ)</translation>
 <translation id="6950627417367801484">Վերականգնել հավելվածները</translation>
 <translation id="6952242901357037157">Դուք կարող եք ձեր <ph name="BEGIN_LINK" />Google հաշվում<ph name="END_LINK" /> պահվող գաղտնաբառերը նաև այստեղ ցուցադրել</translation>
@@ -6343,6 +6353,7 @@
 <translation id="7102687220333134671">Ինքնաթարմացումը միացված է</translation>
 <translation id="7102832101143475489">Հարցումը մշակելու ժամանակը սպառվել է</translation>
 <translation id="710640343305609397">Բացել ցանցի կարգավորումները</translation>
+<translation id="7107609441453408294">Նվագարկել նույն աուդիոն բոլոր բարձրախոսներով</translation>
 <translation id="7108338896283013870">Թաքցնել</translation>
 <translation id="7108668606237948702">enter</translation>
 <translation id="7108933416628942903">Կողպել հիմա</translation>
@@ -6573,6 +6584,7 @@
 <translation id="7364745943115323529">Հեռարձակել...</translation>
 <translation id="7364796246159120393">Ընտրել ֆայլ</translation>
 <translation id="7365076891350562061">Էկրանի չափը</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> – Ամրացված</translation>
 <translation id="7366316827772164604">Մոտակա սարքերի որոնում…</translation>
 <translation id="7366415735885268578">Ավելացրեք կայք</translation>
 <translation id="7366909168761621528">Տվյալներ այցելությունների մասին</translation>
@@ -6969,6 +6981,7 @@
 <translation id="7737115349420013392">Զուգակցում «<ph name="DEVICE_NAME" />» սարքի հետ...</translation>
 <translation id="7737846262459425222">Դուք ցանկացած ժամանակ կարող եք փոխել սա՝ անցնելով Կարգավորումներ &gt; Google Օգնական &gt; Էկրանի համատեքստ։</translation>
 <translation id="7737948071472253612">Չի թույլատրվում օգտագործել ձեր տեսախցիկը</translation>
+<translation id="77381465218432215">Ցույց տալ հնչյունատարբերիչ նիշեր և հատուկ նշաններ</translation>
 <translation id="7740996059027112821">Ստանդարտ</translation>
 <translation id="7741307896921365578">Դիտարկիչում հայտնվում է հարմար կողային վահանակ, որի միջոցով կարելի է արագ բացել ընթերցանության ցանկը և էջանիշները։</translation>
 <translation id="7742558784808143689">Մաքրե՞լ <ph name="SITE_NAME" /> կայքի, դրա ենթադաս բոլոր կայքերի, ինչպես նաև տեղադրված հավելվածների կայքի տվյալներն ու թույլտվությունները</translation>
@@ -7756,6 +7769,7 @@
 <translation id="8486666913807228950">Պատճառը՝ «Հարկադրաբար բացել…» ցանկում հայտնաբերվել է «<ph name="REVERT_RULE" />» շրջված կանոնը։</translation>
 <translation id="848666842773560761">Հավելվածը փորձում է օգտագործել տեսախցիկը։ Թույլատրելու համար անջատեք տեսախցիկի արգելափակումը։</translation>
 <translation id="8487678622945914333">Zoom In</translation>
+<translation id="8487699605742506766">Թեժ կետ</translation>
 <translation id="8489156414266187072">Անհատական առաջարկները ցուցադրվում են միայն ձեր հաշվում</translation>
 <translation id="8490896350101740396">Թարմացվել են հետևյալ kiosk հավելվածները՝ «<ph name="UPDATED_APPS" />»: Թարմացումն ավարտելու համար վերագործարկեք սարքը:</translation>
 <translation id="8492685019009920170">Մատով հպեք մատնահետքերի սկաներին։ Մատնահետքի տվյալները պահվում են և միայն ձեր <ph name="DEVICE_TYPE" /> սարքում։</translation>
@@ -8250,6 +8264,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{«<ph name="TAB_TITLE" />»}=1{«<ph name="TAB_TITLE" />» ու ևս 1 ներդիր}one{«<ph name="TAB_TITLE" />» ու ևս # ներդիր}other{«<ph name="TAB_TITLE" />» ու ևս # ներդիր}}</translation>
 <translation id="8977811652087512276">Գաղտնաբառը սխալ է, կամ ֆայլը վնասված է</translation>
 <translation id="8978154919215542464">Միացած է – համաժամացնել ամեն ինչ</translation>
+<translation id="8978670037548431647">Թարմացնել մոդեմի ռեժիմի հնարավորությունները</translation>
 <translation id="897939795688207351"><ph name="ORIGIN" /> տիրույթում</translation>
 <translation id="8980345560318123814">Հաշվետվություններ</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – Խափանվել է</translation>
@@ -8514,6 +8529,7 @@
 <translation id="935854577147268200">Ապակողպման համար օգտագործվող հեռախոսը փոխվել է։ Մուտքագրեք ձեր գաղտնաբառը՝ Smart Lock-ը թարմացնելու համար։ Դրանից հետո ձեր հեռախոսով կարող եք ապակողպել <ph name="DEVICE_TYPE" /> սարքը։ Smart Lock-ը կարող եք անջատել կարգավորումներում։</translation>
 <translation id="936646668635477464">Տեսախցիկ և խոսափող</translation>
 <translation id="936801553271523408">Համակարգի դիագնոստիկ տվյալներ</translation>
+<translation id="937053962468712792">Հեռացնե՞լ <ph name="DEVICE" /> սարքը <ph name="PRIMARY_EMAIL" /> հաշվից</translation>
 <translation id="93766956588638423">Ընդլայնման վերանորոգում</translation>
 <translation id="938568644810664664">Օրինակ՝ հարցրեք «Hey Google, what song is this?» (ո՞ր երգն է սա) կամ «Hey Google, what's on my screen?» (ի՞նչ կա իմ էկրանին)</translation>
 <translation id="938623846785894166">Անսովոր ֆայլ</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 16718d90..a1ee2d91 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Menggunakan mikrofon dan kamera Anda</translation>
 <translation id="1005333234656240382">Aktifkan proses debug ADB?</translation>
 <translation id="1006873397406093306">Ekstensi ini dapat membaca dan mengubah data Anda di situs. Anda dapat mengontrol situs mana yang dapat diakses ekstensi ini.</translation>
+<translation id="1007057452468855774">Aktifkan Google Play Store</translation>
 <translation id="1008186147501209563">Ekspor bookmark</translation>
 <translation id="1008557486741366299">Jangan Sekarang</translation>
 <translation id="1009476156254802388">Lokasi <ph name="WEB_DRIVE" /></translation>
 <translation id="1009663062402466586">Kontrol game kini tersedia</translation>
 <translation id="1010498023906173788">Tab ini terhubung ke sebuah port serial.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Halaman Tidak Merespons}other{Halaman Tidak Merespons}}</translation>
+<translation id="1011003645819296594">Perangkat yang disimpan</translation>
 <translation id="1011355516189274711">Volume text-to-speech</translation>
 <translation id="1012794136286421601">File Dokumen, Spreadsheet, Slide, dan Gambar Anda sedang disinkronkan. Buka aplikasi Google Drive untuk mengaksesnya secara offline atau online.</translation>
 <translation id="1012876632442809908">Perangkat USB-C (port depan)</translation>
@@ -494,6 +496,7 @@
 <translation id="1470350905258700113">Gunakan perangkat ini</translation>
 <translation id="1470946456740188591">Untuk mengaktifkan atau menonaktifkan penjelajahan dengan keyboard, gunakan Ctrl+Search+7</translation>
 <translation id="1472675084647422956">Tampilkan lainnya</translation>
+<translation id="1473223074251193484">Setel Konfigurasi Tethering</translation>
 <translation id="1474785664565228650">Perubahan pada setelan mikrofon mengharuskan Parallels Desktop diluncurkan kembali. Luncurkan kembali Parallels Desktop untuk melanjutkan.</translation>
 <translation id="1474893630593443211">Lebih banyak kontrol atas iklan yang Anda lihat</translation>
 <translation id="1475502736924165259">Anda memiliki sertifikat pada file yang tidak sesuai dengan kategori lain mana pun</translation>
@@ -1125,6 +1128,7 @@
 <translation id="2044014337866019681">Pastikan Anda memverifikasi <ph name="ACCOUNT" /> untuk membuka kunci sesi.</translation>
 <translation id="204497730941176055">Microsoft Certificate Template Name</translation>
 <translation id="2045117674524495717">Bantuan Pintasan Keyboard</translation>
+<translation id="2045211794962848221">Anda tidak akan melihat pesan khusus ini lagi</translation>
 <translation id="2045969484888636535">Lanjutkan pencekalan cookie</translation>
 <translation id="204622017488417136">Perangkat Anda akan dikembalikan ke versi Chrome yang terpasang sebelumnya. Semua akun pengguna dan data lokal akan dihapus. Tindakan ini tidak dapat diurungkan.</translation>
 <translation id="2046702855113914483">Ramen</translation>
@@ -3814,6 +3818,7 @@
 <translation id="4594577641390224176">Mencari halaman tentang sistem? Buka</translation>
 <translation id="4595560905247879544">Aplikasi dan ekstensi hanya dapat diubah oleh pengelola (<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">Anda memiliki sertifikat pada file yang mengidentifikasi server ini</translation>
+<translation id="4598345735110653698">Kelola kunci sandi</translation>
 <translation id="4598556348158889687">Pengelolaan penyimpanan</translation>
 <translation id="4598776695426288251">Wi-Fi tersedia melalui beberapa perangkat</translation>
 <translation id="4601426376352205922">Tandai sebagai Belum Dibaca</translation>
@@ -4039,6 +4044,7 @@
 <translation id="4823894915586516138">PIN atau sandi ini melindungi data Anda pada <ph name="DEVICE_TYPE" /> ini, termasuk informasi yang Anda akses dari ponsel</translation>
 <translation id="4824037980212326045">Pencadangan dan pemulihan Linux</translation>
 <translation id="4824958205181053313">Batalkan sinkronisasi?</translation>
+<translation id="4825532258163983651">Tidak dapat menghapus kunci sandi</translation>
 <translation id="4827675678516992122">Tidak dapat terhubung</translation>
 <translation id="4827784381479890589">Fitur periksa ejaan yang disempurnakan di browser Chrome (teks dikirimkan ke Google untuk mendapatkan saran ejaan)</translation>
 <translation id="4827904420700932487">Buat Kode QR untuk Gambar ini</translation>
@@ -4301,6 +4307,7 @@
 <translation id="5087249366037322692">Ditambahkan oleh pihak ketiga</translation>
 <translation id="5087580092889165836">Tambahkan kartu</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 Dengan Enkripsi RSA</translation>
+<translation id="5089763948477033443">Handel Pengubah Ukuran Panel Samping</translation>
 <translation id="5090637338841444533">Tidak diizinkan melacak posisi kamera Anda</translation>
 <translation id="5093569275467863761">Subframe Samaran yang Disimpan di Back/Forward Cache: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Anda dapat membuka dan mengedit file yang didukung dengan aplikasi ini dari aplikasi File atau aplikasi lainnya. Untuk mengontrol file mana yang akan dibuka dengan aplikasi ini secara default, <ph name="BEGIN_LINK" />pelajari cara menyetel aplikasi default di perangkat Anda<ph name="END_LINK" />.</translation>
@@ -4466,6 +4473,7 @@
 <translation id="5258992782919386492">Instal di perangkat ini</translation>
 <translation id="5260334392110301220">Smart Quotes</translation>
 <translation id="5260508466980570042">Maaf, email atau sandi Anda tidak dapat diverifikasi. Harap coba lagi.</translation>
+<translation id="5260958083445173099">Situs akan menampilkan konten dalam bahasa pilihan Anda, jika memungkinkan</translation>
 <translation id="5261683757250193089">Buka di Toko Web</translation>
 <translation id="5262178194499261222">Hapus sandi</translation>
 <translation id="5262784498883614021">Hubungkan ke jaringan secara otomatis</translation>
@@ -4506,6 +4514,7 @@
 <translation id="5294097441441645251">Harus diawali dengan karakter huruf kecil atau garis bawah</translation>
 <translation id="5294618183559481278"><ph name="DEVICE_TYPE" /> menggunakan sensor bawaan untuk mendeteksi orang di depan perangkat Anda. Semua data langsung diproses di perangkat lalu dihapus. Data sensor tidak pernah dikirim ke Google. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Dengarkan respons lisan agar Anda dapat menggunakan perangkat tanpa melihat layar. Masukan braille tersedia dengan perangkat terhubung.</translation>
+<translation id="5297005732522718715">Refresh Konfigurasi Tethering</translation>
 <translation id="5297082477358294722">Sandi disimpan. Lihat dan kelola sandi tersimpan di <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Jika seseorang melihat layar Anda, ikon mata Privasi akan ditampilkan di kanan bawah layar</translation>
 <translation id="5298219193514155779">Tema dibuat oleh</translation>
@@ -4676,6 +4685,7 @@
 <translation id="5466374726908360271">Tempel dan telusuri “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="5467207440419968613">Memblokir <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Mencari berbagi file</translation>
+<translation id="5468330507528805311">Status Tethering:</translation>
 <translation id="5468881191994555667">Pilih file</translation>
 <translation id="5469852975082458401">Anda dapat membuka halaman dengan kursor teks. Tekan F7 untuk menonaktifkan.</translation>
 <translation id="5470735824776589490">Mulai ulang diperlukan sebelum perangkat Anda dapat direset dengan Powerwash. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation>
@@ -4828,7 +4838,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Tidak diizinkan terhubung ke perangkat MIDI</translation>
 <translation id="5602765853043467355">Hapus bookmark, histori, sandi, dan lainnya dari perangkat ini.</translation>
-<translation id="5605623530403479164">Mesin telusur lainnya</translation>
 <translation id="5605758115928394442">Notifikasi telah dikirim ke ponsel Anda untuk mengonfirmasi bahwa ini memang Anda.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Ekstensi ini diblokir}other{Ekstensi ini diblokir}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync, Pelajari Lebih Lanjut</translation>
@@ -4952,6 +4961,7 @@
 <translation id="5734362860645681824">Komunikasi</translation>
 <translation id="5734697361979786483">Tambahkan berbagi file</translation>
 <translation id="5736796278325406685">Masukkan nama pengguna yang valid</translation>
+<translation id="5738093759615225354">Anda memerlukan kunci sandi ini untuk login ke komputer Anda</translation>
 <translation id="5739017626473506901">Login untuk membantu <ph name="USER_NAME" /> menambahkan akun sekolah</translation>
 <translation id="5739235828260127894">Menunggu verifikasi. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Sangat besar</translation>
@@ -5113,6 +5123,7 @@
 <translation id="589541317545606110">Telusuri Halaman dengan <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Jangan Izinkan</translation>
 <translation id="5900186025777217044">Smart Lock telah diubah</translation>
+<translation id="5900243355162006650">Konfigurasi Tethering:</translation>
 <translation id="5900302528761731119">Foto Google profil</translation>
 <translation id="590036993063074298">Detail Kualitas Pencerminan</translation>
 <translation id="5901069264981746702">Data sidik jari Anda disimpan dengan aman dan hanya ada di <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation>
@@ -5127,6 +5138,7 @@
 <translation id="5909379458939060601">Hapus profil dan data penjelajahan ini?</translation>
 <translation id="5910363049092958439">Sim&amp;pan Gambar Sebagai...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> sedang offline</translation>
+<translation id="5911030830365207728">Google Terjemahan</translation>
 <translation id="5911533659001334206">Shortcut viewer</translation>
 <translation id="5914724413750400082">Modulus (<ph name="MODULUS_NUM_BITS" /> bit):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5416,6 +5428,7 @@
 <translation id="6196640612572343990">Blokir cookie pihak ketiga</translation>
 <translation id="6196854373336333322">Ekstensi "<ph name="EXTENSION_NAME" />" telah mengambil alih kontrol setelan proxy Anda, yang berarti ekstensi dapat mengubah, merusak, atau menyadap apa pun yang Anda lakukan secara online. Jika tidak yakin mengapa perubahan ini terjadi, mungkin Anda tidak menginginkannya.</translation>
 <translation id="6197128521826316819">Buat Kode QR untuk Halaman ini</translation>
+<translation id="6197223946499512637">Kunci sandi ini disimpan di Windows Hello di komputer ini. Kunci sandi tidak disimpan ke Akun Google Anda.</translation>
 <translation id="6198252989419008588">Ubah PIN</translation>
 <translation id="6200047250927636406">Hapus file</translation>
 <translation id="6200151268994853226">Kelola Ekstensi</translation>
@@ -5713,6 +5726,7 @@
 <translation id="6482559668224714696">Kaca pembesar layar penuh</translation>
 <translation id="6483485061007832714">Buka download</translation>
 <translation id="6483805311199035658">Membuka <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">Untuk mengelola kunci sandi, gunakan versi Windows yang lebih baru</translation>
 <translation id="6488384360522318064">Pilih bahasa</translation>
 <translation id="648927581764831596">Tidak ada yang tersedia</translation>
 <translation id="6490471652906364588">Perangkat USB-C (port sebelah kanan)</translation>
@@ -6299,6 +6313,7 @@
 <translation id="7029307918966275733">Crostini tidak diinstal. Instal Crostini untuk melihat kredit.</translation>
 <translation id="7029809446516969842">Sandi</translation>
 <translation id="7030304022046916278">Mengirimkan URL ke Safe Browsing untuk memeriksanya</translation>
+<translation id="7030695672997239647">Klik kanan tab dan pilih "Tambahkan Tab ke Grup", lalu pilih "Grup Baru"</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - Port serial terhubung</translation>
 <translation id="7033616203784997570">Input maksimal 62 karakter</translation>
 <translation id="7034692021407794547">Administrator yang memiliki hak istimewa Pengelolaan Penagihan harus menerima Persyaratan Layanan Google Meet Hardware terlebih dahulu di bagian Google Meet Hardware pada konsol Admin.</translation>
@@ -7401,6 +7416,7 @@
 <translation id="8101987792947961127">Perlu Powerwash saat mulai ulang berikutnya</translation>
 <translation id="81020759409809034">Lokasi Lokal</translation>
 <translation id="8102139037507939978">Hapus Informasi Identitas Pribadi dari system_logs.txt.</translation>
+<translation id="810362914482827094">Telusuri kunci sandi</translation>
 <translation id="8104088837833760645">Download profil eSIM</translation>
 <translation id="8105368624971345109">Nonaktifkan</translation>
 <translation id="8107015733319732394">Menginstal Google Play Store di <ph name="DEVICE_TYPE" />. Tindakan ini dapat memakan waktu beberapa menit.</translation>
@@ -7848,6 +7864,7 @@
 <translation id="8557022314818157177">Terus sentuh kunci keamanan Anda hingga sidik jari terekam</translation>
 <translation id="8557180006508471423">Aktifkan "Google Chrome" di Layanan Lokasi pada Mac</translation>
 <translation id="8557856025359704738">Download berikutnya pada <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Kunci sandi</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Buka Semua di &amp;Jendela Baru}=1{Buka di &amp;Jendela Baru}other{Buka Semua ({COUNT}) di &amp;Jendela Baru}}</translation>
 <translation id="8561206103590473338">Gajah</translation>
 <translation id="8561565784790166472">Lanjutkan dengan hati-hati</translation>
@@ -7974,6 +7991,7 @@
 <translation id="8677212948402625567">Ciutkan semua...</translation>
 <translation id="867767487203716855">Update berikutnya</translation>
 <translation id="8677859815076891398">Tidak ada album. Buat album di <ph name="LINK_BEGIN" />Google Foto<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Mulai ulang dan dapatkan update otomatis</translation>
 <translation id="8678538439778360739">Data dienkripsi dengan frasa sandi sinkronisasi Anda pada <ph name="TIME" />. Data ini tidak mencakup metode pembayaran dan alamat dari Google Pay.</translation>
 <translation id="8678582529642151449">Tab tidak dikecilkan</translation>
 <translation id="8678933587484842200">Bagaimana Anda ingin meluncurkan aplikasi ini?</translation>
@@ -8220,6 +8238,7 @@
 <translation id="8910987510378294980">Sembunyikan daftar perangkat</translation>
 <translation id="8912362522468806198">Akun Google</translation>
 <translation id="8912810933860534797">Aktifkan pindai otomatis</translation>
+<translation id="8915307125957890427">Klik kanan tab dan pilih "Tambahkan tab ke grup", lalu pilih "Grup baru"</translation>
 <translation id="8915370057835397490">Memuat saran</translation>
 <translation id="8916476537757519021">Subframe Mode Samaran: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="DEVICE_TYPE" /> <ph name="GIVEN_NAME" /></translation>
@@ -8294,6 +8313,7 @@
 <translation id="8986362086234534611">Lupakan</translation>
 <translation id="8986494364107987395">Kirim statistik penggunaan dan laporan error ke Google secara otomatis</translation>
 <translation id="8987927404178983737">Bulan</translation>
+<translation id="8989359959810288806">Refresh Status Tethering</translation>
 <translation id="8991520179165052608">Situs dapat menggunakan mikrofon</translation>
 <translation id="899384117894244799">Hapus pengguna yang dibatasi</translation>
 <translation id="899403249577094719">Netscape Certificate Base URL</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index f262864..54c80f5 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -907,6 +907,7 @@
 <translation id="1829129547161959350">Mörgæs</translation>
 <translation id="1829192082282182671">Minnka aðdrátt</translation>
 <translation id="1830550083491357902">Ekki innskráð(ur)</translation>
+<translation id="1831848493690504725">Við náum ekki í Google í gegnum tengt net. Prófaðu að velja aðra nettengingu eða athuga stillingar nettengingarinnar eða stillingar staðgengilsþjóns (ef þú notar staðgengilsþjón).</translation>
 <translation id="1832459821645506983">Já, ég vil vera með</translation>
 <translation id="1832511806131704864">Símabreyting uppfærð</translation>
 <translation id="1832848789136765277">Staðfestu að þetta sért þú til að hafa alltaf aðgang að samstillingargögnunum þínum</translation>
@@ -2209,6 +2210,7 @@
 <translation id="3021065318976393105">Þegar rafhlaða er notuð</translation>
 <translation id="3021066826692793094">Fiðrildi</translation>
 <translation id="3021678814754966447">Skoða frumkóða ramma</translation>
+<translation id="3022361196600037287">Tækið <ph name="DEVICE" /> verður fjarlægt úr þessari Chromebook og vistast ekki á <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Náði þessu ekki.</translation>
 <translation id="3023464535986383522">Textaupplestur</translation>
 <translation id="3024374909719388945">Nota 24 tíma klukku</translation>
@@ -3748,6 +3750,7 @@
 <translation id="4535127706710932914">Sjálfgefinn prófíll</translation>
 <translation id="4535767533210902251">Fingrafaralesarinn er efst til hægri á lyklaborðinu. Snertu hann laust með fingrinum.</translation>
 <translation id="4536140153723794651">Vefsvæði sem geta alltaf notað fótspor</translation>
+<translation id="4536769240747010177">Tjóðrunareiginleikar:</translation>
 <translation id="4538417792467843292">Eyða orði</translation>
 <translation id="4538792345715658285">Sett upp vegna fyrirtækjastefnu.</translation>
 <translation id="4541123282641193691">Ekki tókst að staðfesta reikninginn. Reyndu aftur eða endurræstu Chromebook.</translation>
@@ -3775,6 +3778,7 @@
 <translation id="4561893854334016293">Engum heimildum hefur verið breytt nýlega</translation>
 <translation id="4562155214028662640">Bæta fingrafari við</translation>
 <translation id="4563210852471260509">Inntakstungumál er í upphafi kínverska</translation>
+<translation id="4563382028841851106">Fjarlægja af reikningi</translation>
 <translation id="4563880231729913339">Fingur 3</translation>
 <translation id="4564245002465020751">Ljúktu við uppsetninguna í símanum</translation>
 <translation id="4565377596337484307">Fela aðgangsorð</translation>
@@ -4751,6 +4755,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> vill</translation>
 <translation id="5534304873398226603">Fleygja mynd eða myndskeiði</translation>
 <translation id="5537725057119320332">Senda út</translation>
+<translation id="5539070192556911367">Ekki næst í Google</translation>
 <translation id="5539221284352502426">Vefþjónninn hafnaði aðgangsorðinu sem þú færðir inn. Mögulegar ástæður geta verið: Aðgangsorðið er of stutt. Aðgangsorðið verður að innihalda tölustafi eða tákn. Aðgangsorðið þarf að vera frábrugðið fyrri aðgangsorðum.</translation>
 <translation id="5541694225089836610">Kerfisstjóri hefur gert aðgerðina óvirka</translation>
 <translation id="5542132724887566711">Prófíll</translation>
@@ -4814,6 +4819,7 @@
 <translation id="5585912436068747822">Mistókst að sníða</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Hleður forrit...</translation>
+<translation id="5590418976913374224">Spila hljóð þegar kveikt er á tæki</translation>
 <translation id="5592595402373377407">Ekki næg gögn komin enn.</translation>
 <translation id="5595307023264033512">Heildargeymslurými sem vefsvæði nota: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Breyta heimilisfangi</translation>
@@ -4823,7 +4829,6 @@
 <translation id="5601503069213153581">PIN-númer</translation>
 <translation id="5601823921345337195">Mega ekki tengjast MIDI-tækjum</translation>
 <translation id="5602765853043467355">Hreinsa bókamerki, feril, aðgangsorð og fleira úr þessu tæki</translation>
-<translation id="5605623530403479164">Aðrar leitarvélar</translation>
 <translation id="5605758115928394442">Tilkynning var send í símann þinn til að staðfesta að þetta sért þú.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Þessi viðbót er á bannlista}one{Þessar viðbætur eru á bannlista}other{Þessar viðbætur eru á bannlista}}</translation>
 <translation id="560834977503641186">Wi-Fi-samstilling, Frekari upplýsingar</translation>
@@ -5122,6 +5127,7 @@
 <translation id="5909379458939060601">Eyða þessum prófíl og vefskoðunargögnum?</translation>
 <translation id="5910363049092958439">&amp;Vista mynd sem...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> er án nettengingar</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">Flýtileiðaskoðari</translation>
 <translation id="5914724413750400082">Leifastofn (<ph name="MODULUS_NUM_BITS" /> bitar):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6193,6 +6199,10 @@
 <translation id="6943939122536910181">Aftengt <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Velja</translation>
 <translation id="694592694773692225">Lokað á framsendingu á þessari síðu.</translation>
+<translation id="6947015141909171112">Hér eru tillögur að uppskriftum sem byggjast á nýlegri leit þinni að uppskriftum.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Þú getur stjórnað stillingum á valmynd spjaldsins eða skoðað fleiri valkosti í „Sérsníða Chrome“.</translation>
 <translation id="6949434160682548041">Aðgangsorð (valfrjálst)</translation>
 <translation id="6950627417367801484">Endurheimta forrit</translation>
 <translation id="6952242901357037157">Þú getur einnig sýnt aðgangsorð af <ph name="BEGIN_LINK" />Google reikningnum<ph name="END_LINK" /> þínum hér</translation>
@@ -6360,6 +6370,7 @@
 <translation id="7102687220333134671">Nú er kveikt á sjálfvirkum uppfærslum</translation>
 <translation id="7102832101143475489">Beiðnin rann út á tíma</translation>
 <translation id="710640343305609397">Opna netstillingar</translation>
+<translation id="7107609441453408294">Spila sama hljóð í öllum hátölurum</translation>
 <translation id="7108338896283013870">Fela</translation>
 <translation id="7108668606237948702">enter</translation>
 <translation id="7108933416628942903">Læsa núna</translation>
@@ -6590,6 +6601,7 @@
 <translation id="7364745943115323529">Senda út...</translation>
 <translation id="7364796246159120393">Veldu skrá</translation>
 <translation id="7365076891350562061">Skjástærð</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> - fest</translation>
 <translation id="7366316827772164604">Leitar að nálægum tækjum…</translation>
 <translation id="7366415735885268578">Bæta vefsvæði við</translation>
 <translation id="7366909168761621528">Vefskoðunargögn</translation>
@@ -6986,6 +6998,7 @@
 <translation id="7737115349420013392">Parar við „<ph name="DEVICE_NAME" />“...</translation>
 <translation id="7737846262459425222">Þú getur breytt þessu hvenær sem er í „Stillingar &gt; Google Hjálpari &gt; Skjáumhverfi“.</translation>
 <translation id="7737948071472253612">Mega ekki nota myndavélina</translation>
+<translation id="77381465218432215">Sýna áherslumerki og sérstafi</translation>
 <translation id="7740996059027112821">Venjulegt</translation>
 <translation id="7741307896921365578">Kveikir á hliðarglugga í vafra svo þú hafir alltaf aðgang að leslistanum þínum og bókamerkjunum.</translation>
 <translation id="7742558784808143689">Hreinsa vefsvæðisgögn og heimildir fyrir <ph name="SITE_NAME" />, allar undirsíður og uppsett forrit?</translation>
@@ -7775,6 +7788,7 @@
 <translation id="8486666913807228950">Ástæða: umsnúin regla, <ph name="REVERT_RULE" />, fannst á listanum „Þvinga opnun í“.</translation>
 <translation id="848666842773560761">Forrit er að reyna að opna myndavélina. Slökktu á persónuverndarrofa myndavélarinnar til að heimila aðgang.</translation>
 <translation id="8487678622945914333">Auka aðdrátt</translation>
+<translation id="8487699605742506766">Heitur reitur</translation>
 <translation id="8489156414266187072">Persónulegar tillögur eru eingöngu birtar á reikningnum þínum</translation>
 <translation id="8490896350101740396">Eftirfarandi sjálfsalaforrit, „<ph name="UPDATED_APPS" />,“ voru uppfærð. Endurræstu tækið til að ljúka uppfærslunni.</translation>
 <translation id="8492685019009920170">Snertu fingrafaralesarann með fingrinum. Gögnin þín eru í öruggri geymslu og fara aldrei út fyrir <ph name="DEVICE_TYPE" /> tækið þitt.</translation>
@@ -8269,6 +8283,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{„<ph name="TAB_TITLE" />“}=1{„<ph name="TAB_TITLE" />“ og 1 flipi til viðbótar}one{„<ph name="TAB_TITLE" />“ og # flipi til viðbótar}other{„<ph name="TAB_TITLE" />“ og # flipar til viðbótar}}</translation>
 <translation id="8977811652087512276">Rangt aðgangsorð eða skemmd skrá</translation>
 <translation id="8978154919215542464">Kveikt – samstilla allt</translation>
+<translation id="8978670037548431647">Endurnýja tjóðrunareiginleika</translation>
 <translation id="897939795688207351">Á <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Ábendingaskýrslur</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – hrundi</translation>
@@ -8533,6 +8548,7 @@
 <translation id="935854577147268200">Smart Lock síma var breytt. Færðu inn aðgangsorðið þitt til að uppfæra Smart Lock. Næst tekur síminn þinn <ph name="DEVICE_TYPE" /> úr lás. Þú getur slökkt á Smart Lock í stillingunum</translation>
 <translation id="936646668635477464">Myndavél og hljóðnemi</translation>
 <translation id="936801553271523408">Greiningargögn kerfis</translation>
+<translation id="937053962468712792">Fjarlægja <ph name="DEVICE" /> af <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Gera við viðbót</translation>
 <translation id="938568644810664664">Prófaðu að segja: „Ok Google, what song is this?“ eða „Ok Google, what's on my screen?“</translation>
 <translation id="938623846785894166">Óalgeng skrá</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 364b625..a70a9580 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Utilizzo del microfono e della fotocamera</translation>
 <translation id="1005333234656240382">Attivare il debug ADB?</translation>
 <translation id="1006873397406093306">Questa estensione può leggere e modificare i tuoi dati sui siti. Sei tu controllare a quali siti può accedere l'estensione.</translation>
+<translation id="1007057452468855774">Attiva il Google Play Store</translation>
 <translation id="1008186147501209563">Esporta preferiti</translation>
 <translation id="1008557486741366299">Non adesso</translation>
 <translation id="1009476156254802388">Percorso <ph name="WEB_DRIVE" /></translation>
 <translation id="1009663062402466586">Sono disponibili i controlli per i giochi</translation>
 <translation id="1010498023906173788">Questa scheda è collegata a una porta seriale.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{La pagina non risponde}other{Le pagine non rispondono}}</translation>
+<translation id="1011003645819296594">Dispositivi salvati</translation>
 <translation id="1011355516189274711">Volume sintesi vocale</translation>
 <translation id="1012794136286421601">I tuoi file di Documenti, Fogli di lavoro, Presentazioni e Disegni sono in fase di sincronizzazione. Apri l'app Google Drive per accedervi online oppure offline.</translation>
 <translation id="1012876632442809908">Dispositivo USB-C (porta anteriore)</translation>
@@ -491,6 +493,7 @@
 <translation id="1470350905258700113">Usa questo dispositivo</translation>
 <translation id="1470946456740188591">Per attivare o disattivare la navigazione con cursore, usa la scorciatoia Ctrl + Cerca + 7</translation>
 <translation id="1472675084647422956">Mostra altro</translation>
+<translation id="1473223074251193484">Imposta configurazione tethering</translation>
 <translation id="1474785664565228650">La modifica dell'impostazione del microfono richiede il riavvio di Parallels Desktop. Riavvia Parallels Desktop per continuare.</translation>
 <translation id="1474893630593443211">Maggiore controllo sugli annunci che ti vengono mostrati</translation>
 <translation id="1475502736924165259">Hai certificati su file che non rientrano in nessuna delle altre categorie</translation>
@@ -1113,6 +1116,7 @@
 <translation id="2044014337866019681">Per sbloccare la sessione devi assicurarti di verificare l'account <ph name="ACCOUNT" />.</translation>
 <translation id="204497730941176055">Nome modello di certificato Microsoft</translation>
 <translation id="2045117674524495717">Guida alle scorciatoie da tastiera</translation>
+<translation id="2045211794962848221">Non vedrai più questo messaggio specifico</translation>
 <translation id="2045969484888636535">Continua a bloccare i cookie</translation>
 <translation id="204622017488417136">Sul dispositivo verrà ripristinata la versione di Chrome installata precedentemente. Tutti gli account utente e i dati locali verranno rimossi. L'operazione non può essere annullata.</translation>
 <translation id="2046702855113914483">Ramen</translation>
@@ -3798,6 +3802,7 @@
 <translation id="4594577641390224176">Stai cercando la pagina delle informazioni sul sistema? Visita la pagina</translation>
 <translation id="4595560905247879544">Le app e le estensioni possono essere modificate solo dal gestore (<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">Hai dei certificati su file che identificano questi server</translation>
+<translation id="4598345735110653698">Gestisci passkey</translation>
 <translation id="4598556348158889687">Gestione dello spazio di archiviazione</translation>
 <translation id="4598776695426288251">Wi-Fi disponibile tramite vari dispositivi</translation>
 <translation id="4601426376352205922">Segna come da leggere</translation>
@@ -4023,6 +4028,7 @@
 <translation id="4823894915586516138">Il PIN o la password protegge i tuoi dati memorizzati su questo <ph name="DEVICE_TYPE" />, incluse le informazioni a cui accedi dal telefono</translation>
 <translation id="4824037980212326045">Backup e ripristino Linux</translation>
 <translation id="4824958205181053313">Vuoi annullare la sincronizzazione?</translation>
+<translation id="4825532258163983651">Impossibile eliminare la passkey</translation>
 <translation id="4827675678516992122">Impossibile collegarsi</translation>
 <translation id="4827784381479890589">Controllo ortografico avanzato nel browser Chrome (testo inviato a Google per suggerimenti ortografici)</translation>
 <translation id="4827904420700932487">Crea codice QR per questa immagine</translation>
@@ -4285,6 +4291,7 @@
 <translation id="5087249366037322692">Aggiunta da una terza parte</translation>
 <translation id="5087580092889165836">Aggiungi carta</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 con crittografia RSA</translation>
+<translation id="5089763948477033443">Punto di ridimensionamento del riquadro laterale</translation>
 <translation id="5090637338841444533">Non possono monitorare la posizione della videocamera</translation>
 <translation id="5093569275467863761">Frame secondario in incognito memorizzato nella cache back-forward: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Puoi aprire e modificare i file supportati con questa app dall'app File o con altre app. Per stabilire quali file aprire per impostazione predefinita in questa app, <ph name="BEGIN_LINK" />scopri come impostare app predefinite sul dispositivo<ph name="END_LINK" />.</translation>
@@ -4450,6 +4457,7 @@
 <translation id="5258992782919386492">Installa su questo dispositivo</translation>
 <translation id="5260334392110301220">Virgolette smart</translation>
 <translation id="5260508466980570042">Spiacenti, impossibile verificare l'email o la password. Riprova.</translation>
+<translation id="5260958083445173099">Se possibile, i contenuti dei siti web verranno mostrati nelle tue lingue preferite</translation>
 <translation id="5261683757250193089">Apri nel Web Store</translation>
 <translation id="5262178194499261222">Rimuovi password</translation>
 <translation id="5262784498883614021">Collegati automaticamente alla rete</translation>
@@ -4490,6 +4498,7 @@
 <translation id="5294097441441645251">Deve iniziare con un carattere minuscolo o un trattino basso</translation>
 <translation id="5294618183559481278">Il tuo dispositivo <ph name="DEVICE_TYPE" /> usa un sensore incorporato per rilevare la presenza di persone davanti allo schermo. Tutti i dati vengono subito elaborati sul dispositivo e poi eliminati. I dati del sensore non vengono mai inviati a Google. <ph name="LINK_BEGIN" />Scopri di più<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Attiva la funzione di lettura vocale per usare il dispositivo senza dover guardare lo schermo. Il feedback braille è disponibile con un dispositivo connesso.</translation>
+<translation id="5297005732522718715">Aggiorna configurazione tethering</translation>
 <translation id="5297082477358294722">Password salvata. Visualizza e gestisci le password salvate in <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Quando qualcuno osserva il tuo schermo, mostra l'icona Privacy a forma di occhio nell'angolo inferiore destro dello schermo</translation>
 <translation id="5298219193514155779">Tema creato da</translation>
@@ -4660,6 +4669,7 @@
 <translation id="5466374726908360271">I&amp;ncolla e cerca "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="5467207440419968613">Autorizzazioni bloccate: <ph name="PERMISSION_1" /> e <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Ricerca condivisioni file in corso</translation>
+<translation id="5468330507528805311">Stato tethering:</translation>
 <translation id="5468881191994555667">Scegli file</translation>
 <translation id="5469852975082458401">Puoi spostarti da una pagina all'altra con un cursore di testo. Premi F7 per disattivare questa opzione.</translation>
 <translation id="5470735824776589490">È necessario riavviare prima che il dispositivo possa essere reimpostato con Powerwash. <ph name="LINK_BEGIN" />Ulteriori informazioni<ph name="LINK_END" /></translation>
@@ -4812,7 +4822,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Non possono connettersi ai dispositivi MIDI</translation>
 <translation id="5602765853043467355">Cancella preferiti, cronologia, password e altro da questo dispositivo</translation>
-<translation id="5605623530403479164">Altri motori di ricerca</translation>
 <translation id="5605758115928394442">È stata inviata una notifica al tuo telefono per verificare la tua identità.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Questa estensione è bloccata}other{Queste estensioni sono bloccate}}</translation>
 <translation id="560834977503641186">Sync Wi-Fi, Ulteriori informazioni</translation>
@@ -4934,6 +4943,7 @@
 <translation id="5734362860645681824">Comunicazioni</translation>
 <translation id="5734697361979786483">Aggiungi condivisione file</translation>
 <translation id="5736796278325406685">Inserisci un nome utente valido</translation>
+<translation id="5738093759615225354">Questa passkey è necessaria per accedere al tuo computer</translation>
 <translation id="5739017626473506901">Accedi per aiutare <ph name="USER_NAME" /> ad aggiungere un account della scuola</translation>
 <translation id="5739235828260127894">In attesa di verifica. <ph name="LINK_BEGIN" />Ulteriori informazioni<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Molto grandi</translation>
@@ -5095,6 +5105,7 @@
 <translation id="589541317545606110">Pagina di ricerca con <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Non consentire</translation>
 <translation id="5900186025777217044">Smart Lock è cambiata</translation>
+<translation id="5900243355162006650">Configurazione tethering:</translation>
 <translation id="5900302528761731119">Foto profilo Google</translation>
 <translation id="590036993063074298">Informazioni sulla qualità del mirroring</translation>
 <translation id="5901069264981746702">I dati relativi alle tue impronte vengono memorizzati in modo sicuro e non possono essere trasferiti in alcun modo dal tuo <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Scopri di più<ph name="LINK_END" /></translation>
@@ -5109,6 +5120,7 @@
 <translation id="5909379458939060601">Vuoi eliminare questo profilo e i dati di navigazione?</translation>
 <translation id="5910363049092958439">Sal&amp;va immagine con nome...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> è offline</translation>
+<translation id="5911030830365207728">Google Traduttore</translation>
 <translation id="5911533659001334206">Visualizzatore scorciatoie</translation>
 <translation id="5914724413750400082">Modulo (<ph name="MODULUS_NUM_BITS" /> bit):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5397,6 +5409,7 @@
 <translation id="6196640612572343990">Blocca cookie di terze parti</translation>
 <translation id="6196854373336333322">L'estensione "<ph name="EXTENSION_NAME" />" ha assunto il controllo delle tue impostazioni proxy, il che significa che può cambiare, interrompere o intercettare tutto ciò che fai online. Se non sei sicuro del motivo per cui si sia verificato questo cambiamento, è probabile che sia indesiderato.</translation>
 <translation id="6197128521826316819">Crea codice QR per questa pagina</translation>
+<translation id="6197223946499512637">Queste passkey sono memorizzate in Windows Hello su questo computer, ma non sono salvate nel tuo Account Google.</translation>
 <translation id="6198252989419008588">Modifica PIN</translation>
 <translation id="6200047250927636406">Ignora file</translation>
 <translation id="6200151268994853226">Gestisci estensione</translation>
@@ -5694,6 +5707,7 @@
 <translation id="6482559668224714696">Lente d'ingrandimento a schermo intero</translation>
 <translation id="6483485061007832714">Apri download</translation>
 <translation id="6483805311199035658">Apertura di <ph name="FILE" /> in corso...</translation>
+<translation id="6486301003991593638">Per gestire le passkey, usa una versione più recente di Windows</translation>
 <translation id="6488384360522318064">Seleziona lingua</translation>
 <translation id="648927581764831596">Nessuno disponibile</translation>
 <translation id="6490471652906364588">Dispositivo USB-C (porta a destra)</translation>
@@ -6280,6 +6294,7 @@
 <translation id="7029307918966275733">Crostini non è installato. Per visualizzare i crediti, installa Crostini.</translation>
 <translation id="7029809446516969842">Password</translation>
 <translation id="7030304022046916278">Invia gli URL a Navigazione sicura per controllarli</translation>
+<translation id="7030695672997239647">Fai clic con il tasto destro del mouse su una scheda e seleziona "Aggiungi scheda a gruppo", quindi seleziona "Nuovo gruppo"</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - Porta seriale collegata</translation>
 <translation id="7033616203784997570">Il valore deve essere di massimo 62 caratteri</translation>
 <translation id="7034692021407794547">Un amministratore con privilegi per Gestione della fatturazione deve prima accettare i Termini di servizio dell'hardware Google Meet nella relativa sezione della Console di amministrazione.</translation>
@@ -7382,6 +7397,7 @@
 <translation id="8101987792947961127">Powerwash necessario a prossimo riavvio</translation>
 <translation id="81020759409809034">Percorso locale</translation>
 <translation id="8102139037507939978">Rimuovi le informazioni che consentono l'identificazione personale dal file system_logs.txt.</translation>
+<translation id="810362914482827094">Cerca nelle passkey</translation>
 <translation id="8104088837833760645">Scarica profilo eSIM</translation>
 <translation id="8105368624971345109">Disattiva</translation>
 <translation id="8107015733319732394">Installazione in corso del Google Play Store sul tuo dispositivo <ph name="DEVICE_TYPE" />. L'operazione potrebbe richiedere alcuni minuti.</translation>
@@ -7829,6 +7845,7 @@
 <translation id="8557022314818157177">Continua a toccare il token di sicurezza finché l'impronta digitale non viene acquisita</translation>
 <translation id="8557180006508471423">Attiva "Google Chrome" in Servizi di localizzazione sul Mac</translation>
 <translation id="8557856025359704738">Prossimo download: <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Passkey</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Apri tutti in &amp;un'altra finestra}=1{Apri in &amp;un'altra finestra}other{Apri tutti ({COUNT}) in &amp;un'altra finestra}}</translation>
 <translation id="8561206103590473338">Elefante</translation>
 <translation id="8561565784790166472">Procedi con cautela</translation>
@@ -7955,6 +7972,7 @@
 <translation id="8677212948402625567">Comprimi tutto...</translation>
 <translation id="867767487203716855">Prossimo aggiornamento</translation>
 <translation id="8677859815076891398">Nessun album. Crea un album in<ph name="LINK_BEGIN" />Google Foto<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Riavvia e ricevi aggiornamenti automatici</translation>
 <translation id="8678538439778360739">I dati sono stati criptati con la tua passphrase di sincronizzazione il giorno <ph name="TIME" />. Non sono inclusi i metodi di pagamento e gli indirizzi di Google Pay.</translation>
 <translation id="8678582529642151449">Le schede non si riducono</translation>
 <translation id="8678933587484842200">Come vuoi che venga lanciata questa applicazione?</translation>
@@ -8201,6 +8219,7 @@
 <translation id="8910987510378294980">Nascondi elenco dispositivi</translation>
 <translation id="8912362522468806198">Google Account</translation>
 <translation id="8912810933860534797">Attiva scansione automatica</translation>
+<translation id="8915307125957890427">Fai clic con il tasto destro del mouse su una scheda e seleziona "Aggiungi scheda a gruppo", quindi seleziona "Nuovo gruppo"</translation>
 <translation id="8915370057835397490">Caricamento suggerimento</translation>
 <translation id="8916476537757519021">Frame secondario modalità di navigazione in incognito: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="DEVICE_TYPE" /> di <ph name="GIVEN_NAME" /></translation>
@@ -8275,6 +8294,7 @@
 <translation id="8986362086234534611">Elimina</translation>
 <translation id="8986494364107987395">Invia automaticamente a Google statistiche sull'utilizzo e report sugli arresti anomali</translation>
 <translation id="8987927404178983737">Mese</translation>
+<translation id="8989359959810288806">Aggiorna stato tethering</translation>
 <translation id="8991520179165052608">Il sito può usare il microfono</translation>
 <translation id="899384117894244799">Rimuovere utente con limitazioni</translation>
 <translation id="899403249577094719">URL di base certificato Netscape</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index 9460eb3d..61e55c5a 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">להשתמש במיקרופון ובמצלמה</translation>
 <translation id="1005333234656240382">‏להפעיל ניפוי באגים באמצעות ADB?</translation>
 <translation id="1006873397406093306">התוסף הזה יכול לקרוא ולשנות את הנתונים שלך באתרים. אפשר לקבוע לאילו אתרים התוסף יכול לגשת.</translation>
+<translation id="1007057452468855774">‏הפעלה של חנות Google Play</translation>
 <translation id="1008186147501209563">ייצוא סימניות</translation>
 <translation id="1008557486741366299">לא עכשיו</translation>
 <translation id="1009476156254802388">מיקום ב-<ph name="WEB_DRIVE" /></translation>
 <translation id="1009663062402466586">פקדי המשחקים זמינים עכשיו</translation>
 <translation id="1010498023906173788">הכרטיסייה הזו מחוברת ליציאה טורית.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{הדף אינו מגיב}two{הדפים אינם מגיבים}many{הדפים אינם מגיבים}other{הדפים אינם מגיבים}}</translation>
+<translation id="1011003645819296594">המכשירים השמורים</translation>
 <translation id="1011355516189274711">‏עוצמת קול של המרת טקסט לדיבור (TTS)</translation>
 <translation id="1012794136286421601">‏קובצי המסמכים, הגיליונות, השקפים והשרטוטים מסתנכרנים כעת. יש לפתוח את היישום Google Drive כדי לגשת אליהם אונליין או אופליין.</translation>
 <translation id="1012876632442809908">‏מכשיר עם יציאת USB-C (יציאה קדמית)</translation>
@@ -496,6 +498,7 @@
 <translation id="1470350905258700113">שימוש במכשיר הזה</translation>
 <translation id="1470946456740188591">‏כדי להפעיל או להשבית או הגלישה באמצעות סמן הטקסט, אפשר להשתמש במקשי הקיצור Ctrl+Search+7</translation>
 <translation id="1472675084647422956">הצגת יותר מידע</translation>
+<translation id="1473223074251193484">‏קביעת ההגדרות האישיות לשיתוף אינטרנט בין מכשירים (tethering)</translation>
 <translation id="1474785664565228650">‏השינוי בהגדרת המיקרופון מחייב הפעלה מחדש של Parallels Desktop. יש להפעיל מחדש את Parallels Desktop כדי להמשיך.</translation>
 <translation id="1474893630593443211">שליטה טובה יותר על המודעות שיוצגו לך</translation>
 <translation id="1475502736924165259">יש לך אישורים בקובץ שאינם מתאימים לאף אחת מהקטגוריות האחרות</translation>
@@ -905,6 +908,7 @@
 <translation id="1829129547161959350">פינגווין</translation>
 <translation id="1829192082282182671">הת&amp;רחקות</translation>
 <translation id="1830550083491357902">לא מחובר</translation>
+<translation id="1831848493690504725">‏לא ניתן להתחבר ל-Google דרך הרשת המחוברת. אפשר לנסות לבחור רשת אחרת או לבדוק את הגדרות הרשת או ההגדרות לשרת ה-proxy (אם משתמשים בשרת proxy).</translation>
 <translation id="1832459821645506983">כן, אני רוצה</translation>
 <translation id="1832511806131704864">השינוי בטלפון עודכן</translation>
 <translation id="1832848789136765277">כדי לוודא שתמיד תהיה לך גישה לנתונים המסונכרנים שלך, עליך לאמת את זהותך</translation>
@@ -1123,6 +1127,7 @@
 <translation id="2044014337866019681">עליך לוודא שהחשבון המאומת הוא <ph name="ACCOUNT" /> כדי לבטל את נעילת הפעילות.</translation>
 <translation id="204497730941176055">‏שם תבנית אישור של Microsoft</translation>
 <translation id="2045117674524495717">כלי העזרה למקשי קיצור</translation>
+<translation id="2045211794962848221">ההודעה הספציפית הזו לא תוצג לך יותר</translation>
 <translation id="2045969484888636535">‏המשך לחסום קובצי Cookie</translation>
 <translation id="204622017488417136">‏המכשיר שלך יוחזר לגרסה הקודמת המותקנת של Chrome. כל חשבונות המשתמשים והנתונים המקומיים יוסרו. לא ניתן לבטל פעולה זו.</translation>
 <translation id="2046702855113914483">ראמן</translation>
@@ -2208,6 +2213,7 @@
 <translation id="3021065318976393105">בזמן שימוש בסוללה</translation>
 <translation id="3021066826692793094">פרפר</translation>
 <translation id="3021678814754966447">&amp;הצגת מקור המסגרת</translation>
+<translation id="3022361196600037287">‏המכשיר <ph name="DEVICE" /> יוסר מה-Chromebook הזה ולא יישמר בחשבון <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">ההודעה שלך לא ברורה.</translation>
 <translation id="3023464535986383522">הקראה</translation>
 <translation id="3024374909719388945">שימוש בשעון של 24 שעות</translation>
@@ -3747,6 +3753,7 @@
 <translation id="4535127706710932914">פרופיל ברירת מחדל</translation>
 <translation id="4535767533210902251">חיישן טביעת האצבע מותקן במקש הימני העליון במקלדת. יש לגעת בו בעדינות באחת האצבעות.</translation>
 <translation id="4536140153723794651">‏אתרים שתמיד יכולים להשתמש בקובצי cookie</translation>
+<translation id="4536769240747010177">‏יכולות לשיתוף אינטרנט בין מכשירים (tethering):</translation>
 <translation id="4538417792467843292">מחיקת מילה</translation>
 <translation id="4538792345715658285">מותקן לפי מדיניות של ארגון.</translation>
 <translation id="4541123282641193691">‏לא ניתן היה לאמת את החשבון שלך. יש לנסות שוב או להפעיל מחדש את ה-Chromebook.</translation>
@@ -3774,6 +3781,7 @@
 <translation id="4561893854334016293">אין הרשאות שהשתנו לאחרונה</translation>
 <translation id="4562155214028662640">הוספת טביעת אצבע</translation>
 <translation id="4563210852471260509">שפת הקלט הראשונית היא סינית</translation>
+<translation id="4563382028841851106">הסרה מהחשבון</translation>
 <translation id="4563880231729913339">אצבע שלישית</translation>
 <translation id="4564245002465020751">סיום ההגדרה בטלפון</translation>
 <translation id="4565377596337484307">הסתרת סיסמה</translation>
@@ -3810,6 +3818,7 @@
 <translation id="4594577641390224176">רוצה לאתר את דף המידע על המערכת? יש לעבור לכתובת</translation>
 <translation id="4595560905247879544">רק המנהל (<ph name="CUSTODIAN_NAME" />) יכול לשנות יישומים ותוספים.</translation>
 <translation id="4596295440756783523">יש לך אישורים בקובץ המזהים שרתים אלה</translation>
+<translation id="4598345735110653698">ניהול מפתחות הגישה</translation>
 <translation id="4598556348158889687">ניהול אחסון</translation>
 <translation id="4598776695426288251">‏יש אפשרויות חיבור ל-Wi-Fi ממספר מכשירים</translation>
 <translation id="4601426376352205922">סימון כפריט שלא נקרא</translation>
@@ -4035,6 +4044,7 @@
 <translation id="4823894915586516138">קוד האימות או הסיסמה מגינים על הנתונים שלך ב-<ph name="DEVICE_TYPE" /> הזה, כולל כל מידע שיש לך גישה אליו מהטלפון.</translation>
 <translation id="4824037980212326045">‏גיבוי ושחזור ב-Linux</translation>
 <translation id="4824958205181053313">לבטל את הסנכרון?</translation>
+<translation id="4825532258163983651">אי אפשר למחוק את מפתח הגישה</translation>
 <translation id="4827675678516992122">לא ניתן להתחבר</translation>
 <translation id="4827784381479890589">‏בדיקת איות משופרת בדפדפן Chrome (הטקסט נשלח ל-Google לקבלת הצעות איות)</translation>
 <translation id="4827904420700932487">‏יצירת קוד QR לתמונה הזו</translation>
@@ -4297,6 +4307,7 @@
 <translation id="5087249366037322692">נוסף על ידי צד שלישי</translation>
 <translation id="5087580092889165836">הוספת כרטיס</translation>
 <translation id="5088534251099454936">‏PKCS #1 SHA-512 עם הצפנת RSA</translation>
+<translation id="5089763948477033443">נקודת אחיזה לשינוי הגודל של החלונית הצדדית</translation>
 <translation id="5090637338841444533">לא מורשים לעקוב אחר מיקום המצלמה</translation>
 <translation id="5093569275467863761">תת-המסגרת האנונימית השמורה במטמון לדף הקודם/הבא: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">יש לך אפשרות לפתוח ולערוך קבצים נתמכים באמצעות האפליקציה הזו מתוך האפליקציה 'קבצים' או באמצעות אפליקציות אחרות. כדי לקבוע אילו קבצים יפתחו את האפליקציה הזו כברירת מחדל, <ph name="BEGIN_LINK" />כאן אפשר לקרוא איך להגדיר אפליקציות כברירת מחדל במכשיר שלך<ph name="END_LINK" />.</translation>
@@ -4462,6 +4473,7 @@
 <translation id="5258992782919386492">התקנה במכשיר זה</translation>
 <translation id="5260334392110301220">מירכאות חכמות</translation>
 <translation id="5260508466980570042">מצטערים, לא ניתן לאמת את האימייל או את הסיסמה שלך. יש לנסות שוב.</translation>
+<translation id="5260958083445173099">התוכן באתרים יוצג בשפות המועדפות שלך כשזה יהיה אפשרי.</translation>
 <translation id="5261683757250193089">פתיחה בחנות האינטרנט</translation>
 <translation id="5262178194499261222">הסרת הסיסמה</translation>
 <translation id="5262784498883614021">התחברות אוטומטית לרשת</translation>
@@ -4502,6 +4514,7 @@
 <translation id="5294097441441645251">השם צריך להתחיל באות קטנה או בקו תחתון</translation>
 <translation id="5294618183559481278">‏חיישן מובנה ב-<ph name="DEVICE_TYPE" /> משמש לזיהוי אנשים שנמצאים מול המכשיר. מתבצע עיבוד מיידי של כל הנתונים במכשיר ואז הם נמחקים. נתוני החיישנים אף פעם לא נשלחים אל Google. <ph name="LINK_BEGIN" />למידע נוסף<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">אפשר להאזין לקורא מסך קולי כדי להשתמש במכשיר בלי להסתכל במסך. ניתן לקבל משוב ברייל ממכשיר מחובר.</translation>
+<translation id="5297005732522718715">‏רענון ההגדרות האישיות לשיתוף אינטרנט בין מכשירים (tethering)</translation>
 <translation id="5297082477358294722">הסיסמה נשמרה. אפשר להציג סיסמאות שמורות ולנהל אותן דרך <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">אם אדם אחר יסתכל על המסך שלך, יוצג סמל הפרטיות בצורת עין בפינה השמאלית התחתונה במסך</translation>
 <translation id="5298219193514155779">נושא שנוצר על ידי</translation>
@@ -4672,6 +4685,7 @@
 <translation id="5466374726908360271">הד&amp;בקה וחיפוש של "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="5467207440419968613">ההרשאות הבאות נחסמו: <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">מתבצע איתור של התקני רשת לשיתוף קבצים</translation>
+<translation id="5468330507528805311">‏סטטוס של שיתוף אינטרנט בין מכשירים (tethering):</translation>
 <translation id="5468881191994555667">בחירת קובץ</translation>
 <translation id="5469852975082458401">‏ניתן לנווט בדפים באמצעות סמן הטקסט. כדי להפסיק, אפשר להקיש על F7.</translation>
 <translation id="5470735824776589490">‏כדי לבצע איפוס באמצעות Powerwash, יש להפעיל תחילה את המכשיר מחדש. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation>
@@ -4750,6 +4764,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> מבקש</translation>
 <translation id="5534304873398226603">מחיקת תמונה או סרטון</translation>
 <translation id="5537725057119320332">העברה</translation>
+<translation id="5539070192556911367">‏לא ניתן להתחבר ל-Google</translation>
 <translation id="5539221284352502426">השרת דחה את הסיסמה שהזנת. סיבות אפשריות לכך: הסיסמה קצרה מדי; הסיסמה חייבת לכלול ספרות או סמלים; הסיסמה לא יכולה להיות זהה לסיסמה שכבר השתמשת בה בעבר.</translation>
 <translation id="5541694225089836610">האפשרות לבצע את הפעולה הזו הושבתה על-ידי מנהל המערכת</translation>
 <translation id="5542132724887566711">פרופיל</translation>
@@ -4813,6 +4828,7 @@
 <translation id="5585912436068747822">הפרמוט נכשל</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">המערכת טוענת אפליקציות...</translation>
+<translation id="5590418976913374224">השמעת צליל במהלך הפעלת המכשיר</translation>
 <translation id="5592595402373377407">אין עדיין מספיק נתונים זמינים.</translation>
 <translation id="5595307023264033512">נפח האחסון הכולל שמנוצל על ידי אתרים: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">עריכת כתובת</translation>
@@ -4822,7 +4838,6 @@
 <translation id="5601503069213153581">קוד אימות</translation>
 <translation id="5601823921345337195">‏לא מורשים להתחבר אל מכשירי MIDI</translation>
 <translation id="5602765853043467355">ניקוי הסימניות, ההיסטוריה, הסיסמאות ונתונים נוספים מהמכשיר הזה</translation>
-<translation id="5605623530403479164">מנועי חיפוש אחרים</translation>
 <translation id="5605758115928394442">הודעה נשלחה לטלפון שלך כדי לאשר את זהותך.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{התוסף הזה נחסם}two{התוספים האלה נחסמו}many{התוספים האלה נחסמו}other{התוספים האלה נחסמו}}</translation>
 <translation id="560834977503641186">‏מידע נוסף על סנכרון Wi-Fi</translation>
@@ -4946,6 +4961,7 @@
 <translation id="5734362860645681824">תקשורת</translation>
 <translation id="5734697361979786483">הוספת התקן רשת לשיתוף קבצים</translation>
 <translation id="5736796278325406685">יש להזין שם משתמש חוקי</translation>
+<translation id="5738093759615225354">מפתח הגישה הזה ישמש לכניסה למחשב</translation>
 <translation id="5739017626473506901">כדי לעזור בהוספת חשבון בית ספרי של <ph name="USER_NAME" />, עליך לבצע כניסה למערכת</translation>
 <translation id="5739235828260127894">בהמתנה לאימות. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">גדול מאוד</translation>
@@ -5107,6 +5123,7 @@
 <translation id="589541317545606110">חיפוש בדף באמצעות <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">אין אישור</translation>
 <translation id="5900186025777217044">‏התכונה Smart Lock שונתה</translation>
+<translation id="5900243355162006650">‏ההגדרות האישיות לשיתוף אינטרנט בין מכשירים (tethering):</translation>
 <translation id="5900302528761731119">‏תמונת פרופיל Google</translation>
 <translation id="590036993063074298">פרטי האיכות של שיקוף המסך</translation>
 <translation id="5901069264981746702">נתוני טביעות האצבע מאוחסנים באופן מאובטח ואף פעם לא נשלחים ממכשיר ה-<ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation>
@@ -5121,6 +5138,7 @@
 <translation id="5909379458939060601">למחוק את הפרופיל הזה ואת נתוני הגלישה שלו?</translation>
 <translation id="5910363049092958439">שמ&amp;ירת תמונה בשם...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> אופליין</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">מציג קיצורי הדרך</translation>
 <translation id="5914724413750400082">מודולוס (<ph name="MODULUS_NUM_BITS" /> ביטים):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5410,6 +5428,7 @@
 <translation id="6196640612572343990">‏חסימת קובצי Cookie של צד שלישי</translation>
 <translation id="6196854373336333322">‏התוסף "<ph name="EXTENSION_NAME" />" השתלט על הגדרות שרת ה-Proxy. פירוש הדבר שהוא יכול לשנות ולקטוע לכל פעולה שביצעת באינטרנט או לצותת לה. אם לא ידוע לך בוודאות מדוע שינוי זה התרחש, סביר להניח שזהו שינוי לא רצוי.</translation>
 <translation id="6197128521826316819">‏יצירת קוד QR לדף הזה</translation>
+<translation id="6197223946499512637">‏מפתחות הגישה האלה מאוחסנים ב-Windows Hello במחשב הזה. הם לא נשמרים בחשבון Google.</translation>
 <translation id="6198252989419008588">שינוי קוד אימות</translation>
 <translation id="6200047250927636406">מחיקת הקובץ</translation>
 <translation id="6200151268994853226">ניהול התוספים</translation>
@@ -5707,6 +5726,7 @@
 <translation id="6482559668224714696">זכוכית מגדלת במסך מלא</translation>
 <translation id="6483485061007832714">פתיחת הקובץ שהורדת</translation>
 <translation id="6483805311199035658">הפתיחה של <ph name="FILE" /> מתבצעת...</translation>
+<translation id="6486301003991593638">‏כדי לנהל מפתחות גישה יש להשתמש בגרסה חדשה יותר של Windows</translation>
 <translation id="6488384360522318064">בחירת שפה</translation>
 <translation id="648927581764831596">אין אפליקציות זמינות</translation>
 <translation id="6490471652906364588">‏מכשיר עם יציאת USB-C (יציאה ימנית)</translation>
@@ -6194,6 +6214,10 @@
 <translation id="6943939122536910181">אין חיבור אל <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">בחירה</translation>
 <translation id="694592694773692225">הפניה לכתובת אתר אחרת נחסמה בדף הזה.</translation>
+<translation id="6947015141909171112">‏מוצגים לך מתכונים על סמך פעילות חיפוש המתכונים שלך מהזמן האחרון.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        ניתן לנהל את ההגדרות דרך התפריט בכרטיס או לראות עוד אפשרויות ב'התאמה אישית של Chrome'.</translation>
 <translation id="6949434160682548041">סיסמה (אופציונלי)</translation>
 <translation id="6950627417367801484">שחזור אפליקציות</translation>
 <translation id="6952242901357037157">‏אפשר להציג כאן גם סיסמאות מ<ph name="BEGIN_LINK" />חשבון Google<ph name="END_LINK" /></translation>
@@ -6293,6 +6317,7 @@
 <translation id="7029307918966275733">‏Crostini לא מותקן. יש להתקין את Crostini כדי להציג קרדיטים.</translation>
 <translation id="7029809446516969842">סיסמאות</translation>
 <translation id="7030304022046916278">‏שליחת כתובות URL לבדיקה על ידי 'גלישה בטוחה'</translation>
+<translation id="7030695672997239647">לוחצים לחיצה ימנית על הכרטיסייה ובוחרים באפשרות 'הוספת כרטיסייה לקבוצה' ואז באפשרות 'קבוצה חדשה'</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - מחובר ליציאה טורית</translation>
 <translation id="7033616203784997570">הקלט חייב להכיל עד 62 תווים</translation>
 <translation id="7034692021407794547">‏תחילה מנהל מערכת עם הרשאות 'ניהול חיובים' חייב לקבל את התנאים וההגבלות של הציוד ל-Google Meet בקטע 'ציוד ל-Google Meet' של מסוף ה-Admin.</translation>
@@ -6361,6 +6386,7 @@
 <translation id="7102687220333134671">עדכונים אוטומטיים מופעלים</translation>
 <translation id="7102832101143475489">תם פרק הזמן שהוקצב לבקשה</translation>
 <translation id="710640343305609397">פתיחת הגדרות רשת</translation>
+<translation id="7107609441453408294">השמעה של אודיו זהה בכל הרמקולים</translation>
 <translation id="7108338896283013870">הסתרה</translation>
 <translation id="7108668606237948702">הזנת מפתח</translation>
 <translation id="7108933416628942903">אני רוצה לנעול עכשיו</translation>
@@ -6591,6 +6617,7 @@
 <translation id="7364745943115323529">העבר...</translation>
 <translation id="7364796246159120393">בחירת קובץ</translation>
 <translation id="7365076891350562061">גודל צג</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> – הכרטיסייה מוצמדת</translation>
 <translation id="7366316827772164604">מתבצעת סריקה לאיתור מכשירים בקרבת מקום...</translation>
 <translation id="7366415735885268578">הוספת אתר</translation>
 <translation id="7366909168761621528">נתוני גלישה</translation>
@@ -6987,6 +7014,7 @@
 <translation id="7737115349420013392">מתבצעת התאמה עם "<ph name="DEVICE_NAME" />" ...</translation>
 <translation id="7737846262459425222">‏יש לך תמיד אפשרות לשנות את ההגדרה הזו ב'הגדרות' &gt; ‏Google Assistant‏ &gt; 'הקשר מסך'.</translation>
 <translation id="7737948071472253612">לא מורשים להשתמש במצלמה</translation>
+<translation id="77381465218432215">הצגת סימנים דיאקריטיים ותווים מיוחדים</translation>
 <translation id="7740996059027112821">רגילה</translation>
 <translation id="7741307896921365578">הפעלת חלונית צדדית בדפדפן לצורך גישה נוחה ועקבית לרשימת הקריאה ולסימניות.</translation>
 <translation id="7742558784808143689">לנקות את הנתונים ואת ההרשאות לאתר <ph name="SITE_NAME" />, לכל האתרים שתחתיו ולאפליקציות המותקנות?</translation>
@@ -7393,6 +7421,7 @@
 <translation id="8101987792947961127">‏יש לבצע Powerwash באתחול הבא</translation>
 <translation id="81020759409809034">מיקום מקומי</translation>
 <translation id="8102139037507939978">‏הסרה של פרטים אישיים מזהים מהקובץ system_logs.txt.</translation>
+<translation id="810362914482827094">חיפוש מפתחות גישה</translation>
 <translation id="8104088837833760645">‏הורדת פרופיל eSIM</translation>
 <translation id="8105368624971345109">כיבוי</translation>
 <translation id="8107015733319732394">‏ההתקנה של חנות Google Play במכשיר <ph name="DEVICE_TYPE" /> מתבצעת. ייתכן שההתקנה תימשך כמה דקות.</translation>
@@ -7778,6 +7807,7 @@
 <translation id="8486666913807228950">סיבה: הכלל ההפוך <ph name="REVERT_RULE" /> נמצא ברשימה 'פתיחה מאולצת באמצעות'.</translation>
 <translation id="848666842773560761">נדרשת לאפליקציה גישה למצלמה. יש לכבות את מתג הפרטיות של המצלמה כדי להתיר גישה.</translation>
 <translation id="8487678622945914333">התקרבות לתצוגה</translation>
+<translation id="8487699605742506766">נקודה לשיתוף אינטרנט</translation>
 <translation id="8489156414266187072">הצעות מותאמות אישית מוצגות בחשבון שלך בלבד</translation>
 <translation id="8490896350101740396">אפליקצית הקיוסק הבאות "<ph name="UPDATED_APPS" />" עודכנו. יש להפעיל מחדש את המכשיר כדי להשלים את תהליך העדכון.</translation>
 <translation id="8492685019009920170">יש לגעת עם האצבע בחיישן טביעות האצבע. הנתונים שלך מאוחסנים באופן מאובטח ואף פעם לא נשלחים ממכשיר ה-<ph name="DEVICE_TYPE" />.</translation>
@@ -7839,6 +7869,7 @@
 <translation id="8557022314818157177">צריך להמשיך לגעת במפתח האבטחה עד לתיעוד טביעת האצבע</translation>
 <translation id="8557180006508471423">‏הפעלת "Google Chrome" בשירותי המיקום של מכשיר ה-Mac</translation>
 <translation id="8557856025359704738">ההורדה הבאה תהיה בשעה <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">מפתחות הגישה</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{פתיחת כל הכתובות בחלון &amp;חדש}=1{פתיחה בחלון &amp;חדש}two{פתיחת כל הכתובות ({COUNT}) בחלון &amp;חדש}many{פתיחת כל הכתובות ({COUNT}) בחלון &amp;חדש}other{פתיחת כל הכתובות ({COUNT}) בחלון &amp;חדש}}</translation>
 <translation id="8561206103590473338">פיל</translation>
 <translation id="8561565784790166472">יש להמשיך בזהירות</translation>
@@ -7965,6 +7996,7 @@
 <translation id="8677212948402625567">כיווץ הכול...</translation>
 <translation id="867767487203716855">העדכון הבא</translation>
 <translation id="8677859815076891398">‏אין אלבומים. ניתן ליצור אלבום ב<ph name="LINK_BEGIN" />תמונות Google<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">הפעלה מחדש והתקנת העדכונים האוטומטיים</translation>
 <translation id="8678538439778360739">‏הנתונים הוצפנו באמצעות ביטוי הסיסמה שלך לסנכרון בשעה <ph name="TIME" />. הנתונים המוצפנים לא כוללים אמצעי תשלום וכתובות מ-Google Pay.</translation>
 <translation id="8678582529642151449">הכרטיסיות לא יתכווצו</translation>
 <translation id="8678933587484842200">איך להפעיל את האפליקציה הזו?</translation>
@@ -8213,6 +8245,7 @@
 <translation id="8910987510378294980">הסתרת רשימת המכשירים</translation>
 <translation id="8912362522468806198">‏חשבון Google</translation>
 <translation id="8912810933860534797">הפעלת סריקה אוטומטית</translation>
+<translation id="8915307125957890427">לוחצים לחיצה ימנית על הכרטיסייה ובוחרים באפשרות 'הוספת כרטיסייה לקבוצה' ואז באפשרות 'קבוצה חדשה'</translation>
 <translation id="8915370057835397490">טעינת ההצעה מתבצעת...</translation>
 <translation id="8916476537757519021">תת-מסגרת למצב אנונימי: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138">ה-<ph name="DEVICE_TYPE" /> של <ph name="GIVEN_NAME" /></translation>
@@ -8273,6 +8306,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" ועוד כרטיסייה אחת}two{"<ph name="TAB_TITLE" />" ועוד # כרטיסיות}many{"<ph name="TAB_TITLE" />" ועוד # כרטיסיות}other{"<ph name="TAB_TITLE" />" ועוד # כרטיסיות}}</translation>
 <translation id="8977811652087512276">הסיסמה שגויה או שהקובץ פגום</translation>
 <translation id="8978154919215542464">פועל - סנכרון הכול</translation>
+<translation id="8978670037548431647">‏רענון של היכולות לשיתוף אינטרנט בין מכשירים (tethering)</translation>
 <translation id="897939795688207351">ב-<ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">דוחות משוב</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – קרס</translation>
@@ -8286,6 +8320,7 @@
 <translation id="8986362086234534611">לשכוח</translation>
 <translation id="8986494364107987395">‏שליחה אוטומטית של דוחות קריסה וסטטיסטיקות שימוש ל-Google</translation>
 <translation id="8987927404178983737">חודש</translation>
+<translation id="8989359959810288806">‏רענון הסטטוס של שיתוף אינטרנט בין מכשירים (tethering)</translation>
 <translation id="8991520179165052608">האתר רשאי להשתמש במיקרופון</translation>
 <translation id="899384117894244799">הסרה של משתמש מוגבל</translation>
 <translation id="899403249577094719">‏כתובת אתר בסיסית של אישור Netscape</translation>
@@ -8537,6 +8572,7 @@
 <translation id="935854577147268200">‏הטלפון שהוגדר ב-Smart Lock השתנה. עליך להזין את הסיסמה כדי לעדכן את Smart Lock. בפעם הבאה, הטלפון יבטל את הנעילה של <ph name="DEVICE_TYPE" />. אפשר להשבית את Smart Lock בהגדרות.</translation>
 <translation id="936646668635477464">מצלמה ומיקרופון</translation>
 <translation id="936801553271523408">נתוני אבחון של מערכת</translation>
+<translation id="937053962468712792">להסיר את <ph name="DEVICE" /> מהחשבון <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">תיקון התוסף</translation>
 <translation id="938568644810664664">‏אפשר לנסות לומר "Hey Google, what song is this?‎" או "Hey Google, what's on my screen?‎"</translation>
 <translation id="938623846785894166">קובץ לא נפוץ</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 7e2c3e88..396042e 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -4651,6 +4651,7 @@
 <translation id="5470735824776589490">デバイスを Powerwash でリセットするにはまず再起動が必要です。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">こんにちは。テキスト読み上げの音声です。</translation>
 <translation id="5472627187093107397">このサイトのパスワードを保存する</translation>
+<translation id="5473062644742711742">Chrome ウェブストアで他のユーザー補助ツールを探す</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">続行すると、Google、お子様がご利用の携帯通信会社、デバイス メーカーからアップデートやアプリをこのデバイスが自動的に(場合によってはモバイルデータ接続を使用して)ダウンロードし、インストールする場合があることに同意したことになります。一部のアプリでは、アプリ内購入をご利用いただけます。</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN は 1 文字以上で入力してください}other{PIN は # 文字以上で入力してください}}</translation>
@@ -4798,7 +4799,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI デバイスへの接続を許可しないサイト</translation>
 <translation id="5602765853043467355">ブックマーク、履歴、パスワード、その他の設定情報をこのデバイスから削除する</translation>
-<translation id="5605623530403479164">その他の検索エンジン</translation>
 <translation id="5605758115928394442">本人確認の通知をご使用のスマートフォンに送信しました。</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{この拡張機能はブロックされています}other{これらの拡張機能はブロックされています}}</translation>
 <translation id="560834977503641186">Wi-Fi 同期の詳細</translation>
@@ -5097,6 +5097,7 @@
 <translation id="5909379458939060601">このプロフィールと閲覧データを削除しますか?</translation>
 <translation id="5910363049092958439">名前を付けて画像を保存(&amp;V)...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> はオフラインです</translation>
+<translation id="5911030830365207728">Google 翻訳</translation>
 <translation id="5911533659001334206">ショートカット ビューア</translation>
 <translation id="5914724413750400082">モジュール(<ph name="MODULUS_NUM_BITS" /> ビット):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index fa17811..d09bedc6 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -4822,7 +4822,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI-მოწყობილობებთან დაკავშირება დაუშვებელია</translation>
 <translation id="5602765853043467355">ამ მოწყობილობაზე სანიშნეების, ისტორიის, პაროლებისა და სხვა კონტენტის გასუფთავება</translation>
-<translation id="5605623530403479164">სხვა საძიებო სისტემები</translation>
 <translation id="5605758115928394442">თქვენს ტელეფონზე გაიგზავნა შეტყობინება თქვენი ვინაობის დასადასტურებლად.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ეს გაფართოება დაბლოკილია}other{ეს გაფართოებები დაბლოკილია}}</translation>
 <translation id="560834977503641186">Wi-Fi სინქრონიზაცია, შეიტყვეთ მეტი</translation>
@@ -5123,6 +5122,7 @@
 <translation id="5909379458939060601">გსურთ, წაშალოთ ეს პროფილი და დათვალიერების მონაცემები?</translation>
 <translation id="5910363049092958439">გამოსახულების შენ&amp;ახვა, როგორც…</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ხაზგარეშეა</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">მალსახმობების მნახველი</translation>
 <translation id="5914724413750400082">მოდული (<ph name="MODULUS_NUM_BITS" /> ბიტი):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 9faa5c2..985a1e2 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -4809,7 +4809,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI құрылғыларына қосылуға рұқсаты жоқтар</translation>
 <translation id="5602765853043467355">Осы құрылғыдан алынған бетбелгілерді, тарихты, құпия сөздерді, т.б. өшіру</translation>
-<translation id="5605623530403479164">Басқа іздеу жүйелері</translation>
 <translation id="5605758115928394442">Жеке басыңызды растау үшін телефоныңызға хабарландыру жіберілді.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Бұл кеңейтім бөгелді}other{Бұл кеңейтімдер бөгелді}}</translation>
 <translation id="560834977503641186">Wi-Fi деректерін синхрондау, толығырақ</translation>
@@ -5106,6 +5105,7 @@
 <translation id="5909379458939060601">Осы профиль және браузерді пайдалану деректері жойылсын ба?</translation>
 <translation id="5910363049092958439">Кескінді басқаша са&amp;қтау…</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> офлайн режимде.</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">Жылдам пернелерді көру құралы</translation>
 <translation id="5914724413750400082">Модуль (<ph name="MODULUS_NUM_BITS" /> бит):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 9303c7a..7bb9c47 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -4681,6 +4681,7 @@
 <translation id="5470735824776589490">តម្រូវឱ្យ​ចាប់ផ្តើមឡើងវិញ មុនពេលអាចកំណត់​ឧបករណ៍​របស់អ្នកឡើងវិញ​ដោយប្រើ Powerwash។ <ph name="LINK_BEGIN" />ស្វែងយល់បន្ថែម<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">សួស្ដី! ខ្ញុំ​គឺ​ជា​សំឡេង​ម៉ាស៊ីនអត្ថបទ​ទៅជា​ការនិយាយ​របស់អ្នក។</translation>
 <translation id="5472627187093107397">រក្សាទុក​ពាក្យសម្ងាត់​សម្រាប់គេហទំព័រនេះ</translation>
+<translation id="5473062644742711742">ស្វែងរក​ឧបករណ៍​​ភាព​ងាយស្រួល​កាន់តែ​ច្រើន​នៅ​ក្នុង​ Chrome Web Store</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">ប្រសិនបើ​បន្ត មានន័យ​ថាអ្នកក៏យល់ព្រម​ឱ្យឧបករណ៍​នេះអាច​ទាញយក និងដំឡើង​កម្មវិធីនិងកំណែថ្មី​ដោយ​ស្វ័យប្រវត្តិពី Google, ក្រុមហ៊ុន​សេវាទូរសព្ទ​របស់កូនអ្នក និង​ក្រុមហ៊ុន​ផលិត​ឧបករណ៍​នេះ ដោយអាចនឹង​ប្រើ​ទិន្នន័យ​ទូរសព្ទ​ចល័តផងដែរ។ កម្មវិធី​ទាំងនេះ​មួយចំនួន​អាចផ្តល់ជូន​ការទិញក្នុង​កម្មវិធី។</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{កូដ PIN ត្រូវតែមានតួអក្សរ​យ៉ាងហោចណាស់មួយតួ}other{កូដ PIN ត្រូវតែមានតួអក្សរ​យ៉ាងហោចណាស់ # តួ}}</translation>
@@ -4828,7 +4829,6 @@
 <translation id="5601503069213153581">លេខសម្គាល់</translation>
 <translation id="5601823921345337195">មិនអនុញ្ញាតឱ្យភ្ជាប់ជាមួយឧបករណ៍ MIDI ទេ</translation>
 <translation id="5602765853043467355">សម្អាត​ចំណាំ ប្រវត្តិ ពាក្យ​សម្ងាត់ និងអ្វីៗ​ជាច្រើនទៀត​ពីឧបករណ៍​នេះ</translation>
-<translation id="5605623530403479164">ម៉ាស៊ីនស្វែងរកផ្សេងទៀត</translation>
 <translation id="5605758115928394442">ការជូនដំណឹង​ត្រូវបានផ្ញើ​ទៅទូរសព្ទ​របស់អ្នក ដើម្បីបញ្ជាក់ថា​ពិតជាអ្នក។</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{កម្មវិធីបន្ថែម​នេះ​ត្រូវបាន​ទប់ស្កាត់}other{កម្មវិធីបន្ថែម​ទាំងនេះ​ត្រូវបាន​ទប់ស្កាត់}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync, ស្វែងយល់បន្ថែម</translation>
@@ -5128,6 +5128,7 @@
 <translation id="5909379458939060601">លុបកម្រង​ព័ត៌មាននេះ និងទិន្នន័យ​រុករកឬ?</translation>
 <translation id="5910363049092958439">រក្សាទុករូបភាពជា...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> គ្មានអ៊ីនធឺណិតទេ</translation>
+<translation id="5911030830365207728">កម្មវិធីបកប្រែ Google</translation>
 <translation id="5911533659001334206">កម្មវិធីមើល​ផ្លូវកាត់</translation>
 <translation id="5914724413750400082">បរិមាណវាស់វែង (<ph name="MODULUS_NUM_BITS" /> ប៊ីត):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index ea8decd..1071f80 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">ನಿಮ್ಮ ಮೈಕ್ರೊಫೋನ್ ಮತ್ತು ಕ್ಯಾಮರಾವನ್ನು ಬಳಸಿ</translation>
 <translation id="1005333234656240382">ADB ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕೇ?</translation>
 <translation id="1006873397406093306">ಈ ವಿಸ್ತರಣೆಯು ಸೈಟ್‌ಗಳಲ್ಲಿರುವ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಓದಬಹುದು ಮತ್ತು ಬದಲಿಸಬಹುದು. ವಿಸ್ತರಣೆಯು ಯಾವ ಸೈಟ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಎಂಬುದನ್ನು ನೀವು ನಿಯಂತ್ರಿಸಬಹುದು.</translation>
+<translation id="1007057452468855774">Google Play Store ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="1008186147501209563">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ರಫ್ತು ಮಾಡಿ</translation>
 <translation id="1008557486741366299">ಈಗಲೇ ಅಲ್ಲ</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" /> ಸ್ಥಳ</translation>
 <translation id="1009663062402466586">ಗೇಮ್ ನಿಯಂತ್ರಣಗಳು ಈಗ ಲಭ್ಯವಿದೆ</translation>
 <translation id="1010498023906173788">ಈ ಟ್ಯಾಬ್, ಸೀರಿಯಲ್ ಪೋರ್ಟ್‌ಗೆ ಸಂಪರ್ಕಗೊಂಡಿದೆ.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{ಪ್ರತಿಕ್ರಿಯೆರಹಿತ ಪುಟ}one{ಪ್ರತಿಕ್ರಿಯೆರಹಿತ ಪುಟಗಳು}other{ಪ್ರತಿಕ್ರಿಯೆರಹಿತ ಪುಟಗಳು}}</translation>
+<translation id="1011003645819296594">ಉಳಿಸಲಾದ ಸಾಧನಗಳು</translation>
 <translation id="1011355516189274711">ಪಠ್ಯದಿಂದ ಧ್ವನಿ ವಾಲ್ಯೂಮ್</translation>
 <translation id="1012794136286421601">ನಿಮ್ಮ ಡಾಕ್ಸ್‌, ಶೀಟ್‌ಗಳು, ಸ್ಲೈಡ್‌ಗಳು, ಮತ್ತು ರೇಖಾಚಿತ್ರಗಳ ಫೈಲ್‌ಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ. ಅವುಗಳನ್ನು ಆನ್‌ಲೈನ್‌ ಅಥವಾ ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿ ಪ್ರವೇಶಿಸಲು Google ಡ್ರೈವ್‌ ಅಪ್ಲಿಕೇಶನ್‌ ತೆರೆಯಿರಿ.</translation>
 <translation id="1012876632442809908">USB-C ಸಾಧನ (ಮುಂದಿನ ಪೋರ್ಟ್)</translation>
@@ -495,6 +497,7 @@
 <translation id="1470350905258700113">ಈ ಸಾಧನವನ್ನು ಬಳಸಿ</translation>
 <translation id="1470946456740188591">ಕೆರೆಟ್ ಬ್ರೌಸಿಂಗ್ ಆನ್ ಅಥವಾ ಆಫ್ ಮಾಡಲು, Ctrl+Search+7 ಶಾರ್ಟ್‌ಕಟ್ ಬಳಸಿ</translation>
 <translation id="1472675084647422956">ಇನ್ನಷ್ಟು ತೋರಿಸಿ</translation>
+<translation id="1473223074251193484">ಟೆಥರಿಂಗ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಸೆಟ್ ಮಾಡಿ</translation>
 <translation id="1474785664565228650">ಮೈಕ್ರೊಫೋನ್ ಸೆಟ್ಟಿಂಗ್‌ನಲ್ಲಿರುವ ಬದಲಾವಣೆಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು Parallels Desktop ‌ನ ಅಗತ್ಯವಿದೆ ಮುಂದುವರಿಯಲು, Parallels Desktop ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ.</translation>
 <translation id="1474893630593443211">ನೀವು ನೋಡುವ ಜಾಹೀರಾತುಗಳ ಮೇಲೆ ಹೆಚ್ಚಿನ ನಿಯಂತ್ರಣ</translation>
 <translation id="1475502736924165259">ಇತರ ಯಾವುದೇ ವರ್ಗಗಳಿಗೆ ಹೊಂದದಿರುವಂತಹ ಫೈಲ್‌ನಲ್ಲಿ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ನೀವು ಹೊಂದಿರುವಿರಿ</translation>
@@ -900,6 +903,7 @@
 <translation id="1829129547161959350">ಪೆಂಗ್ವಿನ್</translation>
 <translation id="1829192082282182671">ಝೂಮ್ &amp;ಔಟ್</translation>
 <translation id="1830550083491357902">ಸೈನ್ ಇನ್ ಆಗಿಲ್ಲ</translation>
+<translation id="1831848493690504725">ಕನೆಕ್ಟ್ ಮಾಡಿದ ನೆಟ್‌ವರ್ಕ್ ಮೂಲಕ ನಾವು Google ಅನ್ನು ತಲುಪಲು ನಮಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ಬೇರೆ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಅಥವಾ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು (ನೀವು ಪ್ರಾಕ್ಸಿಯನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ) ಪರಿಶೀಲಿಸಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="1832459821645506983">ಹೌದು, ನಾನು ಸಮ್ಮತಿಸುತ್ತೇನೆ</translation>
 <translation id="1832511806131704864">ಫೋನ್ ಬದಲಾವಣೆ ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="1832848789136765277">ನಿಮ್ಮ ಸಿಂಕ್ ಡೇಟಾವನ್ನು ನೀವು ಯಾವಾಗಲೂ ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗುವ ಹಾಗೆ ನೋಡಿಕೊಳ್ಳಲು, ಅದು ನೀವೇ ಎಂದು ದೃಢೀಕರಿಸಿ</translation>
@@ -1117,6 +1121,7 @@
 <translation id="2044014337866019681">ಸೆಶನ್ ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು <ph name="ACCOUNT" /> ಅನ್ನು ದೃಢೀಕರಿಸುತ್ತಿರುವಿರಿ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.</translation>
 <translation id="204497730941176055">Microsoft ಪ್ರಮಾಣಪತ್ರ ಟೆಂಪ್ಲೇಟ್ ಹೆಸರು</translation>
 <translation id="2045117674524495717">ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್‌ಕಟ್ ಸಹಾಯಕ</translation>
+<translation id="2045211794962848221">ಈ ನಿರ್ದಿಷ್ಟ ಸಂದೇಶವನ್ನು ನೀವು ಪುನಃ ನೋಡುವುದಿಲ್ಲ</translation>
 <translation id="2045969484888636535">ಕುಕೀಸ್ ನಿರ್ಬಂಧಿಸುವುದನ್ನು ಮುಂದುವರಿಸು</translation>
 <translation id="204622017488417136">ನಿಮ್ಮ ಸಾಧನವನ್ನು ಹಿಂದೆ ಸ್ಥಾಪಿಸಲಾದ Chrome ನ ಆವೃತ್ತಿಗೆ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. ಎಲ್ಲ ಬಳಕೆದಾರರ ಖಾತೆಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. ಇದನ್ನು ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="2046702855113914483">ರಾಮೆನ್</translation>
@@ -3806,6 +3811,7 @@
 <translation id="4594577641390224176">ಸಿಸ್ಟಂ ಕುರಿತ ಪುಟವನ್ನು ಹುಡುಕುತ್ತಿರುವಿರಾ? ಭೇಟಿ ನೀಡಿ</translation>
 <translation id="4595560905247879544">ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ವಿಸ್ತರಣೆಗಳನ್ನು ಮ್ಯಾನೇಜರ್ (<ph name="CUSTODIAN_NAME" />) ರಿಂದ ಮಾತ್ರ ಮಾರ್ಪಡಿಸಬಹುದು.</translation>
 <translation id="4596295440756783523">ಈ ಸರ್ವರ್‌ಗಳನ್ನು ಗುರುತಿಸುವಂತಹ ಫೈಲ್‌ನಲ್ಲಿನ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ನೀವು ಹೊಂದಿರುವಿರಿ</translation>
+<translation id="4598345735110653698">ಪಾಸ್‌ಕೀಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="4598556348158889687">ಸಂಗ್ರಹಣೆ ನಿರ್ವಹಣೆ</translation>
 <translation id="4598776695426288251">ಬಹು-ಸಾಧನಗಳ ಮೂಲಕ ವೈ-ಫೈ ಲಭ್ಯವಿದೆ</translation>
 <translation id="4601426376352205922">ಓದದಿರುವುದು ಎಂದು ಗುರುತಿಸಿ</translation>
@@ -4032,6 +4038,7 @@
 <translation id="4823894915586516138">ಈ ಪಿನ್ ಅಥವಾ ಪಾಸ್‌ವರ್ಡ್ ನಿಮ್ಮ ಫೋನ್‌ನಿಂದ ನೀವು ಪ್ರವೇಶಿಸುವ ಯಾವುದೇ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಂತೆ ಈ <ph name="DEVICE_TYPE" /> ನಲ್ಲಿನ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ರಕ್ಷಿಸುತ್ತದೆ</translation>
 <translation id="4824037980212326045">Linux ಬ್ಯಾಕಪ್ ಮತ್ತು ಮರುಸ್ಥಾಪನೆ</translation>
 <translation id="4824958205181053313">ಸಿಂಕ್ ರದ್ದುಗೊಳಿಸುವುದೇ?</translation>
+<translation id="4825532258163983651">ಪಾಸ್‌ಕೀ ಅನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="4827675678516992122">ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="4827784381479890589">Chrome ಬ್ರೌಸರ್‌ನಲ್ಲಿ ವರ್ಧಿತ ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯನ್ನು ವರ್ಧಿಸಲಾಗಿದೆ (ಪಠ್ಯವನ್ನು ಕಾಗುಣಿತ ಸಲಹೆಗಳಿಗಾಗಿ Google ಗೆ ಕಳುಹಿಸಲಾಗಿದೆ)</translation>
 <translation id="4827904420700932487">ಈ ಚಿತ್ರಕ್ಕಾಗಿ QR ಕೋಡ್ ರಚಿಸಿ</translation>
@@ -4294,6 +4301,7 @@
 <translation id="5087249366037322692">ಥರ್ಡ್ ಪಾರ್ಟಿ ಮೂಲಕ ಸೇರಿಸಲಾಗಿದೆ</translation>
 <translation id="5087580092889165836">ಕಾರ್ಡ್ ಸೇರಿಸಿ</translation>
 <translation id="5088534251099454936">RSA ಎನ್‌ಕ್ರಿಪ್ಶನ್‌ನೊಂದಿಗೆ PKCS #1 SHA-512</translation>
+<translation id="5089763948477033443">ಸೈಡ್ ಪ್ಯಾನೆಲ್ ಮರುಗಾತ್ರಗೊಳಿಸುವ ಹ್ಯಾಂಡಲ್</translation>
 <translation id="5090637338841444533">ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಸ್ಥಾನವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಈ ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ</translation>
 <translation id="5093569275467863761">ಅಜ್ಞಾತ ಬ್ಯಾಕ್-ಫಾರ್ವರ್ಡ್ ಕ್ಯಾಷ್ ಮಾಡಿದ ಸಬ್-ಫ್ರೇಮ್: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Files ಅಥವಾ ಇತರ ಆ್ಯಪ್‌ಗಳಲ್ಲಿರುವ ಈ ಆ್ಯಪ್ ಬಳಸಿಕೊಂಡು ನೀವು ಬೆಂಬಲಿತ ಫೈಲ್‌ಗಳನ್ನು ತೆರೆಯಬಹುದು ಮತ್ತು ಎಡಿಟ್ ಮಾಡಬಹುದು. ಈ ಆ್ಯಪ್ ಡೀಫಾಲ್ಟ್ ಆಗಿ ಯಾವ ಫೈಲ್‌ಗಳನ್ನು ತೆರೆಯಬೇಕು ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಲು, <ph name="BEGIN_LINK" />ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಡೀಫಾಲ್ಟ್ ಆ್ಯಪ್‌ಗಳನ್ನು ಸೆಟ್ ಮಾಡುವುದು ಹೇಗೆ ಎಂಬುದರ ಕುರಿತು ತಿಳಿಯಿರಿ<ph name="END_LINK" />.</translation>
@@ -4459,6 +4467,7 @@
 <translation id="5258992782919386492">ಈ ಸಾಧನದಲ್ಲಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ</translation>
 <translation id="5260334392110301220">ಸ್ಮಾರ್ಟ್ ಉಲ್ಲೇಖಗಳು</translation>
 <translation id="5260508466980570042">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ ಇಮೇಲ್ ಅಥವಾ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲಾಗಲಿಲ್ಲ.  ದಯವಿಟ್ಟು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
+<translation id="5260958083445173099">ಸಾಧ್ಯವಾದಾಗ, ವೆಬ್‌ಸೈಟ್‌ಗಳು ನಿಮ್ಮ ಆದ್ಯತೆಯ ಭಾಷೆಗಳಲ್ಲಿ ವಿಷಯವನ್ನು ತೋರಿಸುತ್ತವೆ</translation>
 <translation id="5261683757250193089">ವೆಬ್‌ಸ್ಟೋರ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="5262178194499261222">ಪಾಸ್‌ವರ್ಡ್‌ ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="5262784498883614021">ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕನೆಕ್ಟ್ ಮಾಡಿ</translation>
@@ -4499,6 +4508,7 @@
 <translation id="5294097441441645251">ಸಣ್ಣಕ್ಷರ ಅಥವಾ ಅಂಡರ್‌ಸ್ಕೋರ್ ಮೂಲಕ ಪ್ರಾರಂಭವಾಗಬೇಕು</translation>
 <translation id="5294618183559481278">ನಿಮ್ಮ ಸಾಧನದ ಮುಂದೆ ಜನರನ್ನು ಪತ್ತೆಹಚ್ಚಲು ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಅಂತರ್ನಿರ್ಮಿತ ಸೆನ್ಸರ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ತಕ್ಷಣವೇ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತದೆ ಹಾಗೂ ನಂತರ ಅಳಿಸಲಾಗುತ್ತದೆ. ಸೆನ್ಸಾರ್ ಡೇಟಾವನ್ನು ಎಂದಿಗೂ Google ಗೆ ಕಳುಹಿಸಲಾಗುವುದಿಲ್ಲ. <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">ಮಾತಿನ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಆಲಿಸಿ ಇದರಿಂದ ನೀವು ಸ್ಕ್ರೀನ್ ಅನ್ನು ನೋಡದೆಯೇ ನಿಮ್ಮ ಸಾಧನವನ್ನು ಬಳಸಬಹುದು. ಸಂಪರ್ಕಿತ ಸಾಧನದೊಂದಿಗೆ ಬ್ರೈಲ್ ಪ್ರತಿಕ್ರಿಯೆ ಲಭ್ಯವಿದೆ.</translation>
+<translation id="5297005732522718715">ಟೆಥರಿಂಗ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಿ</translation>
 <translation id="5297082477358294722">ಪಾಸ್‌ವರ್ಡ್ ಉಳಿಸಲಾಗಿದೆ. ಉಳಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿಮ್ಮ <ph name="SAVED_PASSWORDS_STORE" /> ನಲ್ಲಿ ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ.</translation>
 <translation id="5297946558563358707">ಬೇರೊಬ್ಬರು ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ ಅನ್ನು ನೋಡಿದಾಗ, ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ನ ಕೆಳಗಿನ ಬಲಭಾಗದಲ್ಲಿ ಗೌಪ್ಯತೆ ಕಣ್ಣಿನ ಐಕಾನ್ ಅನ್ನು ತೋರಿಸಿ</translation>
 <translation id="5298219193514155779">ಇವರಿಂದ ಥೀಮ್ ರಚಿಸಲಾಗಿದೆ</translation>
@@ -4669,6 +4679,7 @@
 <translation id="5466374726908360271">ಅಂ&amp;ಟಿಸಿ ಮತ್ತು “<ph name="SEARCH_TERMS" />” ಗಾಗಿ ಹುಡುಕಿ</translation>
 <translation id="5467207440419968613"><ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="5468173180030470402">ಫೈಲ್‌ ಹಂಚಿಕೆಗಳನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ</translation>
+<translation id="5468330507528805311">ಟೆಥರಿಂಗ್‌ ಸ್ಥಿತಿ:</translation>
 <translation id="5468881191994555667">ಫೈಲ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="5469852975082458401">ಪಠ್ಯದ ಕರ್ಸರ್ ಮೂಲಕ ನೀವು ಪುಟಗಳನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಬಹುದು. ಆಫ್ ಮಾಡಲು F7 ಒತ್ತಿರಿ.</translation>
 <translation id="5470735824776589490">ಪವರ್‌ವಾಶ್‌ ಮೂಲಕ ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಹೊಂದಿಸುವ ಮೊದಲು ಮರುಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ. <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="LINK_END" /></translation>
@@ -4747,6 +4758,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> ಗೆ ಅನುಮತಿ ಬೇಕಿದೆ</translation>
 <translation id="5534304873398226603">ಫೋಟೋ ಅಥವಾ ವೀಡಿಯೊವನ್ನು ತ್ಯಜಿಸಿ</translation>
 <translation id="5537725057119320332">ಪಾತ್ರವರ್ಗ</translation>
+<translation id="5539070192556911367">Google ತಲುಪಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="5539221284352502426">ನೀವು ನಮೂದಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಸರ್ವರ್ ನಿಂದ ತಿರಸ್ಕರಿಸಲಾಗಿದೆ. ಸಂಭವನೀಯ ಕಾರಣಗಳು ಇವುಗಳನ್ನು ಒಳಗೊಂಡಿವೆ: ಪಾಸ್‌ವರ್ಡ್‌ ತುಂಬಾ ಚಿಕ್ಕದಾಗಿದೆ. ಪಾಸ್‌ವರ್ಡ್‌ ಸಂಖ್ಯೆಗಳು ಅಥವಾ ಸಂಕೇತಗಳನ್ನು ಒಳಗೊಂಡಿರಬೇಕು. ಹಿಂದಿನ ಪಾಸ್‌ವರ್ಡ್‌ಗಿಂತ ಈ ಪಾಸ್‌ವರ್ಡ್‌ ವಿಭಿನ್ನವಾಗಿರಬೇಕು.</translation>
 <translation id="5541694225089836610">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಕ್ರಿಯೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ</translation>
 <translation id="5542132724887566711">ಪ್ರೊಫೈಲ್</translation>
@@ -4810,6 +4822,7 @@
 <translation id="5585912436068747822">ಸ್ವರೂಪಣೆಯು ವಿಫಲವಾಗಿದೆ</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation>
+<translation id="5590418976913374224">ಸಾಧನದ ಪ್ರಾರಂಭದಲ್ಲಿ ಧ್ವನಿಯನ್ನು ಪ್ಲೇ ಮಾಡಿ</translation>
 <translation id="5592595402373377407">ಇನ್ನೂ ಸಾಕಷ್ಟು ಡೇಟಾ ಲಭ್ಯವಿಲ್ಲ.</translation>
 <translation id="5595307023264033512">ಸೈಟ್‌ಗಳು ಬಳಸಿದ ಒಟ್ಟು ಸಂಗ್ರಹಣೆ:<ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">ವಿಳಾಸ ಎಡಿಟ್ ಮಾಡಿ</translation>
@@ -4819,7 +4832,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI ಸಾಧನಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲು ಈ ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ</translation>
 <translation id="5602765853043467355">ಈ ಸಾಧನದಿಂದ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಇನ್ನಷ್ಟನ್ನು ತೆರವುಗೊಳಿಸಿ</translation>
-<translation id="5605623530403479164">ಇತರ ಹುಡುಕಾಟದ ಇಂಜಿನ್‌ಗಳು</translation>
 <translation id="5605758115928394442">ಇದು ನೀವೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನಿಮ್ಮ ಫೋನ್‌ಗೆ ಒಂದು ಅಧಿಸೂಚನೆಯನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ಈ ವಿಸ್ತರಣೆಯನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ}one{ಈ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ}other{ಈ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ}}</translation>
 <translation id="560834977503641186">Wi-Fi ಸಿಂಕ್, ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</translation>
@@ -4944,6 +4956,7 @@
 <translation id="5734362860645681824">ಸಂವಹನಗಳು</translation>
 <translation id="5734697361979786483">ಫೈಲ್‌ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="5736796278325406685">ದಯವಿಟ್ಟು ಮಾನ್ಯವಾದ ಬಳಕೆದಾರರ ಹೆಸರನ್ನು ನಮೂದಿಸಿ</translation>
+<translation id="5738093759615225354">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ನಿಮಗೆ ಈ ಪಾಸ್‌ಕೀ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> ಅವರಿಗೆ ಶಾಲೆಯ ಖಾತೆಯನ್ನು ಸೇರಿಸುವುದಕ್ಕೆ ಸಹಾಯ ಮಾಡಲು ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
 <translation id="5739235828260127894">ಪರಿಶೀಲನೆಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ. <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">ಅತ್ಯಂತ ದೊಡ್ಡದು</translation>
@@ -5105,6 +5118,7 @@
 <translation id="589541317545606110"><ph name="VISUAL_SEARCH_PROVIDER" /> ಬಳಸಿಕೊಂಡು ಪುಟವನ್ನು ಹುಡುಕಿ</translation>
 <translation id="5896436821193322561">ಅನುಮತಿಸಬೇಡಿ</translation>
 <translation id="5900186025777217044">Smart Lock ಬದಲಾಗಿದೆ</translation>
+<translation id="5900243355162006650">ಟೆಥರಿಂಗ್‌ ಕಾನ್ಫಿಗರೇಶನ್:</translation>
 <translation id="5900302528761731119">Google ಪ್ರೊಫೈಲ್ ಫೋಟೋ</translation>
 <translation id="590036993063074298">ಗುಣಮಟ್ಟದ ವಿವರಗಳನ್ನು ಪ್ರತಿಬಿಂಬಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="5901069264981746702">ನಿಮ್ಮ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಡೇಟಾವನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಸಂಗ್ರಹಣೆ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಇದು ಎಂದೂ ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ನಿಂದ ಹೊರಗೆ ಹೋಗುವುದಿಲ್ಲ. <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="LINK_END" /></translation>
@@ -5119,6 +5133,7 @@
 <translation id="5909379458939060601">ಈ ಪ್ರೊಫೈಲ್ ಮತ್ತು ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ಅಳಿಸಬೇಕೆ?</translation>
 <translation id="5910363049092958439">ಇದರಂತೆ ಇಮೇಜ್ ಉ&amp;ಳಿಸಿ...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ಸಾಧನ ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿದೆ</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">ಶಾರ್ಟ್‌ಕಟ್ ವೀಕ್ಷಕ</translation>
 <translation id="5914724413750400082">ಮಾಡ್ಯುಲಸ್ (<ph name="MODULUS_NUM_BITS" /> ಬಿಟ್‍ಗಳು):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5408,6 +5423,7 @@
 <translation id="6196640612572343990">ಥರ್ಡ್ ಪಾರ್ಟಿ ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
 <translation id="6196854373336333322">ನಿಮ್ಮ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯು ನಿಯಂತ್ರಣಕ್ಕೆ ತೆಗೆದುಕೊಂಡಿದೆ. ಅಂದರೆ, ನೀವು ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ಮಾಡುವ ಯಾವುದೇ ಕಾರ್ಯವನ್ನು ಇದು ಬದಲಾಯಿಸಬಹುದು, ಒಳನುಸುಳಬಹುದು ಅಥವಾ ಕದ್ದಾಲಿಸಬಹುದು ಎಂದರ್ಥ. ಇದು ಹೇಗೆ ಸಂಭವಿಸಿದೆ ಎಂಬುದೇ ನಿಮಗೆ ಖಚಿತವಿಲ್ಲದಿದ್ದರೆ, ನಿಮಗೆ ಬಹುಶಃ ಇದು ಬೇಕಾಗಿಲ್ಲ.</translation>
 <translation id="6197128521826316819">ಈ ಪುಟಕ್ಕಾಗಿ QR ಕೋಡ್ ರಚಿಸಿ</translation>
+<translation id="6197223946499512637">ಈ ಪಾಸ್‌ಕೀಯನ್ನು ಈ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ Windows Hello ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ. ಇದನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲಾಗಿಲ್ಲ.</translation>
 <translation id="6198252989419008588">PIN ಬದಲಾಯಿಸು</translation>
 <translation id="6200047250927636406">ಫೈಲ್ ಅನ್ನು ತ್ಯಜಿಸಿ</translation>
 <translation id="6200151268994853226">ವಿಸ್ತರಣೆಯನ್ನು ನಿರ್ವಹಿಸಿ</translation>
@@ -5705,6 +5721,7 @@
 <translation id="6482559668224714696">ಪೂರ್ಣಪರದೆ ವರ್ಧಕ</translation>
 <translation id="6483485061007832714">ಡೌನ್‌ಲೋಡ್ ತೆರೆಯಿರಿ</translation>
 <translation id="6483805311199035658"><ph name="FILE" /> ತೆರೆಯುತ್ತಿದೆ...</translation>
+<translation id="6486301003991593638">ಪಾಸ್‌ಕೀಗಳನ್ನು ನಿರ್ವಹಿಸಲು, Windows ನ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಬಳಸಿ</translation>
 <translation id="6488384360522318064">ಭಾಷೆ ಆಯ್ಕೆ ಮಾಡಿ</translation>
 <translation id="648927581764831596">ಯಾವುದೂ ಲಭ್ಯವಿಲ್ಲ</translation>
 <translation id="6490471652906364588">USB-C ಸಾಧನ (ಬಲ ಪೋರ್ಟ್)</translation>
@@ -6294,6 +6311,7 @@
 <translation id="7029307918966275733">Crostini ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿಲ್ಲ. ಕ್ರೆಡಿಟ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಲು Crostini ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ.</translation>
 <translation id="7029809446516969842">ಪಾಸ್‌ವರ್ಡ್‌ಗಳು</translation>
 <translation id="7030304022046916278">URL ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು, ಅವುಗಳನ್ನು ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್‌ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation>
+<translation id="7030695672997239647">ಟ್ಯಾಬ್ ಮೇಲೆ ಬಲ-ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು "ಗುಂಪಿಗೆ ಟ್ಯಾಬ್ ಸೇರಿಸಿ" ಆಯ್ಕೆಮಾಡಿ ನಂತರ "ಹೊಸ ಗುಂಪು" ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - ಸೀರಿಯಲ್ ಪೋರ್ಟ್ ಸಂಪರ್ಕಗೊಂಡಿದೆ</translation>
 <translation id="7033616203784997570">ಇನ್‌ಪುಟ್ ಗರಿಷ್ಠ 62 ಅಕ್ಷರಗಳಾಗಿರಬೇಕು</translation>
 <translation id="7034692021407794547">ಬಿಲ್ಲಿಂಗ್ ನಿರ್ವಹಣಾ ಸವಲತ್ತುಗಳನ್ನು ಹೊಂದಿರುವ ನಿರ್ವಾಹಕರು ಮೊದಲು ನಿರ್ವಹಣೆ ಕನ್ಸೋಲ್‌ನಲ್ಲಿರುವ Google Meet ಹಾರ್ಡ್‌ವೇರ್ ವಿಭಾಗದಲ್ಲಿನ Google Meet ಹಾರ್ಡ್‌ವೇರ್ ಸೇವಾ ನಿಯಮಗಳಿಗೆ ಸಮ್ಮತಿಸಬೇಕು.</translation>
@@ -6362,6 +6380,7 @@
 <translation id="7102687220333134671">ಸ್ವಯಂಚಾಲಿತ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಆನ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="7102832101143475489">ವಿನಂತಿಯ ಅವಧಿ ಮೀರಿದೆ</translation>
 <translation id="710640343305609397">ನೆಟ್‌ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
+<translation id="7107609441453408294">ಎಲ್ಲಾ ಸ್ಪೀಕರ್‌ಗಳ ಮೂಲಕ ಒಂದೇ ಆಡಿಯೊವನ್ನು ಪ್ಲೇ ಮಾಡಿ</translation>
 <translation id="7108338896283013870">ಮರೆಮಾಡಿ</translation>
 <translation id="7108668606237948702">ನಮೂದಿಸಿ</translation>
 <translation id="7108933416628942903">ಈಗ ಲಾಕ್ ಮಾಡಿ</translation>
@@ -6592,6 +6611,7 @@
 <translation id="7364745943115323529">ಬಿತ್ತರಿಸು...</translation>
 <translation id="7364796246159120393">ಫೈಲ್ ಆಯ್ಕೆ ಮಾಡಿ</translation>
 <translation id="7365076891350562061">ಮಾನಿಟರ್ ಗಾತ್ರ</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> - ಪಿನ್‌ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="7366316827772164604">ಸಮೀಪದ ಸಾಧನಗಳಿಗಾಗಿ ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="7366415735885268578">ಸೈಟ್ ಸೇರಿಸಿ</translation>
 <translation id="7366909168761621528">ಬ್ರೌಸಿಂಗ್ ಡೇಟಾ</translation>
@@ -7390,6 +7410,7 @@
 <translation id="8101987792947961127">ಮುಂದಿನ ರೀಬೂಟ್‌ನಲ್ಲಿ ಪವರ್‌ವಾಷ್ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="81020759409809034">ಸ್ಥಳೀಯ ಸ್ಥಳ</translation>
 <translation id="8102139037507939978">system_logs.txt ನಿಂದ ವೈಯಕ್ತಿಕವಾಗಿ ಗುರುತಿಸಬಲ್ಲ ಮಾಹಿತಿಯನ್ನು ತೆಗೆದುಹಾಕಿ.</translation>
+<translation id="810362914482827094">ಪಾಸ್‌ಕೀಗಳನ್ನು ಹುಡುಕಿ</translation>
 <translation id="8104088837833760645">eSIM ಪ್ರೊಫೈಲ್ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ</translation>
 <translation id="8105368624971345109">ಆಫ್ ಮಾಡು</translation>
 <translation id="8107015733319732394">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ನಲ್ಲಿ Google Play Store ಇನ್‌ಸ್ಟಾಲ್ ಆಗುತ್ತಿದೆ. ಇದು ಕೆಲವು ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು.</translation>
@@ -7837,6 +7858,7 @@
 <translation id="8557022314818157177">ನಿಮ್ಮ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್ನು ಕ್ಯಾಪ್ಚರ್ ಮಾಡುವವರೆಗೆ ಸುರಕ್ಷತಾ ಕೀಯನ್ನು ಸ್ಪರ್ಶಿಸುತ್ತಾ ಇರಿ.</translation>
 <translation id="8557180006508471423">ನಿಮ್ಮ Mac ನಲ್ಲಿ ಸ್ಥಾನ ಸೇವೆಗಳು ಎಂಬಲ್ಲಿರುವ "Google Chrome" ಅನ್ನು ಆನ್ ಮಾಡಿ</translation>
 <translation id="8557856025359704738">ಮುಂದಿನ ಡೌನ್‌ಲೋಡ್ ದಿನಾಂಕ <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">ಪಾಸ್‌ಕೀಗಳು</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{&amp;ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲವನ್ನೂ ತೆರೆಯಿರಿ}=1{&amp;ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ}one{&amp;ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲಾ ({COUNT}) ಗಳನ್ನು ತೆರೆಯಿರಿ}other{&amp;ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲಾ ({COUNT}) ಗಳನ್ನು ತೆರೆಯಿರಿ}}</translation>
 <translation id="8561206103590473338">ಆನೆ</translation>
 <translation id="8561565784790166472">ಎಚ್ಚರಿಕೆಯಿಂದ ಮುಂದುವರೆಯಿರಿ</translation>
@@ -7963,6 +7985,7 @@
 <translation id="8677212948402625567">ಎಲ್ಲವನ್ನು ಕುಗ್ಗಿಸು...</translation>
 <translation id="867767487203716855">ಮುಂದಿನ ಅಪ್‌ಡೇಟ್</translation>
 <translation id="8677859815076891398">ಯಾವುದೇ ಆಲ್ಬಮ್‌ಗಳಿಲ್ಲ. <ph name="LINK_BEGIN" />Google Photos<ph name="LINK_END" /> ನಲ್ಲಿ ಆಲ್ಬಮ್ ಅನ್ನು ರಚಿಸಿ.</translation>
+<translation id="8678378565142776698">ಮರುಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಸ್ವಯಂಚಾಲಿತ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಪಡೆಯಿರಿ</translation>
 <translation id="8678538439778360739"><ph name="TIME" /> ರಂದು ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್‌ಫ್ರೇಸ್ ಬಳಸಿಕೊಂಡು ಡೇಟಾವನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ. ಇದು Google Pay ಗೆ ಸಂಬಂಧಿಸಿದ ಪಾವತಿ ವಿಧಾನಗಳು ಮತ್ತು ವಿಳಾಸಗಳನ್ನು ಒಳಗೊಂಡಿರುವುದಿಲ್ಲ.</translation>
 <translation id="8678582529642151449">ಟ್ಯಾಬ್‌ಗಳು ಕುಗ್ಗುವುದಿಲ್ಲ</translation>
 <translation id="8678933587484842200">ಈ ಅಪ್ಲಿಕೇಶನ್‌ ಅನ್ನು ನೀವು ಹೇಗೆ ಪ್ರಾರಂಭಿಸಲು ಬಯಸುತ್ತೀರಿ?</translation>
@@ -8210,6 +8233,7 @@
 <translation id="8910987510378294980">ಸಾಧನದ ಪಟ್ಟಿಯನ್ನು ಮರೆಮಾಡಿ</translation>
 <translation id="8912362522468806198">Google ಖಾತೆ</translation>
 <translation id="8912810933860534797">ಸ್ವಯಂ ಸ್ಕ್ಯಾನ್ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
+<translation id="8915307125957890427">ಟ್ಯಾಬ್ ಮೇಲೆ ಬಲ-ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು "ಗುಂಪಿಗೆ ಟ್ಯಾಬ್ ಸೇರಿಸಿ" ಆಯ್ಕೆಮಾಡಿ ನಂತರ "ಹೊಸ ಗುಂಪು" ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="8915370057835397490">ಸಲಹೆಯನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation>
 <translation id="8916476537757519021">ಅದೃಶ್ಯ ಉಪಫ್ರೇಮ್: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" />ನ <ph name="DEVICE_TYPE" /></translation>
@@ -8284,6 +8308,7 @@
 <translation id="8986362086234534611">ಮರೆತುಹೋಗು</translation>
 <translation id="8986494364107987395">ಬಳಕೆಯ ಅಂಕಿಅಂಶಗಳನ್ನು ಮತ್ತು ಕ್ರಾಶ್ ವರದಿಗಳನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರವಾನಿಸು</translation>
 <translation id="8987927404178983737">ತಿಂಗಳು</translation>
+<translation id="8989359959810288806">ಟೆಥರಿಂಗ್ ಸ್ಥಿತಿಯನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಿ</translation>
 <translation id="8991520179165052608">ನಿಮ್ಮ ಮೈಕ್ರೊಫೋನ್ ಅನ್ನು ಸೈಟ್‌ ಬಳಸಿಕೊಳ್ಳಬಹುದು</translation>
 <translation id="899384117894244799">ನಿರ್ಬಂಧಿತ ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="899403249577094719">Netscape ಪ್ರಮಾಣಪತ್ರ ಆಧಾರ URL</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 3ce247a..f9fc564 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">마이크와 카메라 사용</translation>
 <translation id="1005333234656240382">ADB 디버깅을 사용 설정하시겠습니까?</translation>
 <translation id="1006873397406093306">이 확장 프로그램은 사이트에서 내 데이터를 읽고 변경할 수 있습니다. 사용자는 확장 프로그램에서 액세스할 수 있는 사이트를 제어할 수 있습니다.</translation>
+<translation id="1007057452468855774">Google Play 스토어 사용 설정</translation>
 <translation id="1008186147501209563">북마크 내보내기</translation>
 <translation id="1008557486741366299">나중에 하기</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" /> 위치</translation>
 <translation id="1009663062402466586">게임 컨트롤 사용 가능</translation>
 <translation id="1010498023906173788">이 탭은 직렬 포트에 연결되어 있습니다.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{응답 없는 페이지}other{응답 없는 페이지}}</translation>
+<translation id="1011003645819296594">저장된 기기</translation>
 <translation id="1011355516189274711">텍스트 음성 변환 볼륨</translation>
 <translation id="1012794136286421601">문서, 스프레드시트, 프레젠테이션, 드로잉 파일을 동기화하는 중입니다. Google Drive 앱을 열어 온라인이든 오프라인이든 관계없이 파일에 액세스할 수 있습니다.</translation>
 <translation id="1012876632442809908">USB-C 기기(전면 포트)</translation>
@@ -494,6 +496,7 @@
 <translation id="1470350905258700113">이 기기 사용</translation>
 <translation id="1470946456740188591">캐럿 브라우징을 사용 설정하거나 중지하려면 Ctrl+Search+7 단축키를 사용합니다.</translation>
 <translation id="1472675084647422956">자세히 보기</translation>
+<translation id="1473223074251193484">테더링 구성 설정</translation>
 <translation id="1474785664565228650">마이크 설정을 변경하려면 Parallels Desktop을 다시 실행해야 합니다. 계속하려면 Parallels Desktop을 다시 실행하세요.</translation>
 <translation id="1474893630593443211">표시되는 광고를 더 세부적으로 관리</translation>
 <translation id="1475502736924165259">모든 기타 카테고리에 맞지 않는 인증서가 등록되어 있습니다.</translation>
@@ -1125,6 +1128,7 @@
 <translation id="2044014337866019681">세션을 잠금 해제하려면 <ph name="ACCOUNT" /> 계정을 인증하세요.</translation>
 <translation id="204497730941176055">Microsoft Certificate Template Name</translation>
 <translation id="2045117674524495717">단축키 도움말</translation>
+<translation id="2045211794962848221">이 메시지가 다시 표시되지 않습니다.</translation>
 <translation id="2045969484888636535">쿠키 계속 차단</translation>
 <translation id="204622017488417136">기기가 이전에 설치된 버전의 Chrome으로 돌아갑니다. 사용자 계정과 로컬 데이터가 모두 삭제됩니다. 이 작업은 취소할 수 없습니다.</translation>
 <translation id="2046702855113914483">라면</translation>
@@ -3813,6 +3817,7 @@
 <translation id="4594577641390224176">시스템의 정보 페이지를 찾는다면 다음으로 이동하세요.</translation>
 <translation id="4595560905247879544">앱 및 확장 프로그램은 관리자(<ph name="CUSTODIAN_NAME" />)만 수정할 수 있습니다.</translation>
 <translation id="4596295440756783523">다음 서버를 식별하는 인증서가 등록되어 있습니다.</translation>
+<translation id="4598345735110653698">패스키 관리</translation>
 <translation id="4598556348158889687">저장용량 관리</translation>
 <translation id="4598776695426288251">여러 기기를 통해 Wi-Fi 사용 가능</translation>
 <translation id="4601426376352205922">읽지 않은 상태로 표시</translation>
@@ -4038,6 +4043,7 @@
 <translation id="4823894915586516138">이 PIN 또는 비밀번호는 휴대전화에서 액세스하는 모든 정보를 포함하여 이 <ph name="DEVICE_TYPE" />의 데이터를 보호합니다</translation>
 <translation id="4824037980212326045">Linux 백업 및 복원</translation>
 <translation id="4824958205181053313">동기화를 취소하시겠습니까?</translation>
+<translation id="4825532258163983651">패스키를 삭제할 수 없음</translation>
 <translation id="4827675678516992122">연결할 수 없음</translation>
 <translation id="4827784381479890589">Chrome 브라우저의 향상된 맞춤법 검사(텍스트는 맞춤법 추천을 위해 Google에 전송됨)</translation>
 <translation id="4827904420700932487">이 이미지의 QR 코드 생성</translation>
@@ -4300,6 +4306,7 @@
 <translation id="5087249366037322692">타사 프로그램에서 추가</translation>
 <translation id="5087580092889165836">카드 추가</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512(RSA 암호화 사용)</translation>
+<translation id="5089763948477033443">측면 패널 크기 조절 핸들</translation>
 <translation id="5090637338841444533">카메라 위치 추적이 허용되지 않음</translation>
 <translation id="5093569275467863761">시크릿 모드 뒤로-앞으로 캐시 서브프레임: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">파일 앱 또는 다른 앱에서 이 앱이 지원하는 파일을 열고 수정할 수 있습니다. 기본적으로 이 앱에서 열 파일을 관리하려면 <ph name="BEGIN_LINK" />기기에서 기본 앱을 설정하는 방법을 알아보세요<ph name="END_LINK" />.</translation>
@@ -4465,6 +4472,7 @@
 <translation id="5258992782919386492">이 기기에 설치</translation>
 <translation id="5260334392110301220">스마트 인용</translation>
 <translation id="5260508466980570042">이메일 또는 비밀번호를 확인할 수 없습니다. 다시 시도해 주세요.</translation>
+<translation id="5260958083445173099">가능한 경우 웹사이트 콘텐츠가 기본 언어로 표시됩니다.</translation>
 <translation id="5261683757250193089">웹 스토어에서 열기</translation>
 <translation id="5262178194499261222">비밀번호 삭제</translation>
 <translation id="5262784498883614021">자동으로 네트워크에 연결</translation>
@@ -4505,6 +4513,7 @@
 <translation id="5294097441441645251">소문자 또는 밑줄로 시작해야 합니다.</translation>
 <translation id="5294618183559481278"><ph name="DEVICE_TYPE" />에 내장된 센서를 사용하여 기기 앞에 다른 사람이 있는지 감지합니다. 모든 데이터는 기기에서 즉시 처리된 후 삭제됩니다. 센서 데이터는 Google로 전송되지 않습니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">음성 피드백이 제공되어 화면을 보지 않고도 기기를 사용할 수 있습니다. 연결된 기기로 점자 피드백을 사용할 수 있습니다.</translation>
+<translation id="5297005732522718715">테더링 구성 새로고침</translation>
 <translation id="5297082477358294722">비밀번호가 저장되었습니다. <ph name="SAVED_PASSWORDS_STORE" />에서 저장된 비밀번호를 보고 관리하세요.</translation>
 <translation id="5297946558563358707">다른 사람이 내 화면을 보면 화면 오른쪽 하단에 개인 정보 보호 눈 모양 아이콘이 표시됩니다.</translation>
 <translation id="5298219193514155779">테마 제작자</translation>
@@ -4675,6 +4684,7 @@
 <translation id="5466374726908360271">'<ph name="SEARCH_TERMS" />' 붙여넣기 및 검색(&amp;S)</translation>
 <translation id="5467207440419968613"><ph name="PERMISSION_1" /> 및 <ph name="PERMISSION_2" /> 차단함</translation>
 <translation id="5468173180030470402">파일 공유 찾는 중</translation>
+<translation id="5468330507528805311">테더링 상태:</translation>
 <translation id="5468881191994555667">파일 선택</translation>
 <translation id="5469852975082458401">텍스트 커서로 페이지를 탐색할 수 있습니다. 사용 중지하려면 F7을 누르세요.</translation>
 <translation id="5470735824776589490">기기를 파워워시로 재설정하기 전에 다시 시작해야 합니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
@@ -4827,7 +4837,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI 기기 연결이 허용되지 않음</translation>
 <translation id="5602765853043467355">기기에서 북마크, 방문 기록, 비밀번호 등을 삭제합니다.</translation>
-<translation id="5605623530403479164">기타 검색엔진</translation>
 <translation id="5605758115928394442">휴대전화로 본인 인증을 위한 알림이 전송되었습니다.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{확장 프로그램이 차단됨}other{확장 프로그램이 차단됨}}</translation>
 <translation id="560834977503641186">Wi-Fi 동기화, 자세히 알아보기</translation>
@@ -4951,6 +4960,7 @@
 <translation id="5734362860645681824">커뮤니케이션</translation>
 <translation id="5734697361979786483">파일 공유 추가</translation>
 <translation id="5736796278325406685">올바른 사용자 이름을 입력하세요.</translation>
+<translation id="5738093759615225354">컴퓨터에 로그인하려면 이 패스키가 필요합니다.</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" />님이 학교 계정을 추가할 수 있도록 로그인하세요.</translation>
 <translation id="5739235828260127894">확인을 기다리는 중입니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">아주 크게</translation>
@@ -5112,6 +5122,7 @@
 <translation id="589541317545606110"><ph name="VISUAL_SEARCH_PROVIDER" />로 페이지 검색</translation>
 <translation id="5896436821193322561">허용 안함</translation>
 <translation id="5900186025777217044">Smart Lock 변경됨</translation>
+<translation id="5900243355162006650">테더링 구성:</translation>
 <translation id="5900302528761731119">Google 프로필 사진</translation>
 <translation id="590036993063074298">미러링 품질 세부정보</translation>
 <translation id="5901069264981746702">지문 데이터는 안전하게 저장되며 절대 <ph name="DEVICE_TYPE" /> 외부로 유출되지 않습니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
@@ -5126,6 +5137,7 @@
 <translation id="5909379458939060601">이 프로필과 인터넷 사용 기록을 삭제하시겠습니까?</translation>
 <translation id="5910363049092958439">이미지를 다른 이름으로 저장(&amp;V)...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> 기기가 오프라인 상태임</translation>
+<translation id="5911030830365207728">Google 번역</translation>
 <translation id="5911533659001334206">바로가기 뷰어</translation>
 <translation id="5914724413750400082">모듈러스(<ph name="MODULUS_NUM_BITS" />비트):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5415,6 +5427,7 @@
 <translation id="6196640612572343990">타사 쿠키 차단</translation>
 <translation id="6196854373336333322">'<ph name="EXTENSION_NAME" />' 확장 프로그램이 프록시 설정을 제어할 수 있게 되었으며, 따라서 사용자가 온라인에서 수행하는 모든 작업을 변경, 중단하거나 엿볼 수 있게 되었습니다. 이와 같이 변경된 이유를 잘 모른다면 이 설정을 사용하지 않는 것이 좋습니다.</translation>
 <translation id="6197128521826316819">이 페이지의 QR 코드 생성</translation>
+<translation id="6197223946499512637">이 패스키는 이 컴퓨터의 Windows Hello에 저장됩니다. Google 계정에는 저장되지 않습니다.</translation>
 <translation id="6198252989419008588">PIN 변경</translation>
 <translation id="6200047250927636406">파일 삭제</translation>
 <translation id="6200151268994853226">확장 프로그램 관리</translation>
@@ -5712,6 +5725,7 @@
 <translation id="6482559668224714696">전체 화면 돋보기</translation>
 <translation id="6483485061007832714">다운로드된 파일 열기</translation>
 <translation id="6483805311199035658"><ph name="FILE" /> 파일 여는 중...</translation>
+<translation id="6486301003991593638">패스키를 관리하려면 최신 버전의 Windows를 사용하세요.</translation>
 <translation id="6488384360522318064">언어 선택</translation>
 <translation id="648927581764831596">사용할 수 없음</translation>
 <translation id="6490471652906364588">USB-C 기기(오른쪽 포트)</translation>
@@ -6298,6 +6312,7 @@
 <translation id="7029307918966275733">Crostini가 설치되지 않았습니다. 크레딧을 확인하려면 Crostini를 설치하세요.</translation>
 <translation id="7029809446516969842">비밀번호</translation>
 <translation id="7030304022046916278">세이프 브라우징 서비스에 URL을 전송하여 확인하도록 합니다.</translation>
+<translation id="7030695672997239647">탭을 마우스 오른쪽 버튼으로 클릭하고 '그룹에 탭 추가'를 선택한 다음 '새 그룹'을 선택합니다.</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - 직렬 포트 연결됨</translation>
 <translation id="7033616203784997570">최대 62자(영문 기준)까지 입력할 수 있습니다.</translation>
 <translation id="7034692021407794547">먼저 결제 관리 권한을 보유한 관리자가 관리 콘솔의 Google Meet 하드웨어 섹션에서 Google Meet 하드웨어 서비스 약관에 동의해야 합니다.</translation>
@@ -7401,6 +7416,7 @@
 <translation id="8101987792947961127">다음에 재부팅할 때 Powerwash 필요</translation>
 <translation id="81020759409809034">현지 위치</translation>
 <translation id="8102139037507939978">system_logs.txt에서 개인 식별 정보를 삭제합니다.</translation>
+<translation id="810362914482827094">패스키 검색</translation>
 <translation id="8104088837833760645">eSIM 프로필 다운로드</translation>
 <translation id="8105368624971345109">사용 중지</translation>
 <translation id="8107015733319732394"><ph name="DEVICE_TYPE" />에 Google Play 스토어를 설치합니다. 설치하는 데 몇 분 정도 걸릴 수 있습니다.</translation>
@@ -7848,6 +7864,7 @@
 <translation id="8557022314818157177">지문이 인식될 때까지 보안 키를 계속 터치하세요.</translation>
 <translation id="8557180006508471423">Mac의 Location Services(위치 서비스)에서 'Chrome'을 사용 설정하세요</translation>
 <translation id="8557856025359704738">다음 다운로드 날짜는 <ph name="NEXT_DATE_DOWNLOAD" />입니다.</translation>
+<translation id="8559858985063901027">패스키</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{새 창에서 모두 열기(N)}=1{새 창에서 열기(N)}other{새 창에서 {COUNT}개 모두 열기(N)}}</translation>
 <translation id="8561206103590473338">코끼리</translation>
 <translation id="8561565784790166472">주의해서 진행하시기 바랍니다</translation>
@@ -7974,6 +7991,7 @@
 <translation id="8677212948402625567">모두 접기...</translation>
 <translation id="867767487203716855">다음 업데이트</translation>
 <translation id="8677859815076891398">앨범이 없습니다. <ph name="LINK_BEGIN" />Google 포토<ph name="LINK_END" />에서 앨범을 만드세요.</translation>
+<translation id="8678378565142776698">다시 시작하고 자동 업데이트 받기</translation>
 <translation id="8678538439778360739"><ph name="TIME" />에 데이터가 동기화 암호로 암호화되었습니다. Google Pay의 결제 수단 및 주소는 암호화되지 않습니다.</translation>
 <translation id="8678582529642151449">탭이 줄어들지 않음</translation>
 <translation id="8678933587484842200">이 애플리케이션을 실행할 방법을 선택하세요.</translation>
@@ -8220,6 +8238,7 @@
 <translation id="8910987510378294980">기기 목록 숨기기</translation>
 <translation id="8912362522468806198">Google 계정</translation>
 <translation id="8912810933860534797">자동 스캔 사용</translation>
+<translation id="8915307125957890427">탭을 마우스 오른쪽 버튼으로 클릭하고 '그룹에 탭 추가'를 선택한 다음 '새 그룹'을 선택합니다.</translation>
 <translation id="8915370057835397490">추천 단어 로드 중...</translation>
 <translation id="8916476537757519021">시크릿 모드 서브프레임: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" />님의 <ph name="DEVICE_TYPE" /></translation>
@@ -8294,6 +8313,7 @@
 <translation id="8986362086234534611">저장 안함</translation>
 <translation id="8986494364107987395">사용 통계 및 비정상 종료 보고서를 Google에 자동으로 전송합니다.</translation>
 <translation id="8987927404178983737">월</translation>
+<translation id="8989359959810288806">테더링 상태 새로고침</translation>
 <translation id="8991520179165052608">사이트에서 마이크를 사용할 수 있습니다.</translation>
 <translation id="899384117894244799">제한된 사용자 삭제</translation>
 <translation id="899403249577094719">Netscape Certificate Base URL</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index 56621d8..0c01396 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -906,6 +906,7 @@
 <translation id="1829129547161959350">Пингвин</translation>
 <translation id="1829192082282182671">Ки&amp;чирейтүү</translation>
 <translation id="1830550083491357902">Кирген жоксуз</translation>
+<translation id="1831848493690504725">Туташкан тармак аркылуу Google'га кире албай жатабыз. Башка тармакты тандап, тармактын же проксинин параметрлерин (эгер проксини колдонуп жатсаңыз) текшерип көрүңүз.</translation>
 <translation id="1832459821645506983">Макул</translation>
 <translation id="1832511806131704864">Телефонду өзгөртүү жаңырды</translation>
 <translation id="1832848789136765277">Шайкештирилген маалыматыңызга каалаган убакта кирүү үчүн бул сиз экениңизди ырастаңыз</translation>
@@ -4680,6 +4681,7 @@
 <translation id="5470735824776589490">Түзмөктү "жууп салып" баштапкы абалга келтирээрден мурун, аны өчүрүп күйгүзүү керек. <ph name="LINK_BEGIN" />Кеңири маалымат<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Салам! Мен сизге текстти окуп беремин.</translation>
 <translation id="5472627187093107397">Бул сайттагы сырсөздөрдү сактоо</translation>
+<translation id="5473062644742711742">Chrome Интернет дүкөнүндө көбүрөөк атайын мүмкүнчүлүктөр куралдарын таап алыңыз</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">Улантуу менен бул түзмөккө Google'дан, байланыш операторуңуздан жана түзмөгүңүздүн өндүрүүчүсүнөн жаңыртууларды жана колдонмолорду автоматтык түрдө жүктөп алып, орнотууга мүмкүнчүлүк береcиз (мобилдик Интернет аркылуу дагы). Бул колдонмолордун айрымдары колдонмо аркылуу сатып алууну сунушташы мүмкүн.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN код кеминде бир символдон турушу керек}other{PIN код кеминде # символдон турушу керек}}</translation>
@@ -4753,6 +4755,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> бул аракеттерди аткарат</translation>
 <translation id="5534304873398226603">Сүрөттү же видеону жарактан чыгаруу</translation>
 <translation id="5537725057119320332">Cast</translation>
+<translation id="5539070192556911367">Google'га туташпай жатат</translation>
 <translation id="5539221284352502426">Киргизген сырсөзүңүздү сервер кабыл алган жок. Сырсөз өтө кыска болушу мүмкүн. Ал сандардан жана символдордон туруп, мурунку сырсөздөрдөн башкача болушу керек.</translation>
 <translation id="5541694225089836610">Аракетти администраторуңуз өчүрүп койгон</translation>
 <translation id="5542132724887566711">Профиль</translation>
@@ -4816,6 +4819,7 @@
 <translation id="5585912436068747822">Форматталбай койду</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Колдонмолор жүктөлүүдө…</translation>
+<translation id="5590418976913374224">Түзмөк күйгүзүлгөндө сигналды ойнотуу</translation>
 <translation id="5592595402373377407">Жеткиликтүү дайындар жок.</translation>
 <translation id="5595307023264033512">Сайттар ээлеген жалпы орун: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Даректи өзгөртүү</translation>
@@ -4825,7 +4829,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI түзмөктөрүнө туташа албайт</translation>
 <translation id="5602765853043467355">Бул түзмөктөгү кыстармаларды, таржымалды, сырсөздөрдү жана башкаларды тазалоо</translation>
-<translation id="5605623530403479164">Башка издөө каражаттары</translation>
 <translation id="5605758115928394442">Сиз экениңизди ырастоо үчүн телефонуңузга билдирме жөнөтүлдү.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Бул кеңейтүү бөгөттөлгөн}other{Бул кеңейтүүлөр бөгөттөлгөн}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync тууралуу кеңири маалымат</translation>
@@ -5124,6 +5127,7 @@
 <translation id="5909379458939060601">Бул профилди жана серептөө дайындарын өчүрөсүзбү?</translation>
 <translation id="5910363049092958439">Сүрөттү төмөнкүдөй сак&amp;тоо…</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> оффлайн режиминде</translation>
+<translation id="5911030830365207728">Google Котормо</translation>
 <translation id="5911533659001334206">Тез баскычтарды карап чыгуу</translation>
 <translation id="5914724413750400082">Модуль (<ph name="MODULUS_NUM_BITS" /> бит):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6364,6 +6368,7 @@
 <translation id="7102687220333134671">Автоматтык жаңыртуулар күйгүзүлгөн</translation>
 <translation id="7102832101143475489">Сурамдын күтүү мөөнөтү аяктады</translation>
 <translation id="710640343305609397">Тармактын жөндөөлөрүн ачуу</translation>
+<translation id="7107609441453408294">Бир эле аудиону бардык динамиктерде ойнотуу</translation>
 <translation id="7108338896283013870">Жашыруу</translation>
 <translation id="7108668606237948702">enter</translation>
 <translation id="7108933416628942903">Азыр кулпулоо</translation>
@@ -6594,6 +6599,7 @@
 <translation id="7364745943115323529">Тышкы экранга чыгаруу…</translation>
 <translation id="7364796246159120393">Файл тандоо</translation>
 <translation id="7365076891350562061">Монитордун өлчөмү</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> - Кадалды</translation>
 <translation id="7366316827772164604">Жакын жердеги түзмөктөр изделүүдө...</translation>
 <translation id="7366415735885268578">Сайт кошуу</translation>
 <translation id="7366909168761621528">Серептөө дайындары</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index 4009e60..99c057fa 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -907,6 +907,7 @@
 <translation id="1829129547161959350">ນົກເພັນກວິນ</translation>
 <translation id="1829192082282182671">ຊູມອອກ</translation>
 <translation id="1830550083491357902">ບໍ່ລົງຊື່ເຂົ້າ​ໃຊ້</translation>
+<translation id="1831848493690504725">ພວກເຮົາບໍ່ສາມາດຕິດຕໍ່ Google ຜ່ານເຄືອຂ່າຍທີ່ມີການເຊື່ອມຕໍ່ໄດ້. ກະລຸນາລອງເຄືອຂ່າຍອື່ນ ຫຼື ກວດເບິ່ງການຕັ້ງຄ່າເຄືອຂ່າຍຂອງທ່ານ ຫຼື ການຕັ້ງຄ່າພຣັອກຊີ (ຖ້າທ່ານກໍາລັງໃຊ້ພຣັອກຊີ).</translation>
 <translation id="1832459821645506983">ແມ່ນແລ້ວ, ຂ້ອຍເຂົ້າຮ່ວມ</translation>
 <translation id="1832511806131704864">ການ​ປ່ຽນ​ແປງ​ໂທ​ລະ​ສັບ​ອັບ​ເດດ​ແລ້ວ</translation>
 <translation id="1832848789136765277">ເພື່ອກວດສອບວ່າທ່ານຈະສາມາດເຂົ້າເຖິງການຊິ້ງຂໍ້ມູນຂອງທ່ານໄດ້ສະເໝີ, ກະລຸນາຢັ້ງຢືນວ່າແມ່ນທ່ານແທ້ກ່ອນ</translation>
@@ -2211,6 +2212,7 @@
 <translation id="3021065318976393105">ໃນເວລາໃຊ້ແບັດເຕີຣີ</translation>
 <translation id="3021066826692793094">ແມງກະເບື້ອ</translation>
 <translation id="3021678814754966447">ເບິ່ງແຫຼ່ງທີ່ມາຂອບ</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> ຈະຖືກລຶບອອກຈາກ Chromebook ນີ້ ແລະ ຈະບໍ່ຖືກບັນທຶກໄວ້ໃນ <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">ບໍ່ເຂົ້າໃຈສິ່ງນັ້ນ.</translation>
 <translation id="3023464535986383522">ເລືອກເພື່ອເວົ້າ</translation>
 <translation id="3024374909719388945">ໃຊ້​ໂມງ​ແບບ 24 ຊົ່ວ​ໂມງ</translation>
@@ -3750,6 +3752,7 @@
 <translation id="4535127706710932914">ໂປຣໄຟລ໌ມາດຕະຖານ</translation>
 <translation id="4535767533210902251">ເຊັນເຊີລາຍນິ້ວມືແມ່ນປຸ່ມຂວາມືເທິງສຸດໃນແປ້ນພິມຂອງທ່ານ. ໃຊ້ນິ້ວມືແຕະມັນເບົາໆ.</translation>
 <translation id="4536140153723794651">ເວັບໄຊທີ່ສາມາດໃຊ້ຄຸກກີ້ໄດ້ທຸກເທື່ອ</translation>
+<translation id="4536769240747010177">ຄວາມສາມາດໃນການປ່ອຍສັນຍານ:</translation>
 <translation id="4538417792467843292">ລຶບຄໍາເວົ້າ</translation>
 <translation id="4538792345715658285">(ຕິດຕັ້ງຕາມນະ​ໂຍ​ບາຍ​ຂອງ​ວິ​ສາ​ຫະ​ກິດແລ້ວ​)</translation>
 <translation id="4541123282641193691">ບໍ່ສາມາດພິສູດຢືນຢັນບັນຊີຂອງທ່ານໄດ້. ກະລຸນາລອງອີກຄັ້ງ ຫຼື ເລີ່ມປິດເປີດ Chromebook ຂອງທ່ານຄືນໃໝ່.</translation>
@@ -3777,6 +3780,7 @@
 <translation id="4561893854334016293">ການອະນຸຍາດທີ່ປ່ຽນແປງເມື່ອບໍ່ດົນມານີ້</translation>
 <translation id="4562155214028662640">ເພີ່ມລາຍນິ້ວມື</translation>
 <translation id="4563210852471260509">ພາສາປ້ອນເຂົ້າເບື້ອງຕົ້ນແມ່ນພາສາຈີນ</translation>
+<translation id="4563382028841851106">ລຶບອອກຈາກບັນຊີ</translation>
 <translation id="4563880231729913339">ນິ້ວ 3</translation>
 <translation id="4564245002465020751">ກຳລັງສຳເລັດການຕັ້ງຄ່າຢູ່ໂທລະສັບຂອງທ່ານ</translation>
 <translation id="4565377596337484307">ເຊື່ອງລະຫັດຜ່ານ</translation>
@@ -4685,6 +4689,7 @@
 <translation id="5470735824776589490">ຈໍາເປັນຕ້ອງຣິສະຕາດກ່ອນທີ່ຈະສາມາດຣີເຊັດອຸປະກອນຂອງທ່ານດ້ວຍ Powerwash ໄດ້. <ph name="LINK_BEGIN" />ສຶກສາເພີ່ມເຕີມ<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">ສະບາຍດີ! ຂ້ອຍແມ່ນສຽງການປ່ຽນຂໍ້ຄວາມເປັນສຽງເວົ້າຂອງເຈົ້າ.</translation>
 <translation id="5472627187093107397">ບັນທຶກລະຫັດຜ່ານໄວ້ສຳລັບເວັບໄຊນີ້</translation>
+<translation id="5473062644742711742">ຊອກຫາເຄື່ອງມືການຊ່ວຍເຂົ້າເຖິງເພີ່ມເຕີມໃນ Chrome Web Store</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">ໂດຍການສືບຕໍ່, ແມ່ນຖືວ່າທ່ານຍອມຮັບວ່າອຸປະກອນນີ້ອາດດາວໂຫຼດ ແລະ ຕິດຕັ້ງອັບເດດ ແລະ ແອັບຈາກ Google, ຜູ້ໃຫ້ບໍລິການຂອງລູກທ່ານ ແລະ ຜູ້ຜະລິດອຸປະກອນນີ້, ເຊິ່ງເປັນໄປໄດ້ວ່າອາດຈະໃຊ້ອິນເຕີເນັດມືຖື. ແອັບບາງຢ່າງເຫຼົ່ານີ້ອາດມີການສະເໜີການຊື້ໃນແອັບ.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN ຕ້ອງມີຢ່າງໜ້ອຍໜຶ່ງຕົວອັກສອນ}other{PIN ຕ້ອງມີຢ່າງໜ້ອຍ # ຕົວອັກສອນ}}</translation>
@@ -4758,6 +4763,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> ຕ້ອງການ</translation>
 <translation id="5534304873398226603">ລຶບຮູບພາບ ຫຼື ວິດີໂອຖິ້ມ</translation>
 <translation id="5537725057119320332">ຄາສທ໌</translation>
+<translation id="5539070192556911367">ບໍ່ສາມາດຕິດຕໍ່ຫາ Google ໄດ້</translation>
 <translation id="5539221284352502426">ລະຫັດຜ່ານທີ່ທ່ານປ້ອນເຂົ້າໄດ້ຖືກປະຕິເສດໂດຍເຊີເວີແລ້ວ. ເຫດຜົນທີ່ເປັນໄປໄດ້ລວມມີ: ລະຫັດຜ່ານສັ້ນເກີນໄປ. ລະຫັດຜ່ານຕ້ອງລວມມີຕົວເລກ ຫຼື ສັນຍາລັກ. ລະຫັດຜ່ານຕ້ອງແຕກຕ່າງຈາກລະຫັດຜ່ານໃນເມື່ອກ່ອນ.</translation>
 <translation id="5541694225089836610">ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານປິດນຳໃຊ້ຄຳສັ່ງນີ້</translation>
 <translation id="5542132724887566711">ໂປຣໄຟລ໌</translation>
@@ -4821,6 +4827,7 @@
 <translation id="5585912436068747822">ການຟໍແມັດບໍ່ສໍາເລັດ</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">ກຳລັງໂຫຼດແອັບ...</translation>
+<translation id="5590418976913374224">ເປີດສຽງຢູ່ອຸປະກອນສະຕາດອັບ</translation>
 <translation id="5592595402373377407">ບໍ່ມີຂໍ້​ມູນພຽງ​ພໍ​ເທື່ອ​.</translation>
 <translation id="5595307023264033512">ການໃຊ້ບ່ອນຈັດເກັບຂໍ້ມູນທັງໝົດຕາມເວັບໄຊ: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">ແກ້ໄຂທີ່ຢູ່</translation>
@@ -4830,7 +4837,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">ບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ເຊື່ອມຕໍ່ກັບອຸປະກອນ MIDI</translation>
 <translation id="5602765853043467355">ລຶບລ້າງບຸກມາກ, ປະຫວັດ, ລະຫັດຜ່ານ ແລະ ອື່ນໆອີກຈາກອຸປະກອນນີ້</translation>
-<translation id="5605623530403479164">ເຄື່ອງຈັກຄົ້ນຫາອື່ນ</translation>
 <translation id="5605758115928394442">ລະບົບໄດ້ສົ່ງການແຈ້ງເຕືອນຫາໂທລະສັບຂອງທ່ານແລ້ວເພື່ອຢືນຢັນວ່າແມ່ນທ່ານ.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ສ່ວນຂະຫຍາຍນີ້ຖືກບລັອກໄວ້}other{ສ່ວນຂະຫຍາຍເຫຼົ່ານີ້ຖືກບລັອກໄວ້}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync, ສຶກສາເພີ່ມເຕີມ</translation>
@@ -5131,6 +5137,7 @@
 <translation id="5909379458939060601">ລຶບໂປຣໄຟລ໌ນີ້ ແລະ ຂໍ້ມູນການນຳໃຊ້ອອກບໍ?</translation>
 <translation id="5910363049092958439">ບັນທຶກຮູບເປັນ...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ອອບລາຍຢູ່</translation>
+<translation id="5911030830365207728">Google ແປພາສາ</translation>
 <translation id="5911533659001334206">ຕົວສະແດງທາງລັດ</translation>
 <translation id="5914724413750400082">ໂມດູນລັດ (<ph name="MODULUS_NUM_BITS" /> ບິດທ໌):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6202,6 +6209,10 @@
 <translation id="6943939122536910181">ຕັດການເຊື່ອມຕໍ່ຈາກ <ph name="DEVICE" /> ແລ້ວ</translation>
 <translation id="6945221475159498467">ເລືອກ</translation>
 <translation id="694592694773692225">ບລັອກການປ່ຽນເສັ້ນທາງໃນໜ້ານີ້ແລ້ວ.</translation>
+<translation id="6947015141909171112">ທ່ານກຳລັງເບິ່ງສູດໂດຍອ້າງອີງຈາກການເຄື່ອນໄຫວການຊອກຫາຫຼ້າສຸດຂອງທ່ານສຳລັບສູດ.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        ທ່ານສາມາດຈັດການການຕັ້ງຄ່າໄດ້ຈາກເມນູບັດ ຫຼື ເບິ່ງຕົວເລືອກເພີ່ມເຕີມໄດ້ໃນ Chrome ທີ່ມີການປັບແຕ່ງ.</translation>
 <translation id="6949434160682548041">ລະຫັດຜ່ານ (ບໍ່ບັງຄັບ)</translation>
 <translation id="6950627417367801484">ກູ້ຄືນແອັບ</translation>
 <translation id="6952242901357037157">ນອກນັ້ນທ່ານຍັງສາມາດສະແດງລະຫັດຜ່ານຈາກ <ph name="BEGIN_LINK" />ບັນຊີ Google<ph name="END_LINK" /> ຂອງທ່ານຢູ່ບ່ອນນີ້ໄດ້ນຳ</translation>
@@ -6370,6 +6381,7 @@
 <translation id="7102687220333134671">ການອັບເດດອັດຕະໂນມັດເປີດຢູ່</translation>
 <translation id="7102832101143475489">ຄຳຂໍໝົດເວລາແລ້ວ</translation>
 <translation id="710640343305609397">ເປີດການຕັ້ງຄ່າເຄືອຂ່າຍ</translation>
+<translation id="7107609441453408294">ຫຼິ້ນສຽງດຽວກັນຜ່ານທຸກລຳໂພງ</translation>
 <translation id="7108338896283013870">ເຊື່ອງ</translation>
 <translation id="7108668606237948702">ປ້ອນເຂົ້າ</translation>
 <translation id="7108933416628942903">ລັອກຕອນນີ້</translation>
@@ -6600,6 +6612,7 @@
 <translation id="7364745943115323529">ຄາສທ໌...</translation>
 <translation id="7364796246159120393">ເລືອກ​ໄຟລ​໌</translation>
 <translation id="7365076891350562061">ຂະໜາດໜ້າຈໍ</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> - ປັກໝຸດແລ້ວ</translation>
 <translation id="7366316827772164604">ກຳລັງສະແກນຫາອຸປະກອນທີ່ຢູ່ໃກ້ຄຽງ...</translation>
 <translation id="7366415735885268578">ເພີ່ມເວັບໄຊ</translation>
 <translation id="7366909168761621528">ຂໍ້ມູນການທ່ອງເວັບ</translation>
@@ -6996,6 +7009,7 @@
 <translation id="7737115349420013392">ກຳລັງຈັບຄູ່ກັບ "<ph name="DEVICE_NAME" />" ...</translation>
 <translation id="7737846262459425222">ທ່ານສາມາດປ່ຽນສິ່ງນີ້ຕອນໃດກໍໄດ້ໃນການຕັ້ງຄ່າ &gt; ຜູ້ຊ່ວຍ Google &gt; ບໍລິບົດໜ້າຈໍ.</translation>
 <translation id="7737948071472253612">ບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ກ້ອງຂອງທ່ານ</translation>
+<translation id="77381465218432215">ສະແດງເຄື່ອງໝາຍເນັ້ນສຽງ ແລະ ຕົວອັກສອນພິເສດ</translation>
 <translation id="7740996059027112821">ມາດ​ຕະ​ຖານ</translation>
 <translation id="7741307896921365578">ເປີດການນຳໃຊ້ແຜງຄວບຄຸມດ້ານຂ້າງໃນລະດັບໂປຣແກຣມທ່ອງເວັບເພື່ອໃຊ້ວິທີທີ່ມີປະໂຫຍດ ແລະ ໝັ້ນຄົງໃນການເຂົ້າເຖິງລາຍຊື່ການອ່ານ ແລະ ບຸກມາກຂອງທ່ານ.</translation>
 <translation id="7742558784808143689">ລຶບລ້າງຂໍ້ມູນເວັບໄຊ ແລະ ການອະນຸຍາດສຳລັບ <ph name="SITE_NAME" />, ເວັບໄຊທັງໝົດພາຍໃຕ້ມັນ ແລະ ແອັບທີ່ຕິດຕັ້ງໄວ້ແລ້ວບໍ?</translation>
@@ -7785,6 +7799,7 @@
 <translation id="8486666913807228950">ເຫດຜົນ: ພົບກົດລະບຽບປີ້ນກັບ <ph name="REVERT_RULE" /> ໃນລາຍຊື່ "ບັງຄັບເປີດໃນ".</translation>
 <translation id="848666842773560761">ມີແອັບກຳລັງພະຍາຍາມເຂົ້າເຖິງກ້ອງຖ່າຍຮູບຢູ່. ປິດປຸ່ມຄວາມເປັນສ່ວນຕົວຂອງກ້ອງຖ່າຍຮູບເພື່ອອະນຸຍາດການເຂົ້າເຖິງ.</translation>
 <translation id="8487678622945914333">ຊຸມເຂົ້າ</translation>
+<translation id="8487699605742506766">ຮັອດສະປອດ</translation>
 <translation id="8489156414266187072">ການແນະນຳສ່ວນຕົວພຽງແຕ່ສະແດງໃນບັນຊີຂອງທ່ານເທົ່ານັ້ນ</translation>
 <translation id="8490896350101740396">ແອັບ kiosk "<ph name="UPDATED_APPS" />" ຕໍ່​ໄປ​ນີ້​ໄດ້​ຮັບ​ການ​ອັບ​ເດດ​ແລ້ວ. ກະ​ລຸ​ນາ​ປິດເປີດອຸ​ປະ​ກອນ​ໃໝ່ ເພື່ອ​ດຳ​ເນີນ​ຂັ້ນ​ຕອນ​ອັບ​ເດດ​ໃຫ້​ສຳ​ເລັດ.</translation>
 <translation id="8492685019009920170">ໃຊ້ນິ້ວມືຂອງທ່ານແຕະເຊັນເຊີລາຍນິ້ວມື. ຂໍ້ມູນຂອງທ່ານຖືກເກັບໄວ້ຢ່າງປອດໄພ ແລະ ຈະບໍ່ຖືກສົ່ງອອກຈາກ <ph name="DEVICE_TYPE" /> ຂອງທ່ານເດັດຂາດ.</translation>
@@ -7959,6 +7974,7 @@
 <translation id="8666759526542103597">ກ່ຽວກັບການປັບແຕ່ງໂຄສະນາເປັນແບບສ່ວນຕົວໂດຍອ້າງອີງໃສ່ໂປຣແກຣມທ່ອງເວັບ</translation>
 <translation id="8667328578593601900"><ph name="FULLSCREEN_ORIGIN" /> ເຕັມໜ້າຈໍແລ້ວດຽວນີ້ ແລະໄດ້ປິດໃຊ້ງານເຄີເຊີເມົາສ໌ຂອງທ່ານແລ້ວ.</translation>
 <translation id="8667760277771450375">ພວກເຮົາກຳລັງສຳຫຼວດວິທີຕ່າງໆໃນການຈຳກັດການຕິດຕາມຂ້າມເວັບໄຊໃນຂະນະທີ່ເປີດການນຳໃຊ້ເວັບໄຊເພື່ອຢຸດສະແປມໂຄສະນາ ແລະ ການສໍ້ໂກງ.</translation>
+<translation id="8668378421690365723">ອຸປະກອນຂອງທ່ານອາດບໍ່ເຮັດວຽກໄດ້ຕາມປົກກະຕິອີກຕໍ່ໄປ ແລະ ອາດພົບບັນຫາກ່ຽວກັບຄວາມປອດໄພ ແລະ ປະສິດທິພາບ.</translation>
 <translation id="8669284339312441707">ອຸ່ນກວ່າ</translation>
 <translation id="8670537393737592796">ເພື່ອກັບຄືນບ່ອນນີ້ໄດ້ຢ່າງວ່ອງໄວ, ກະລຸນາຕິດຕັ້ງ <ph name="APP_NAME" /> ໂດຍຄລິກໃສ່ປຸ່ມຕິດຕັ້ງ</translation>
 <translation id="867085395664725367">ເກີດຄວາມຜິດພາດຊົ່ວຄາວກັບເຊີບເວີ.</translation>
@@ -8281,6 +8297,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" ແລະ ອີກ 1 ແຖບອື່ນ}other{"<ph name="TAB_TITLE" />" ແລະ ອີກ # ແຖບອື່ນ}}</translation>
 <translation id="8977811652087512276">ລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ ຫຼື ໄຟລ໌ເສຍຫາຍ</translation>
 <translation id="8978154919215542464">ເປີດ - ຊິ້ງຂໍ້ມູນທຸກຢ່າງ</translation>
+<translation id="8978670037548431647">ໂຫຼດຂໍ້ມູນຄວາມສາມາດໃນການປ່ອຍສັນຍານຄືນໃໝ່</translation>
 <translation id="897939795688207351">ໃນ <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">ລາຍງານຄຳຕິຊົມ</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - ຂັດຂ້ອງ</translation>
@@ -8441,6 +8458,7 @@
 <translation id="9120693811286642342"><ph name="BEGIN_PARAGRAPH1" />ສຳລັບປະສົບການທີ່ດີທີ່ສຸດ, ກະລຸນາຕິດຕັ້ງ <ph name="DEVICE_OS" /> ໃສ່ດິສກ໌ພາຍໃນຂອງທ່ານ. ນອກຈາກນັ້ນ, ທ່ານສາມາດຕິດຕັ້ງມັນໃນພາຍຫຼັງຈາກໜ້າຈໍການເຂົ້າສູ່ລະບົບໄດ້ນຳ.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />ຫາກທ່ານບໍ່ພ້ອມຕິດຕັ້ງເທື່ອ, ທ່ານສາມາດເອີ້ນໃຊ້ຈາກ USB ເພື່ອລອງໃຊ້ມັນເບິ່ງກ່ອນໄດ້. ນີ້ຈະເກັບຂໍ້ມູນ ແລະ ລະບົບປະຕິບັດການທີ່ມີຢູ່ກ່ອນແລ້ວຂອງທ່ານໄວ້, ແຕ່ທ່ານອາດເຫັນຂໍ້ຈຳກັດບ່ອນຈັດເກັບຂໍ້ມູນ ແລະ ປະສິດທິພາບ.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="9121814364785106365">ເປີດ​ເປັນ​ແຖບປັກໝຸດແລ້ວ</translation>
+<translation id="9123287046453017203">ອຸປະກອນຂອງທ່ານຍັງບໍ່ໄດ້ອັບເດດຫຼ້າສຸດ</translation>
 <translation id="9124003689441359348">ລະຫັດຜ່ານທີ່ບັນທຶກໄວ້ຈະປາກົດຢູ່ບ່ອນນີ້</translation>
 <translation id="9126149354162942022">ສີເຄີເຊີ</translation>
 <translation id="9128317794749765148">ບໍ່ສາມາດເຮັດສຳເລັດການຕັ້ງຄ່າໄດ້</translation>
@@ -8546,6 +8564,7 @@
 <translation id="935854577147268200">ປ່ຽນໂທລະສັບ Smart Lock ແລ້ວ ປ້ອນລະຫັດຜ່ານຂອງທ່ານເພື່ອອັບເດດ Smart Lock. ຄັ້ງຕໍ່ໄປ, ໂທລະສັບຂອງທ່ານຈະປົດລັອກ <ph name="DEVICE_TYPE" /> ຂອງທ່ານ. ທ່ານສາມາດປິດ Smart Lock ໄດ້ໃນການຕັ້ງຄ່າ</translation>
 <translation id="936646668635477464">ກ້ອງ ແລະ ໄມໂຄຣໂຟນ</translation>
 <translation id="936801553271523408">ຂໍ້ມູນກວດວິເຄາະລະບົບ</translation>
+<translation id="937053962468712792">ລຶບ <ph name="DEVICE" /> ອອກຈາກ <ph name="PRIMARY_EMAIL" /> ບໍ?</translation>
 <translation id="93766956588638423">ສ້ອມ​ແປງສ່ວນຂະ​ຫຍາຍ​</translation>
 <translation id="938568644810664664">ລອງເວົ້າ “Ok Google, what song is this?” ຫຼື “Ok Google, what's on my screen?”</translation>
 <translation id="938623846785894166">ໄຟລ໌ທີ່ບໍ່ນິຍົມ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index d4f9502..cc6e6f3aa 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Naudoti mikrofoną ir kamerą</translation>
 <translation id="1005333234656240382">Įgalinti ADB derinimą?</translation>
 <translation id="1006873397406093306">Šis plėtinys gali skaityti ir keisti jūsų duomenis svetainėse. Galite valdyti, kurias svetaines gali pasiekti plėtinys.</translation>
+<translation id="1007057452468855774">Įjungti „Google Play“ parduotuvę</translation>
 <translation id="1008186147501209563">Žymių eksportavimas</translation>
 <translation id="1008557486741366299">Ne dabar</translation>
 <translation id="1009476156254802388">„<ph name="WEB_DRIVE" />“ vieta</translation>
 <translation id="1009663062402466586">Žaidimų valdikliai dabar pasiekiami</translation>
 <translation id="1010498023906173788">Šis skirtukas prijungtas prie nuosekliojo prievado.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Puslapis nereaguoja}one{Puslapiai nereaguoja}few{Puslapiai nereaguoja}many{Puslapiai nereaguoja}other{Puslapiai nereaguoja}}</translation>
+<translation id="1011003645819296594">Išsaugoti įrenginiai</translation>
 <translation id="1011355516189274711">Teksto į kalbą garsumas</translation>
 <translation id="1012794136286421601">Dokumentų, Skaičiuoklių, Skaidrių ir Piešinių failai sinchronizuojami. Atidarykite „Google“ disko programą, kad juos pasiektumėte prisijungę arba neprisijungę.</translation>
 <translation id="1012876632442809908">USB-C įrenginys (prievadas priekyje)</translation>
@@ -497,6 +499,7 @@
 <translation id="1470350905258700113">Naudoti šį įrenginį</translation>
 <translation id="1470946456740188591">Jei norite įjungti arba išjungti „Caret Browsing“, naudokite spartųjį klavišą „Ctrl“ + paieškos klavišas + 7</translation>
 <translation id="1472675084647422956">Rodyti daugiau</translation>
+<translation id="1473223074251193484">Nustatyti įrenginio kaip modemo naudojimo konfigūraciją</translation>
 <translation id="1474785664565228650">Buvo pakeistas mikrofono nustatymas, todėl reikia iš naujo paleisti „Parallels Desktop“. Norėdami tęsti, paleiskite „Parallels Desktop“ iš naujo.</translation>
 <translation id="1474893630593443211">Geresnis rodomų skelbimų valdymas</translation>
 <translation id="1475502736924165259">Turite pateiktų sertifikatų, kurie neatitinka jokių kitų kategorijų</translation>
@@ -909,6 +912,7 @@
 <translation id="1829129547161959350">Pingvinas</translation>
 <translation id="1829192082282182671">Tolin&amp;ti</translation>
 <translation id="1830550083491357902">Neprisijungta</translation>
+<translation id="1831848493690504725">Nepavyksta pasiekti „Google“ naudojant prijungtą tinklą. Pabandykite pasirinkti kitą tinklą arba patikrinti tinklo ar tarpinio serverio nustatymus (jei naudojate tarpinį serverį).</translation>
 <translation id="1832459821645506983">Taip, sutinku</translation>
 <translation id="1832511806131704864">Telefono pakeitimas atnaujintas</translation>
 <translation id="1832848789136765277">Kad užtikrintumėte galimybę visada pasiekti sinchronizuojamus duomenis, patvirtinkite savo tapatybę</translation>
@@ -1127,6 +1131,7 @@
 <translation id="2044014337866019681">Būtinai patvirtinkite <ph name="ACCOUNT" />, kad atrakintumėte sesiją.</translation>
 <translation id="204497730941176055">„Microsoft“ sertifikato šablono pavadinimas</translation>
 <translation id="2045117674524495717">Sparčiųjų klavišų pagalbos priemonė</translation>
+<translation id="2045211794962848221">Nebematysite šio konkretaus pranešimo</translation>
 <translation id="2045969484888636535">Tęsti slapukų blokavimą</translation>
 <translation id="204622017488417136">Įrenginyje bus grąžinta anksčiau įdiegta „Chrome“ versija. Visos naudotojų paskyros ir vietiniai duomenys bus pašalinti. Šio veiksmo anuliuoti negalėsite.</translation>
 <translation id="2046702855113914483">Ramenai</translation>
@@ -2211,6 +2216,7 @@
 <translation id="3021065318976393105">Naudojant su akumuliatoriumi</translation>
 <translation id="3021066826692793094">Drugelis</translation>
 <translation id="3021678814754966447">&amp;Žiūrėti rėmelio šaltinį</translation>
+<translation id="3022361196600037287">„<ph name="DEVICE" />“ bus pašalintas iš šio „Chromebook“ ir nebus išsaugotas adresu <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Nepavyko suprasti.</translation>
 <translation id="3023464535986383522">Teksto ištarimas</translation>
 <translation id="3024374909719388945">Naudoti 24 val. laikrodį</translation>
@@ -3750,6 +3756,7 @@
 <translation id="4535127706710932914">Numatytasis profilis</translation>
 <translation id="4535767533210902251">Kontrolinio kodo jutiklis yra ant jūsų klaviatūros viršutinio dešiniojo klavišo. Lengvai jį palieskite bet kuriuo pirštu.</translation>
 <translation id="4536140153723794651">Svetainės, kuriose visada galima naudoti slapukus</translation>
+<translation id="4536769240747010177">Įrenginio kaip modemo naudojimo galimybės:</translation>
 <translation id="4538417792467843292">Ištrinti žodį</translation>
 <translation id="4538792345715658285">Įdiegta pagal įmonės politiką.</translation>
 <translation id="4541123282641193691">Nepavyko patvirtinti paskyros. Bandykite dar kartą arba paleiskite „Chromebook“ iš naujo.</translation>
@@ -3777,6 +3784,7 @@
 <translation id="4561893854334016293">Nėra jokių neseniai pakeistų leidimų</translation>
 <translation id="4562155214028662640">Pridėti piršto antspaudą</translation>
 <translation id="4563210852471260509">Pagrindinė įvesties kalba – kinų k.</translation>
+<translation id="4563382028841851106">Pašalinti iš paskyros</translation>
 <translation id="4563880231729913339">Trečias pirštas</translation>
 <translation id="4564245002465020751">Sąrankos užbaigimas telefonu</translation>
 <translation id="4565377596337484307">Slėpti slaptažodį</translation>
@@ -3813,6 +3821,7 @@
 <translation id="4594577641390224176">Ieškote sistemos puslapio „Apie“? Apsilankykite adresu</translation>
 <translation id="4595560905247879544">Programas ir plėtinius gali keisti tik valdytojas (<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">Turite pateiktų sertifikatų, kurie identifikuoja šiuos serverius</translation>
+<translation id="4598345735110653698">Tvarkyti slaptažodžius</translation>
 <translation id="4598556348158889687">Saugyklos tvarkymas</translation>
 <translation id="4598776695426288251">„Wi-Fi“ ryšys pasiekiamas keliais įrenginiais</translation>
 <translation id="4601426376352205922">Pažymėti kaip neskaitytą</translation>
@@ -4038,6 +4047,7 @@
 <translation id="4823894915586516138">Šis PIN kodas arba slaptažodis apsaugo jūsų duomenis šiame „<ph name="DEVICE_TYPE" />“ įrenginyje, įskaitant bet kokią informaciją, kurią pasiekiate iš savo telefono</translation>
 <translation id="4824037980212326045">„Linux“ atsarginės kopijos kūrimas ir atkūrimas</translation>
 <translation id="4824958205181053313">Atšaukti sinchronizavimą?</translation>
+<translation id="4825532258163983651">Nepavyko ištrinti slaptažodžio</translation>
 <translation id="4827675678516992122">Nepavyko prisijungti</translation>
 <translation id="4827784381479890589">Patobulinta rašybos tikrinimo funkcija „Chrome“ naršyklėje (tekstas siunčiamas „Google“, kad pateiktų rašybos pasiūlymų)</translation>
 <translation id="4827904420700932487">Sukurti šio vaizdo QR kodą</translation>
@@ -4300,6 +4310,7 @@
 <translation id="5087249366037322692">Pridėjo trečioji šalis</translation>
 <translation id="5087580092889165836">Pridėti kortelę</translation>
 <translation id="5088534251099454936">PKCS Nr. 1 SHA-512 su RSA šifruote</translation>
+<translation id="5089763948477033443">Šoninio skydelio dydžio keitimo rankenėlė</translation>
 <translation id="5090637338841444533">Neleidžiama stebėti fotoaparato pozicijos</translation>
 <translation id="5093569275467863761">Ilgalaikis viso antrinio inkognito rėmelio saugojimas talpykloje: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Galite atidaryti ir redaguoti palaikomus failus naudodami šią programą iš Failų programos ar kitų programų. Jei norite valdyti, kuriuos failus atidarant pagal numatytuosius nustatymus atidaroma ši programa, <ph name="BEGIN_LINK" />sužinokite, kaip nustatyti numatytąsias programas įrenginyje<ph name="END_LINK" />.</translation>
@@ -4465,6 +4476,7 @@
 <translation id="5258992782919386492">Įdiegti šiame įrenginyje</translation>
 <translation id="5260334392110301220">Išmaniosios kabutės</translation>
 <translation id="5260508466980570042">Atsiprašome, el. pašto ir slaptažodžio patvirtinti nepavyko. Bandykite dar kartą.</translation>
+<translation id="5260958083445173099">Kai bus įmanoma, svetainių turinys bus rodomas pageidaujamomis kalbomis</translation>
 <translation id="5261683757250193089">Atidaryti internetinėje parduotuvėje</translation>
 <translation id="5262178194499261222">Pašalinti slaptažodį</translation>
 <translation id="5262784498883614021">Automatiškai prisijungti prie tinklo</translation>
@@ -4505,6 +4517,7 @@
 <translation id="5294097441441645251">Turi prasidėti mažąja raide arba apatiniu brūkšniu</translation>
 <translation id="5294618183559481278">Jūsų „<ph name="DEVICE_TYPE" />“ naudoja įtaisytą jutiklį žmonėms priešasi įrenginį aptikti. Visi duomenys iš karto apdorojami įrenginyje ir tada ištrinami. Jutiklių duomenys niekada nesiunčiami „Google“. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Klausykitės balsu skaitomo ekrano, kad galėtumėte naudoti įrenginį nežiūrėdami į ekraną. Brailio rašmenys pasiekiami naudojant prijungtą įrenginį.</translation>
+<translation id="5297005732522718715">Atnaujinti įrenginio kaip modemo naudojimo konfigūraciją</translation>
 <translation id="5297082477358294722">Slaptažodis išsaugotas. Peržiūrėkite ir tvarkykite išsaugotus slaptažodžius <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Kai kas nors kitas žiūri į ekraną, ekrano apačioje kairėje rodoma piktograma „Privatumo akis“</translation>
 <translation id="5298219193514155779">Temą sukūrė</translation>
@@ -4675,6 +4688,7 @@
 <translation id="5466374726908360271">Įk&amp;klijuoti ir ieškoti „<ph name="SEARCH_TERMS" />“</translation>
 <translation id="5467207440419968613">Užblokuota: <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Ieškoma failų bendrinimo įrenginių</translation>
+<translation id="5468330507528805311">Įrenginio kaip modemo naudojimo būsena:</translation>
 <translation id="5468881191994555667">Pasirinkti failą</translation>
 <translation id="5469852975082458401">Puslapius galite naršyti naudodami teksto žymeklį. Paspauskite F7, kad išjungtumėte.</translation>
 <translation id="5470735824776589490">Kad įrenginį būtų galima nustatyti iš naujo naudojant „Powerwash“, reikia paleisti iš naujo. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
@@ -4753,6 +4767,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> nori:</translation>
 <translation id="5534304873398226603">Atmesti nuotrauką arba vaizdo įrašą</translation>
 <translation id="5537725057119320332">Perduoti</translation>
+<translation id="5539070192556911367">Nepavyksta pasiekti „Google“</translation>
 <translation id="5539221284352502426">Serveris atmetė įvestą slaptažodį. Taip galėjo nutikti dėl toliau išvardytų priežasčių. Slaptažodis yra per trumpas. Slaptažodį turi sudaryti ir skaičiai arba simboliai. Slaptažodis turi skirtis nuo ankstesnių slaptažodžių.</translation>
 <translation id="5541694225089836610">Veiksmą išjungė administratorius</translation>
 <translation id="5542132724887566711">Profilis</translation>
@@ -4816,6 +4831,7 @@
 <translation id="5585912436068747822">Formatuojant įvyko klaida</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Įkeliamos programos...</translation>
+<translation id="5590418976913374224">Leisti garsą paleidžiant įrenginį</translation>
 <translation id="5592595402373377407">Kol kas nepakanka duomenų.</translation>
 <translation id="5595307023264033512">Iš viso svetainių naudojamos vietos saugykloje: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Adreso redagavimas</translation>
@@ -4825,7 +4841,6 @@
 <translation id="5601503069213153581">PIN kodas</translation>
 <translation id="5601823921345337195">Neleidžiama prijungti MIDI įrenginių</translation>
 <translation id="5602765853043467355">Išvalyti žymes, istoriją, slaptažodžius ir kt. iš šio įrenginio</translation>
-<translation id="5605623530403479164">Kiti paieškos varikliai</translation>
 <translation id="5605758115928394442">Pranešimas išsiųstas į jūsų telefoną norint patvirtinti, kad tai jūs.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Šis plėtinys užblokuotas}one{Šie plėtiniai užblokuoti}few{Šie plėtiniai užblokuoti}many{Šie plėtiniai užblokuoti}other{Šie plėtiniai užblokuoti}}</translation>
 <translation id="560834977503641186">„Wi-Fi“ sinchronizavimas, sužinokite daugiau</translation>
@@ -4950,6 +4965,7 @@
 <translation id="5734362860645681824">Ryšiai</translation>
 <translation id="5734697361979786483">Pridėti failų bendrinimo įrenginį</translation>
 <translation id="5736796278325406685">Įveskite tinkamą naudotojo vardą</translation>
+<translation id="5738093759615225354">Jums reikia šio slaptažodžio, kad galėtumėte prisijungti prie kompiuterio</translation>
 <translation id="5739017626473506901">Prisijunkite, kad padėtumėte <ph name="USER_NAME" /> pridėti mokyklos paskyrą</translation>
 <translation id="5739235828260127894">Laukiama patvirtinimo. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Labai didelis</translation>
@@ -5111,6 +5127,7 @@
 <translation id="589541317545606110">Paieškos puslapis naudojant „<ph name="VISUAL_SEARCH_PROVIDER" />“</translation>
 <translation id="5896436821193322561">Neleisti</translation>
 <translation id="5900186025777217044">„Smart Lock“ pasikeitė</translation>
+<translation id="5900243355162006650">Įrenginio kaip modemo naudojimo konfigūracija:</translation>
 <translation id="5900302528761731119">„Google“ profilio nuotrauka</translation>
 <translation id="590036993063074298">Išsami ekrano vaizdo bendrinimo kokybės informacija</translation>
 <translation id="5901069264981746702">Kontrolinio kodo duomenys saugomi saugiai ir niekada nepatenka už „<ph name="DEVICE_TYPE" />“ ribų. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
@@ -5125,6 +5142,7 @@
 <translation id="5909379458939060601">Ištrinti šį profilį ir naršymo duomenis?</translation>
 <translation id="5910363049092958439">Iš&amp;saugoti vaizdą kaip...</translation>
 <translation id="5910726859585389579">„<ph name="DEVICE_TYPE" />“ ryšys išjungtas</translation>
+<translation id="5911030830365207728">„Google“ vertėjas</translation>
 <translation id="5911533659001334206">Sparčiųjų klavišų peržiūros programa</translation>
 <translation id="5914724413750400082">Modulis (<ph name="MODULUS_NUM_BITS" /> bit.):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5414,6 +5432,7 @@
 <translation id="6196640612572343990">Blokuoti trečiosios šalies slapukus</translation>
 <translation id="6196854373336333322">Plėtinys „<ph name="EXTENSION_NAME" />“ perėmė tarpinio serverio valdymą. Tai reiškia, kad jis gali keisti, nutraukti ar stebėti visus prisijungus atliekamus veiksmus. Jei nesate tikri, kodėl įvyko šis pakeitimas, tikriausiai jūs jo nenorite.</translation>
 <translation id="6197128521826316819">Sukurti šio puslapio QR kodą</translation>
+<translation id="6197223946499512637">Šie slaptažodžiai saugomi „Windows Hello“ šiame kompiuteryje. Jie neišsaugomi „Google“ paskyroje.</translation>
 <translation id="6198252989419008588">Keisti PIN kodą</translation>
 <translation id="6200047250927636406">Atmesti failą</translation>
 <translation id="6200151268994853226">Valdyti plėtinį</translation>
@@ -5711,6 +5730,7 @@
 <translation id="6482559668224714696">Viso ekrano didintuvas</translation>
 <translation id="6483485061007832714">Atidarykite atsisiųstą failą</translation>
 <translation id="6483805311199035658">Atidaroma <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">Jei norite tvarkyti slaptažodžius, naudokite naujesnę „Windows“ versiją</translation>
 <translation id="6488384360522318064">Pasirinkti kalbą</translation>
 <translation id="648927581764831596">Nėra</translation>
 <translation id="6490471652906364588">USB-C įrenginys (prievadas dešinėje)</translation>
@@ -6200,6 +6220,10 @@
 <translation id="6943939122536910181">Atsijungta nuo „<ph name="DEVICE" />“</translation>
 <translation id="6945221475159498467">Pasirinkti</translation>
 <translation id="694592694773692225">Peradresavimas užblokuotas šiame puslapyje.</translation>
+<translation id="6947015141909171112">Matote receptus, rodomus pagal jūsų naujausią su receptais susijusios paieškos veiklą.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Galite tvarkyti nustatymus kortelės meniu arba peržiūrėti daugiau parinkčių skiltyje „Chrome“ tinkinimas“.</translation>
 <translation id="6949434160682548041">Slaptažodis (nebūtinas)</translation>
 <translation id="6950627417367801484">Atkurti programas</translation>
 <translation id="6952242901357037157">Čia taip pat galite rodyti slaptažodžius iš <ph name="BEGIN_LINK" />„Google“ paskyros<ph name="END_LINK" /></translation>
@@ -6299,6 +6323,7 @@
 <translation id="7029307918966275733">„Crostini“ neįdiegta. Jei norite peržiūrėti titrus, įdiekite „Crostini“.</translation>
 <translation id="7029809446516969842">Slaptažodžiai</translation>
 <translation id="7030304022046916278">Siunčia URL Saugaus naršymo funkcijai, kad juos patikrintų</translation>
+<translation id="7030695672997239647">Dešiniuoju klavišu spustelėkite skirtuką ir pasirinkite „Pridėti skirtuką prie grupės“, tada pasirinkite „Nauja grupė“</translation>
 <translation id="7031608529463141342">„<ph name="WINDOW_TITLE" />“ – nuoseklusis prievadas prijungtas</translation>
 <translation id="7033616203784997570">Įvestis turi būti ne ilgesnė kaip 62 simb.</translation>
 <translation id="7034692021407794547">Administratorius, kuriam suteikta privilegija „Atsiskaitymo valdymas“, pirmiausia turi administratoriaus pulto skiltyje „Google Meet“ aparatinė įranga“ sutikti su „Google Meet“ aparatinės įrangos paslaugų teikimo sąlygomis.</translation>
@@ -6367,6 +6392,7 @@
 <translation id="7102687220333134671">Automatiniai naujiniai įjungti</translation>
 <translation id="7102832101143475489">Baigėsi skirtasis užklausos laikas</translation>
 <translation id="710640343305609397">Atidaryti tinklo nustatymus</translation>
+<translation id="7107609441453408294">Paleisti tą patį garso įrašą visuose garsiakalbiuose</translation>
 <translation id="7108338896283013870">Slėpti</translation>
 <translation id="7108668606237948702">įvesti</translation>
 <translation id="7108933416628942903">Užrakinti dabar</translation>
@@ -6597,6 +6623,7 @@
 <translation id="7364745943115323529">Perduoti...</translation>
 <translation id="7364796246159120393">Pasirinkti failą</translation>
 <translation id="7365076891350562061">Monitoriaus dydis</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> – prisegta</translation>
 <translation id="7366316827772164604">Ieškoma įrenginių netoliese...</translation>
 <translation id="7366415735885268578">Svetainės pridėjimas</translation>
 <translation id="7366909168761621528">Naršymo duomenys</translation>
@@ -6993,6 +7020,7 @@
 <translation id="7737115349420013392">Susiejama su „<ph name="DEVICE_NAME" />“…</translation>
 <translation id="7737846262459425222">Bet kada galite tai pakeisti skiltyje „Nustatymai“ &gt; „Google“ padėjėjas“ &gt; „Ekrano kontekstas“.</translation>
 <translation id="7737948071472253612">Neleidžiama naudoti fotoaparato</translation>
+<translation id="77381465218432215">Rodyti kirčio ir specialiuosius ženklus</translation>
 <translation id="7740996059027112821">Standartinis</translation>
 <translation id="7741307896921365578">Įgalinamas naršyklės lygio šoninis skydelis, kad galėtumėte lengvai, nuolat pasiekti skaitymo sąrašą ir žymes.</translation>
 <translation id="7742558784808143689">Išvalyti svetainės <ph name="SITE_NAME" />, visų jos antrinių svetainių ir įdiegtų programų duomenis bei leidimus?</translation>
@@ -7398,6 +7426,7 @@
 <translation id="8101987792947961127">Kitą kartą įkeliant operacinę sistemą iš naujo būtina paleisti „Powerwash“</translation>
 <translation id="81020759409809034">Vietinė vieta</translation>
 <translation id="8102139037507939978">Panaikinti asmens identifikavimo informaciją iš „system_logs.txt“.</translation>
+<translation id="810362914482827094">Ieškoti slaptažodžių</translation>
 <translation id="8104088837833760645">Atsisiųsti „eSIM“ kortelės profilį</translation>
 <translation id="8105368624971345109">Išjungti</translation>
 <translation id="8107015733319732394">Įdiegiama „Google Play“ parduotuvė jūsų „<ph name="DEVICE_TYPE" />“ įrenginyje. Tai gali šiek tiek užtrukti.</translation>
@@ -7783,6 +7812,7 @@
 <translation id="8486666913807228950">Priežastis: atvirkštinio atvaizdavimo taisyklė „<ph name="REVERT_RULE" />“ rasta sąraše „Priverstinai atidaryti naršyklėje“.</translation>
 <translation id="848666842773560761">Programa bando pasiekti kamerą. Išjunkite kameros privatumo jungiklį, kad leistumėte pasiekti.</translation>
 <translation id="8487678622945914333">Artinti</translation>
+<translation id="8487699605742506766">Viešosios interneto prieigos taškas</translation>
 <translation id="8489156414266187072">Asmeniniai pasiūlymai rodomi tik jūsų paskyroje</translation>
 <translation id="8490896350101740396">Buvo atnaujintos šios viešojo terminalo programos: <ph name="UPDATED_APPS" />. Paleiskite įrenginį iš naujo, kad užbaigtumėte atnaujinimo procesą.</translation>
 <translation id="8492685019009920170">Palieskite kontrolinio kodo jutiklį pirštu. Jūsų duomenys laikomi saugiai ir niekada neperduodami iš „<ph name="DEVICE_TYPE" />“ įrenginio.</translation>
@@ -7844,6 +7874,7 @@
 <translation id="8557022314818157177">Lieskite saugos raktą, kol bus užfiksuotas kontrolinis kodas</translation>
 <translation id="8557180006508471423">Įjunkite „Google Chrome“, nuėję į „Location Services“ „Mac“ kompiuteryje</translation>
 <translation id="8557856025359704738">Kitas atsisiuntimas: <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Slaptažodžiai</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Atidaryti viską &amp;naujame lange}=1{Atidaryti &amp;naujame lange}one{Atidaryti viską ({COUNT}) &amp;naujame lange}few{Atidaryti viską ({COUNT}) &amp;naujame lange}many{Atidaryti viską ({COUNT}) &amp;naujame lange}other{Atidaryti viską ({COUNT}) &amp;naujame lange}}</translation>
 <translation id="8561206103590473338">Dramblys</translation>
 <translation id="8561565784790166472">Būkite atsargūs</translation>
@@ -7970,6 +8001,7 @@
 <translation id="8677212948402625567">Sutraukti viską...</translation>
 <translation id="867767487203716855">Kitas naujinys</translation>
 <translation id="8677859815076891398">Nėra albumų. Sukurkite albumą <ph name="LINK_BEGIN" />„Google“ nuotraukose<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Paleisti iš naujo ir gauti automatinius naujinius</translation>
 <translation id="8678538439778360739"><ph name="TIME" /> duomenys užšifruoti naudojant sinchronizavimo slaptafrazę. Mokėjimo metodai ir adresai iš „Google Pay“ neįtraukiami.</translation>
 <translation id="8678582529642151449">Skirtukai nesumažinami</translation>
 <translation id="8678933587484842200">Kaip norite paleisti šią programą?</translation>
@@ -8219,6 +8251,7 @@
 <translation id="8910987510378294980">Slėpti įrenginių sąrašą</translation>
 <translation id="8912362522468806198">„Google“ paskyra</translation>
 <translation id="8912810933860534797">Įgalinti automatinį nuskaitymą</translation>
+<translation id="8915307125957890427">Dešiniuoju klavišu spustelėkite skirtuką ir pasirinkite „Pridėti skirtuką prie grupės“, tada pasirinkite „Nauja grupė“</translation>
 <translation id="8915370057835397490">Įkeliamas pasiūlymas</translation>
 <translation id="8916476537757519021">Inkognito antrinis kadras: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" />, <ph name="DEVICE_TYPE" /></translation>
@@ -8279,6 +8312,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{„<ph name="TAB_TITLE" />“}=1{„<ph name="TAB_TITLE" />“ ir dar 1 skirtukas}one{„<ph name="TAB_TITLE" />“ ir dar # skirtukas}few{„<ph name="TAB_TITLE" />“ ir dar # skirtukai}many{„<ph name="TAB_TITLE" />“ ir dar # skirtuko}other{„<ph name="TAB_TITLE" />“ ir dar # skirtukų}}</translation>
 <translation id="8977811652087512276">Netinkamas slaptažodis arba sugadintas failas</translation>
 <translation id="8978154919215542464">Įjungta – sinchronizuoti viską</translation>
+<translation id="8978670037548431647">Atnaujinti įrenginio kaip modemo naudojimo galimybes</translation>
 <translation id="897939795688207351"><ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Atsiliepimų ataskaitos</translation>
 <translation id="8980951173413349704">„<ph name="WINDOW_TITLE" />“ – užstrigo</translation>
@@ -8292,6 +8326,7 @@
 <translation id="8986362086234534611">Pamiršti</translation>
 <translation id="8986494364107987395">Automatiškai siųsti naudojimo statistiką ir strigčių ataskaitas „Google“</translation>
 <translation id="8987927404178983737">Mėnuo</translation>
+<translation id="8989359959810288806">Atnaujinti įrenginio kaip modemo naudojimo būseną</translation>
 <translation id="8991520179165052608">Svetainė gali naudoti jūsų mikrofoną</translation>
 <translation id="899384117894244799">Riboto naudotojo profilio pašalinimas</translation>
 <translation id="899403249577094719">„Netscape“ sertifikatų bazės URL</translation>
@@ -8543,6 +8578,7 @@
 <translation id="935854577147268200">„Smart Lock“ telefonas pakeistas. Įveskite slaptažodį, kad atnaujintumėte „Smart Lock“. Kitą kartą telefonu bus galima atrakinti „<ph name="DEVICE_TYPE" />“. Funkciją „Smart Lock“ galite išjungti „Nustatymų“ skiltyje.</translation>
 <translation id="936646668635477464">Fotoaparatas ir mikrofonas</translation>
 <translation id="936801553271523408">Sistemos diagnostikos duomenys</translation>
+<translation id="937053962468712792">Pašalinti „<ph name="DEVICE" />“ iš <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Pataisyti plėtinį</translation>
 <translation id="938568644810664664">Pabandykite pasakyti „Hey Google, what song is this?“ („Ok Google“, kokia tai yra daina?) arba „Hey Google, what's on my screen?“ („Ok Google“, kas yra mano ekrane?)</translation>
 <translation id="938623846785894166">Neįprastas failas</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index b05423a..a3ae097 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -897,6 +897,7 @@
 <translation id="1829129547161959350">Pingvīns</translation>
 <translation id="1829192082282182671">Tālināt</translation>
 <translation id="1830550083491357902">Nav pierakstījies</translation>
+<translation id="1831848493690504725">Mēs nevaram izveidot savienojumu ar Google, izmantojot pievienoto tīklu. Izvēlieties citu tīklu vai pārbaudiet sava tīkla iestatījumus vai starpniekservera iestatījumus (ja izmantojat starpniekserveri).</translation>
 <translation id="1832459821645506983">Jā, labi</translation>
 <translation id="1832511806131704864">Tālruņa iestatījumu izmaiņas atjauninātas</translation>
 <translation id="1832848789136765277">Lai vienmēr varētu piekļūt saviem sinhronizētajiem datiem, apstipriniet savu identitāti.</translation>
@@ -2195,6 +2196,7 @@
 <translation id="3021065318976393105">Izmantojot akumulatoru</translation>
 <translation id="3021066826692793094">Tauriņš</translation>
 <translation id="3021678814754966447">Skatīt rāmja a&amp;votu</translation>
+<translation id="3022361196600037287">Ierīce “<ph name="DEVICE" />” tiks noņemta no šī Chromebook datora un netiks saglabāta kontā <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Nesapratu.</translation>
 <translation id="3023464535986383522">Atlasīt, lai izrunātu</translation>
 <translation id="3024374909719388945">Lietot 24 stundu pulksteni</translation>
@@ -3733,6 +3735,7 @@
 <translation id="4535127706710932914">Noklusējuma profils</translation>
 <translation id="4535767533210902251">Pirkstu nospiedumu sensors atrodas tastatūras augšējā labajā stūrī. Viegli pieskarieties tam ar jebkuru pirkstu.</translation>
 <translation id="4536140153723794651">Vietnes, kas vienmēr drīkst izmantot sīkfailus</translation>
+<translation id="4536769240747010177">Piesaistes iespējas:</translation>
 <translation id="4538417792467843292">Dzēst vārdu</translation>
 <translation id="4538792345715658285">Instalēts atbilstoši uzņēmuma politikai.</translation>
 <translation id="4541123282641193691">Nevarēja verificēt kontu. Mēģiniet vēlreiz vai restartējiet Chromebook datoru.</translation>
@@ -3760,6 +3763,7 @@
 <translation id="4561893854334016293">Nav nesen mainītu atļauju</translation>
 <translation id="4562155214028662640">Pievienot pirksta nospiedumu</translation>
 <translation id="4563210852471260509">Sākotnējā ievades valoda ir ķīniešu valoda</translation>
+<translation id="4563382028841851106">Noņemt no konta</translation>
 <translation id="4563880231729913339">3. pirksts</translation>
 <translation id="4564245002465020751">Iestatīšanas pabeigšana tālrunī</translation>
 <translation id="4565377596337484307">Slēpt paroli</translation>
@@ -4736,6 +4740,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> pieprasa:</translation>
 <translation id="5534304873398226603">Atmest fotoattēlu vai video</translation>
 <translation id="5537725057119320332">Apraidīt</translation>
+<translation id="5539070192556911367">Nevar izveidot savienojumu ar Google</translation>
 <translation id="5539221284352502426">Ievadīto paroli noraidīja serveris. Iespējamie iemesli: parole ir pārāk īsa; parolē ir jābūt ietvertiem cipariem vai simboliem; parolei ir jāatšķiras no iepriekšējām parolēm.</translation>
 <translation id="5541694225089836610">Jūsu administrators ir atspējojis darbību.</translation>
 <translation id="5542132724887566711">Profils</translation>
@@ -4799,6 +4804,7 @@
 <translation id="5585912436068747822">Formatēšana neizdevās</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Notiek lietotņu ielāde...</translation>
+<translation id="5590418976913374224">Atskaņot signālu ierīces palaišanas laikā</translation>
 <translation id="5592595402373377407">Vēl nav pieejams pietiekami daudz datu.</translation>
 <translation id="5595307023264033512">Kopējais krātuves apjoms, ko izmanto vietnes: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Rediģēt adresi</translation>
@@ -4808,7 +4814,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Nedrīkst izveidot savienojumu ar MIDI ierīcēm</translation>
 <translation id="5602765853043467355">Notīrīt grāmatzīmes, vēsturi, paroles un citu saturu šajā ierīcē</translation>
-<translation id="5605623530403479164">Citas meklētājprogrammas</translation>
 <translation id="5605758115928394442">Uz jūsu tālruni tika nosūtīts paziņojums, lai apstiprinātu, ka tas esat jūs.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Šis paplašinājums ir bloķēts}zero{Šie paplašinājumi ir bloķēti}one{Šie paplašinājumi ir bloķēti}other{Šie paplašinājumi ir bloķēti}}</translation>
 <translation id="560834977503641186">Wi-Fi sinhronizācija, uzzināt vairāk</translation>
@@ -5105,6 +5110,7 @@
 <translation id="5909379458939060601">Vai dzēst šo profilu un pārlūkošanas datus?</translation>
 <translation id="5910363049092958439">Saglabāt attēlu &amp;kā...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ir bezsaistē</translation>
+<translation id="5911030830365207728">Google tulkotājs</translation>
 <translation id="5911533659001334206">Īsinājumtaustiņu skatīšana</translation>
 <translation id="5914724413750400082">Modulis (<ph name="MODULUS_NUM_BITS" /> biti):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6177,6 +6183,10 @@
 <translation id="6943939122536910181">Pārtraukts savienojums ar ierīci <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Atlasīt</translation>
 <translation id="694592694773692225">Šajā lapā ir bloķēta novirzīšana.</translation>
+<translation id="6947015141909171112">Jums tiek rādītas receptes, pamatojoties uz jūsu nesenajām meklēšanas darbībām saistībā ar receptēm.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Varat pārvaldīt iestatījumus, izmantojot kartītes izvēlni, vai skatīt citas opcijas sadaļā “Chrome pielāgošana”.</translation>
 <translation id="6949434160682548041">Parole (neobligāti)</translation>
 <translation id="6950627417367801484">Atjaunot lietotnes</translation>
 <translation id="6952242901357037157">Šeit varat arī parādīt paroles no sava <ph name="BEGIN_LINK" />Google konta<ph name="END_LINK" /></translation>
@@ -6344,6 +6354,7 @@
 <translation id="7102687220333134671">Automātiskie atjauninājumi ir ieslēgti.</translation>
 <translation id="7102832101143475489">Iestājās pieprasījuma noildze.</translation>
 <translation id="710640343305609397">Atvērt tīkla iestatījumus</translation>
+<translation id="7107609441453408294">Atskaņot to pašu audio saturu visos skaļruņos</translation>
 <translation id="7108338896283013870">Slēpt</translation>
 <translation id="7108668606237948702">ievadīt</translation>
 <translation id="7108933416628942903">Bloķēt tūlīt</translation>
@@ -6574,6 +6585,7 @@
 <translation id="7364745943115323529">Apraidīt...</translation>
 <translation id="7364796246159120393">Izvēlēties failu</translation>
 <translation id="7365076891350562061">Attēlojuma lielums monitorā</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> — piesprausts</translation>
 <translation id="7366316827772164604">Notiek tuvumā esošu ierīču meklēšana...</translation>
 <translation id="7366415735885268578">Vietnes pievienošana</translation>
 <translation id="7366909168761621528">Pārlūkošanas dati</translation>
@@ -6970,6 +6982,7 @@
 <translation id="7737115349420013392">Notiek savienošana pārī ar ierīci <ph name="DEVICE_NAME" />...</translation>
 <translation id="7737846262459425222">Jebkurā brīdī varat to mainīt sadaļā Iestatījumi &gt; Google asistents &gt; Ekrāna konteksts.</translation>
 <translation id="7737948071472253612">Nedrīkst izmantot kameru</translation>
+<translation id="77381465218432215">Rādīt uzsvara zīmes un speciālās rakstzīmes</translation>
 <translation id="7740996059027112821">Standarta</translation>
 <translation id="7741307896921365578">Tiek iespējots pārlūka līmeņa sānu panelis ar noderīgu un pastāvīgu veidu, kā piekļūt lasīšanas sarakstam un grāmatzīmēm.</translation>
 <translation id="7742558784808143689">Vai notīrīt vietnes <ph name="SITE_NAME" />, visu tās apakšvietņu datus un atļaujas, kā arī instalētās lietotnes?</translation>
@@ -7759,6 +7772,7 @@
 <translation id="8486666913807228950">Iemesls: sarakstā “Piespiedu atvēršanas pārlūks” tika konstatēta inversā kārtula “<ph name="REVERT_RULE" />”.</translation>
 <translation id="848666842773560761">Lietotne mēģina piekļūt kamerai. Lai atļautu piekļuvi, izslēdziet kameras konfidencialitātes slēdzi.</translation>
 <translation id="8487678622945914333">Tuvināt</translation>
+<translation id="8487699605742506766">Tīklājs</translation>
 <translation id="8489156414266187072">Personiski ieteikumi tiek rādīti tikai jūsu kontā</translation>
 <translation id="8490896350101740396">Tika atjauninātas šādas Kioska lietotnes: “<ph name="UPDATED_APPS" />”. Lūdzu, atkārtoti palaidiet ierīci, lai pabeigtu atjaunināšanas procesu.</translation>
 <translation id="8492685019009920170">Ar pirkstu pieskarieties pirksta nospieduma sensoram. Jūsu dati tiek glabāti drošībā un vienmēr atrodas tikai jūsu ierīcē (<ph name="DEVICE_TYPE" />).</translation>
@@ -8254,6 +8268,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{“<ph name="TAB_TITLE" />”}=1{“<ph name="TAB_TITLE" />” un vēl 1 cilne}zero{“<ph name="TAB_TITLE" />” un vēl # cilnes}one{“<ph name="TAB_TITLE" />” un vēl # cilne}other{“<ph name="TAB_TITLE" />” un vēl # cilnes}}</translation>
 <translation id="8977811652087512276">Nepareiza parole vai bojāts fails.</translation>
 <translation id="8978154919215542464">Ieslēgta — sinhronizēt visu</translation>
+<translation id="8978670037548431647">Atsvaidzināt piesaistes iespējas</translation>
 <translation id="897939795688207351">Vietnē <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Atsauksmju pārskati</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> — avārija</translation>
@@ -8518,6 +8533,7 @@
 <translation id="935854577147268200">Smart Lock tālrunis ir mainīts. Ievadiet paroli, lai atjauninātu Smart Lock. Nākamajā reizē šīs ierīces <ph name="DEVICE_TYPE" /> atbloķēšanai tiks izmantots jūsu tālrunis. Iestatījumos varat izslēgt Smart Lock.</translation>
 <translation id="936646668635477464">Kamera un mikrofons</translation>
 <translation id="936801553271523408">Sistēmas diagnostikas dati</translation>
+<translation id="937053962468712792">Vai noņemt ierīci “<ph name="DEVICE" />” no konta <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Labot paplašinājumu</translation>
 <translation id="938568644810664664">Varat izmantot frāzi “Hey Google, what song is this?” (Ok Google, kas šī ir par dziesmu?) vai “Hey Google, what's on my screen?” (Ok Google, kas ir redzams manā ekrānā?).</translation>
 <translation id="938623846785894166">Neparasts fails</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index 2cc6d8f..3b31523 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -4840,7 +4840,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Не им е дозволено да се поврзуваат со MIDI-уредите</translation>
 <translation id="5602765853043467355">Исчисти обележувачи, историја, лозинки и друго од уредов</translation>
-<translation id="5605623530403479164">Други пребарувачи</translation>
 <translation id="5605758115928394442">Испратено ви е известување на телефонот за потврда на вашиот идентитет.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Екстензијава е блокирана}one{Екстензииве се блокирани}other{Екстензииве се блокирани}}</translation>
 <translation id="560834977503641186">Синхронизирање на Wi-Fi, дознајте повеќе</translation>
@@ -5141,6 +5140,7 @@
 <translation id="5909379458939060601">Да се избрише профилов и податоците од прелистувањето?</translation>
 <translation id="5910363049092958439">Сни&amp;ми слика како…</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> е офлајн</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">Прикажувач на кратенки</translation>
 <translation id="5914724413750400082">Модул (бита: <ph name="MODULUS_NUM_BITS" />):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 51b5fd8..8135c62a 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">നിങ്ങളുടെ മൈക്രോഫോണും ക്യാമറയും ഉപയോഗിക്കുക</translation>
 <translation id="1005333234656240382">ADB ഡീബഗ് ചെയ്യൽ പ്രവർത്തനക്ഷമമാക്കണോ?</translation>
 <translation id="1006873397406093306">സൈറ്റുകളിലെ നിങ്ങളുടെ ഡാറ്റ വായിക്കാനും മാറ്റാനും ഈ വിപുലീകരണത്തിന് കഴിയും. വിപുലീകരണത്തിന് ഏതൊക്കെ സൈറ്റുകളിലേക്ക് ആക്‌സസ് വേണമെന്നത് നിങ്ങൾക്ക് നിയന്ത്രിക്കാം</translation>
+<translation id="1007057452468855774">Google Play Store ഓണാക്കുക</translation>
 <translation id="1008186147501209563">ബുക്ക്‌മാർക്കുകൾ എക്‌സ്‌പോർട്ട് ചെയ്യുക</translation>
 <translation id="1008557486741366299">ഇപ്പോഴല്ല</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" /> ലൊക്കേഷൻ</translation>
 <translation id="1009663062402466586">ഗെയിം നിയന്ത്രണങ്ങൾ ഇപ്പോൾ ലഭ്യമാണ്</translation>
 <translation id="1010498023906173788">ഈ ടാബ് ഒരു സീരിയൽ പോർട്ടുമായി കണക്റ്റ് ചെയ്‌തിരിക്കുന്നു.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{പേജ് പ്രതികരിക്കുന്നില്ല}other{പേജുകൾ പ്രതികരിക്കുന്നില്ല}}</translation>
+<translation id="1011003645819296594">സംരക്ഷിച്ച ഉപകരണങ്ങൾ</translation>
 <translation id="1011355516189274711">ടെക്‌സ്റ്റ് ടു സ്‌പീച്ച് ശബ്‌ദം</translation>
 <translation id="1012794136286421601">നിങ്ങളുടെ ഡോക്‌സ്, ഷീറ്റുകൾ, സ്ലൈഡുകൾ, ഡ്രോയിംഗ് ഫയലുകൾ എന്നിവ സമന്വയിപ്പിക്കുന്നു. അവ ഓൺലൈനിലോ ഓഫ്‌ലൈനിലോ ആക്‌സസ് ചെയ്യുന്നതിന് Google ഡ്രൈവ് ആപ്പ് തുറക്കുക.</translation>
 <translation id="1012876632442809908">USB-C ഉപകരണം (മുൻവശത്തെ പോർട്ട്)</translation>
@@ -493,6 +495,7 @@
 <translation id="1470350905258700113">ഈ ഉപകരണം ഉപയോഗിക്കുക</translation>
 <translation id="1470946456740188591">കാരറ്റ് ബ്രൗസ് ചെയ്യൽ ഓണാക്കാനോ ഓഫാക്കാനോ, Ctrl+Search+7 എന്ന കുറുക്കുവഴി ഉപയോഗിക്കുക</translation>
 <translation id="1472675084647422956">കൂടുതൽ‍ കാണിക്കുക</translation>
+<translation id="1473223074251193484">ടെതറിംഗ് കോൺഫിഗറേഷൻ സജ്ജീകരിക്കുക</translation>
 <translation id="1474785664565228650">മൈക്രോഫോൺ ക്രമീകരണത്തിൽ മാറ്റം വരുത്തിയത് കാരണം Parallels Desktop വീണ്ടും ആരംഭിക്കേണ്ടതുണ്ട്. തുടരാൻ, Parallels Desktop വീണ്ടും ആരംഭിക്കുക.</translation>
 <translation id="1474893630593443211">നിങ്ങൾ കാണുന്ന പരസ്യങ്ങളിൽ കൂടുതൽ നിയന്ത്രണം</translation>
 <translation id="1475502736924165259">മറ്റ് വിഭാഗങ്ങളിലൊന്നും യോജിക്കാത്ത സര്‍‌ട്ടിഫിക്കറ്റുകള്‍‌ നിങ്ങളുടെ ഫയലിലുണ്ട്</translation>
@@ -1112,6 +1115,7 @@
 <translation id="2044014337866019681">ഈ സെഷൻ അൺലോക്ക് ചെയ്യാൻ, നിങ്ങൾ <ph name="ACCOUNT" /> പരിശോധിച്ചുറപ്പിക്കുന്നുവെന്ന് ഉറപ്പാക്കുക.</translation>
 <translation id="204497730941176055">Microsoft സര്‍‌ട്ടിഫിക്കറ്റ് ടെംപ്ലേറ്റ് നാമം</translation>
 <translation id="2045117674524495717">കീബോർഡ് കുറുക്കുവഴി സഹായി</translation>
+<translation id="2045211794962848221">ഈ നിർദ്ദിഷ്ട സന്ദേശം നിങ്ങൾ വീണ്ടും കാണില്ല</translation>
 <translation id="2045969484888636535">കുക്കികളെ തടയുന്നത് തുടരുക</translation>
 <translation id="204622017488417136">നിങ്ങളുടെ ഉപകരണം Chrome-ന്റെ മുമ്പ് ഇൻസ്‌റ്റാൾ ചെയ്‌ത പതിപ്പിലേക്ക് മടങ്ങും. എല്ലാ ഉപയോക്തൃ അക്കൗണ്ടുകളും പ്രാദേശിക ഡാറ്റയും നീക്കംചെയ്യും. ഇത് പഴയപടിയാക്കാനാകില്ല.</translation>
 <translation id="2046702855113914483">റാമെൻ</translation>
@@ -3796,6 +3800,7 @@
 <translation id="4594577641390224176">സിസ്റ്റത്തിന്റെ ആമുഖ പേജ് തിരയുകയാണോ? ഇവിടെ സന്ദർശിക്കൂ</translation>
 <translation id="4595560905247879544">മാനേജർക്ക് (<ph name="CUSTODIAN_NAME" />) മാത്രമേ ആപ്‌സും വിപുലീകരണങ്ങളും പരിഷ്‌ക്കരിക്കാനാകൂ.</translation>
 <translation id="4596295440756783523">ഈ സെര്‍‌വറുകളെ തിരിച്ചറിയുന്ന സര്‍‌ട്ടിഫിക്കറ്റുകള്‍‌ നിങ്ങളുടെ ഫയലിലുണ്ട്</translation>
+<translation id="4598345735110653698">പാസ്‌കീകൾ മാനേജ് ചെയ്യുക</translation>
 <translation id="4598556348158889687">സ്‌റ്റോറേജ് മാനേജ്‌മെന്റ്</translation>
 <translation id="4598776695426288251">ഒന്നിലധികം ഉപകരണങ്ങളിൽ നിന്ന് ലഭ്യമായ വൈഫൈ</translation>
 <translation id="4601426376352205922">'വായിക്കാത്തവ' എന്ന് അടയാളപ്പെടുത്തുക</translation>
@@ -4021,6 +4026,7 @@
 <translation id="4823894915586516138">നിങ്ങളുടെ ഫോണിൽ നിന്ന് ആക്‌സസ് ചെയ്യുന്ന എല്ലാ വിവരങ്ങളും ഉൾപ്പെടെ, ഈ <ph name="DEVICE_TYPE" /> ഉപകരണത്തിലെ ഡാറ്റ ഈ പിൻ അല്ലെങ്കിൽ പാസ്‌വേഡ് ഉപയോഗിച്ച് പരിരക്ഷിക്കുന്നു</translation>
 <translation id="4824037980212326045">Linux ബാക്കപ്പെടുത്ത് പുനഃസ്ഥാപിക്കൽ</translation>
 <translation id="4824958205181053313">സമന്വയം റദ്ദാക്കണോ?</translation>
+<translation id="4825532258163983651">പാസ്‌കീ ഇല്ലാതാക്കാനാകുന്നില്ല</translation>
 <translation id="4827675678516992122">കണക്റ്റ് ചെയ്യാനായില്ല</translation>
 <translation id="4827784381479890589">Chrome ബ്രൗസറിൽ, മെച്ചപ്പെടുത്തിയ സ്പെൽ ചെക്ക് (സ്‌പെല്ലിംഗ് നിർദ്ദേശങ്ങൾക്ക് ടെക്‌സ്റ്റ് Google-ന് അയയ്‌ക്കുന്നു)</translation>
 <translation id="4827904420700932487">ഈ ചിത്രത്തിന് QR കോഡ് സൃഷ്‌ടിക്കുക</translation>
@@ -4283,6 +4289,7 @@
 <translation id="5087249366037322692">ഒരു മൂന്നാം കക്ഷി ചേർത്തത്</translation>
 <translation id="5087580092889165836">കാർഡ് ചേർക്കുക</translation>
 <translation id="5088534251099454936">RSA എന്‍‌ക്രിപ്‌ഷനോടുകൂടിയ PKCS #1 SHA-512</translation>
+<translation id="5089763948477033443">സൈഡ് പാനലിന്റെ വലുപ്പം മാറ്റുന്ന ഹാൻഡിൽ</translation>
 <translation id="5090637338841444533">നിങ്ങളുടെ ക്യാമറയുടെ സ്ഥാനം ട്രാക്ക് ചെയ്യാൻ അനുവാദമില്ല</translation>
 <translation id="5093569275467863761">അദൃശ്യ ബാക്ക്-ഫോർവേഡ് കാഷെ സബ്ഫ്രെയിം: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Files ആപ്പിൽ നിന്നോ മറ്റ് ആപ്പുകളിൽ നിന്നോ ഈ ആപ്പ് ഉപയോഗിച്ച് പിന്തുണയ്ക്കുന്ന ഫയലുകൾ നിങ്ങൾക്ക് തുറക്കാനും എഡിറ്റ് ചെയ്യാനുമാകും. ഡിഫോൾട്ടായി ഏതൊക്കെ ഫയലുകൾ തുറക്കാൻ ഈ ആപ്പിന് കഴിയുമെന്നത് നിയന്ത്രിക്കാൻ, <ph name="BEGIN_LINK" />നിങ്ങളുടെ ഉപകരണത്തിൽ ഡിഫോൾട്ട് ആപ്പുകൾ എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് അറിയുക<ph name="END_LINK" />.</translation>
@@ -4448,6 +4455,7 @@
 <translation id="5258992782919386492">ഈ ഉപകരണത്തിൽ ഇൻസ്‌റ്റാൾ ചെയ്യുക</translation>
 <translation id="5260334392110301220">സ്‌മാർട്ട് ക്വോട്ടുകൾ</translation>
 <translation id="5260508466980570042">ക്ഷമിക്കൂ, നിങ്ങളുടെ ഇമെയില്‍ അല്ലെങ്കില്‍ പാസ്‍വേഡ് പരിശോധിച്ചുറപ്പിക്കാൻ കഴിഞ്ഞില്ല. വീണ്ടും ശ്രമിക്കുക.</translation>
+<translation id="5260958083445173099">സാധ്യമാകുമ്പോഴെല്ലാം വെബ്‌സൈറ്റുകൾ നിങ്ങൾ മുൻഗണന നൽകുന്ന ഭാഷകളിൽ ഉള്ളടക്കം കാണിക്കും</translation>
 <translation id="5261683757250193089">വെബ് സ്‌റ്റോറിൽ തുറക്കുക</translation>
 <translation id="5262178194499261222">പാസ്‌വേഡ് നീക്കം ചെയ്യുക</translation>
 <translation id="5262784498883614021">നെറ്റ്‌വർക്കിലേക്ക് സ്വയമേവ കണക്റ്റ് ചെയ്യുക</translation>
@@ -4488,6 +4496,7 @@
 <translation id="5294097441441645251">ചെറിയക്ഷരം അല്ലെങ്കിൽ അണ്ടർസ്കോർ ഉപയോഗിച്ച് ആരംഭിക്കണം</translation>
 <translation id="5294618183559481278">നിങ്ങളുടെ ഉപകരണത്തിന് മുന്നിലുള്ള ആളുകളെ തിരിച്ചറിയാൻ <ph name="DEVICE_TYPE" /> ബിൽറ്റ് ഇൻ സെൻസർ ഉപയോഗിക്കുന്നു. ഉടൻ തന്നെ ഉപകരണത്തിൽ എല്ലാ ഡാറ്റയും പ്രോസസ് ചെയ്ത് ഇല്ലാതാക്കുന്നു. സെൻസർ ഡാറ്റ ഒരിക്കലും Google-ന് അയയ്ക്കില്ല. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">സംഭാഷണ ഫീഡ്‌ബാക്ക് കേൾക്കുക, അതുവഴി നിങ്ങൾക്ക് സ്‌ക്രീനിൽ നോക്കാതെ ഉപകരണം ഉപയോഗിക്കാം. കണക്‌റ്റ് ചെയ്‌ത ഉപകരണത്തിൽ ബ്രെയ്‌ലി ഫീഡ്ബാക്ക് ലഭ്യമാണ്.</translation>
+<translation id="5297005732522718715">ടെതറിംഗ് കോൺഫിഗറേഷൻ റീഫ്രഷ് ചെയ്യുക</translation>
 <translation id="5297082477358294722">പാസ്‌വേഡ് സംരക്ഷിച്ചു. നിങ്ങളുടെ <ph name="SAVED_PASSWORDS_STORE" /> എന്നതിൽ സംരക്ഷിച്ച പാസ്‌വേഡുകൾ കാണുക, മാനേജ് ചെയ്യുക.</translation>
 <translation id="5297946558563358707">ആരെങ്കിലും നിങ്ങളുടെ സ്ക്രീനിലേക്ക് നോക്കുമ്പോൾ, സ്ക്രീനിന്റെ ചുവടെ വലതുഭാഗത്ത് സ്വകാര്യതാ ഐ ഐക്കൺ കാണിക്കും</translation>
 <translation id="5298219193514155779">തീം സൃഷ്‌ടിച്ചത്</translation>
@@ -4658,11 +4667,13 @@
 <translation id="5466374726908360271">ഒട്ടിച്ച്, “<ph name="SEARCH_TERMS" />” എന്നതിനായി തിരയുക</translation>
 <translation id="5467207440419968613"><ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> എന്നിവ ബ്ലോക്ക് ചെയ്‌തു</translation>
 <translation id="5468173180030470402">ഫയൽ പങ്കിടലുകൾ തിരയുന്നു</translation>
+<translation id="5468330507528805311">ടെതറിംഗ് നില:</translation>
 <translation id="5468881191994555667">ഫയൽ തിരഞ്ഞെടുക്കുക</translation>
 <translation id="5469852975082458401">ടെക്‌സ്‌റ്റ് കഴ്‌സർ ഉപയോഗിച്ച് നിങ്ങൾക്ക് പേജുകൾക്കിടയിൽ നാവിഗേറ്റ് ചെയ്യാനാകും. ഓഫാക്കാൻ F7 അമർത്തുക.</translation>
 <translation id="5470735824776589490">പവർവാഷ് ഉപയോഗിച്ച് നിങ്ങളുടെ ഉപകരണം റീസെറ്റ് ചെയ്യുന്നതിന് മുമ്പ് റീസ്റ്റാർട്ട് ചെയ്യേണ്ടതുണ്ട്. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">അവിടെയുണ്ടോ! ഞാനാണ് നിങ്ങളുടെ ടെക്‌സ്റ്റ് ടു സ്‌പീച്ച് വോയ്‌സ്.</translation>
 <translation id="5472627187093107397">ഈ സൈറ്റിനുള്ള പാസ്‌വേഡുകൾ സംരക്ഷിക്കുക</translation>
+<translation id="5473062644742711742">Chrome വെബ് സ്‌റ്റോറിൽ കൂടുതൽ ഉപയോഗസഹായി ടൂളുകൾ കണ്ടെത്തുക</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">തുടരുന്നതിലൂടെ, Google, നിങ്ങളുടെ കുട്ടിയുടെ മൊബൈൽ സേവനദാതാവ്, ഈ ഉപകരണത്തിന്റെ നിർമ്മാതാവ് എന്നിവരിൽ നിന്ന് ഈ ഉപകരണം, ഒരു പക്ഷേ സെല്ലുലാർ ഡാറ്റ ഉപയോഗിച്ച് അപ്ഡേറ്റുകളും ആപ്പുകളും സ്വയമേവ ഡൗൺലോഡോ ഇൻസ്റ്റാളോ ചെയ്തേക്കാമെന്ന് നിങ്ങൾ അംഗീകരിക്കുന്നു. ഇവയിൽ ചില ആപ്പുകൾ, ആപ്പ് വഴിയുള്ള വാങ്ങലുകൾ ഓഫർ ചെയ്യുന്നവയാകാം.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{പിന്നിൽ ഒരു പ്രതീകമെങ്കിലും ഉണ്ടാകണം}other{പിന്നിൽ # പ്രതീകങ്ങളെങ്കിലും ഉണ്ടാകണം}}</translation>
@@ -4810,7 +4821,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI ഉപകരണങ്ങളിലേക്ക് കണക്‌റ്റ് ചെയ്യാൻ അനുവാദമില്ല</translation>
 <translation id="5602765853043467355">ഈ ഉപകരണത്തിൽ നിന്ന് ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ എന്നിവയും മറ്റും മായ്ക്കുക</translation>
-<translation id="5605623530403479164">മറ്റ് തിരയൽ യന്ത്രങ്ങൾ</translation>
 <translation id="5605758115928394442">ഇത് നിങ്ങൾ തന്നെയാണെന്ന് സ്ഥിരീകരിക്കാൻ ഫോണിലേക്ക് ഒരു അറിയിപ്പ് അയച്ചിട്ടുണ്ട്.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ഈ വിപുലീകരണം ബ്ലോക്ക് ചെയ്‌തു}other{ഈ വിപുലീകരണങ്ങൾ ബ്ലോക്ക് ചെയ്‌തു}}</translation>
 <translation id="560834977503641186">വൈഫൈ സമന്വയം, കൂടുതലറിയുക</translation>
@@ -4935,6 +4945,7 @@
 <translation id="5734362860645681824">കമ്മ്യൂണിക്കേഷനുകൾ</translation>
 <translation id="5734697361979786483">ഫയൽ പങ്കിടൽ ചേർക്കുക</translation>
 <translation id="5736796278325406685">ശരിയായ ഉപയോക്തൃനാമം നൽകുക</translation>
+<translation id="5738093759615225354">നിങ്ങളുടെ കമ്പ്യൂട്ടറിലേക്ക് സൈൻ ഇൻ ചെയ്യാൻ ഈ പാസ്‌കീ ആവശ്യമാണ്</translation>
 <translation id="5739017626473506901">സ്‌കൂൾ അക്കൗണ്ട് ചേർക്കുന്നതിന് <ph name="USER_NAME" /> എന്നയാളെ സഹായിക്കാൻ സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="5739235828260127894">പരിശോധിച്ചുറപ്പിക്കാൻ കാത്തിരിക്കുന്നു. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">വളരെ വലുത്</translation>
@@ -5096,6 +5107,7 @@
 <translation id="589541317545606110"><ph name="VISUAL_SEARCH_PROVIDER" />-ന്റെ സഹായത്തോടെ പേജ് തിരയുക</translation>
 <translation id="5896436821193322561">അനുവദിക്കരുത്</translation>
 <translation id="5900186025777217044">Smart Lock-ൽ മാറ്റം വന്നിരിക്കുന്നു</translation>
+<translation id="5900243355162006650">ടെതറിംഗ് കോൺഫിഗറേഷൻ:</translation>
 <translation id="5900302528761731119">Google പ്രൊഫൈൽ ഫോട്ടോ</translation>
 <translation id="590036993063074298">മിററിംഗ് നിലവാര വിശദാംശങ്ങൾ</translation>
 <translation id="5901069264981746702">നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ഡാറ്റ <ph name="DEVICE_TYPE" /> എന്നതിൽ സുരക്ഷിതമായി സംഭരിക്കുന്നു, ഒരിക്കലും അതിൽ നിന്ന് പുറത്ത് പോകില്ല. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation>
@@ -5110,6 +5122,7 @@
 <translation id="5909379458939060601">ഈ പ്രൊഫൈലും ബ്രൗസിംഗ് ഡാറ്റയും ഇല്ലാതാക്കണോ?</translation>
 <translation id="5910363049092958439">ചിത്രം ഇതായി സം&amp;രക്ഷിക്കുക...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ഓഫ്‌ലൈൻ ആണ്</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">ഷോട്ട്കട്ട് വ്യൂവർ</translation>
 <translation id="5914724413750400082">മൊഡ്യൂലസ് (<ph name="MODULUS_NUM_BITS" /> ബിറ്റുകൾ):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5400,6 +5413,7 @@
 <translation id="6196640612572343990">മൂന്നാം കക്ഷി കുക്കികള്‍ ബ്ലോക്കുചെയ്യുക</translation>
 <translation id="6196854373336333322">ഈ "<ph name="EXTENSION_NAME" />" വിപുലീകരണം നിങ്ങളുടെ പ്രോക്‌സി ക്രമീകരണത്തെ നിയന്ത്രിക്കുന്നുണ്ട്, എന്നുവെച്ചാൽ നിങ്ങൾ ഓൺലൈനിൽ ചെയ്യുന്ന എല്ലാ പ്രവർത്തിയിലും മാറ്റം വരുത്താനും തകർക്കാനും രഹസ്യങ്ങൾ ചോർത്താനും കഴിയും. എന്തുകൊണ്ട് ഈ മാറ്റം സംഭവിച്ചത് എന്നതിനെക്കുറിച്ച് നിങ്ങൾക്കുറപ്പില്ലെങ്കിൽ, അത് നിങ്ങൾക്ക് ആവശ്യമില്ലാത്ത കാര്യമായിരിക്കാം.</translation>
 <translation id="6197128521826316819">ഈ പേജിന് QR കോഡ് സൃഷ്‌ടിക്കുക</translation>
+<translation id="6197223946499512637">ഈ പാസ്‌കീകൾ ഈ കമ്പ്യൂട്ടറിലെ Windows Hello-യിൽ സംഭരിച്ചിരിക്കുന്നു. അവ നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിച്ചിട്ടില്ല.</translation>
 <translation id="6198252989419008588">PIN മാറ്റുക</translation>
 <translation id="6200047250927636406">ഫയൽ നിരസിക്കുക</translation>
 <translation id="6200151268994853226">വിപുലീകരണം മാനേജ് ചെയ്യുക</translation>
@@ -5697,6 +5711,7 @@
 <translation id="6482559668224714696">പൂർണ്ണസ്‌ക്രീൻ മാഗ്‌നിഫയർ</translation>
 <translation id="6483485061007832714">ഡൗൺലോഡ് തുറക്കുക</translation>
 <translation id="6483805311199035658"><ph name="FILE" /> തുറക്കുന്നു...</translation>
+<translation id="6486301003991593638">പാസ്‌കീകൾ മാനേജ് ചെയ്യാൻ, Windows-ന്റെ ഒരു പുതിയ പതിപ്പ് ഉപയോഗിക്കുക</translation>
 <translation id="6488384360522318064">ഭാഷ തിരഞ്ഞെടുക്കുക</translation>
 <translation id="648927581764831596">ഒന്നും ലഭ്യമല്ല</translation>
 <translation id="6490471652906364588">USB-C ഉപകരണം (വലത് പോർട്ട്)</translation>
@@ -6283,6 +6298,7 @@
 <translation id="7029307918966275733">Crostini ഇൻസ്‌റ്റാൾ ചെയ്‌തിട്ടില്ല. ക്രെഡിറ്റുകൾ കാണാൻ Crostini ഇൻസ്‌റ്റാൾ ചെയ്യുക.</translation>
 <translation id="7029809446516969842">പാസ്‌വേഡുകള്‍</translation>
 <translation id="7030304022046916278">URL-കൾ പരിശോധിക്കുന്നതിന് അവ സുരക്ഷിത ബ്രൗസിംഗിലേക്ക് അയയ്‌ക്കുന്നു</translation>
+<translation id="7030695672997239647">ഒരു ടാബിൽ വലത്-ക്ലിക്ക് ചെയ്ത് "ഗ്രൂപ്പിലേക്ക് ടാബ് ചേർക്കുക" തിരഞ്ഞെടുക്കുക, തുടർന്ന് "പുതിയ ഗ്രൂപ്പ്" തിരഞ്ഞെടുക്കുക</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - സീരിയൽ പോർട്ട് കണക്റ്റ് ചെയ്‌തിരിക്കുന്നു</translation>
 <translation id="7033616203784997570">ഇൻപുട്ടിന്റെ വലുപ്പം 62 പ്രതീകങ്ങളിൽ കൂടരുത്</translation>
 <translation id="7034692021407794547">പ്രത്യേക ബില്ലിംഗ് മാനേജ്മെന്റ് അവകാശങ്ങളുള്ള അഡ്മിൻ ആദ്യം അഡ്മിൻ കൺസോളിലെ Google Meet ഹാർഡ്‍വെയർ വിഭാഗത്തിൽ നൽകിയ Google Meet ഹാർഡ്‍വെയർ സേവന നിബന്ധനകൾ അംഗീകരിക്കണം.</translation>
@@ -7384,6 +7400,7 @@
 <translation id="8101987792947961127">അടുത്ത റീബൂട്ടിൽ പവർവാഷ് ആവശ്യമാണ്</translation>
 <translation id="81020759409809034">ലോക്കൽ ലൊക്കേഷൻ</translation>
 <translation id="8102139037507939978">system_logs.txt-ൽ നിന്ന് വ്യക്തിപരമായി തിരിച്ചറിയാനുതകുന്ന വിവരങ്ങൾ ഇല്ലാതാക്കുക.</translation>
+<translation id="810362914482827094">പാസ്‌കീകൾ തിരയുക</translation>
 <translation id="8104088837833760645">ഇ-സിം പ്രൊഫൈൽ ഡൗൺലോഡ് ചെയ്യുക</translation>
 <translation id="8105368624971345109">ഓഫാക്കുക</translation>
 <translation id="8107015733319732394">നിങ്ങളുടെ <ph name="DEVICE_TYPE" />-ൽ Google Play Store ഇൻസ്‌റ്റാൾ ചെയ്യുന്നു. ഇതിന് കുറച്ച് മിനിറ്റുകളെടുക്കാം.</translation>
@@ -7831,6 +7848,7 @@
 <translation id="8557022314818157177">നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ചേർക്കുന്നത് വരെ സുരക്ഷാ കീയിൽ സ്പർശിക്കുന്നത് തുടരുക</translation>
 <translation id="8557180006508471423">നിങ്ങളുടെ Mac-ലെ ലൊക്കേഷൻ സേവനങ്ങളിൽ "Google Chrome" ഓണാക്കുക</translation>
 <translation id="8557856025359704738"><ph name="NEXT_DATE_DOWNLOAD" />-നാണ് അടുത്ത ഡൗൺലോഡ്.</translation>
+<translation id="8559858985063901027">പാസ്‌കീകൾ</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{എല്ലാം &amp;പുതിയ വിൻഡോയിൽ തുറക്കുക}=1{&amp;പുതിയ വിൻഡോയിൽ തുറക്കുക}other{എല്ലാം ({COUNT}) &amp;പുതിയ വിൻഡോയിൽ തുറക്കുക}}</translation>
 <translation id="8561206103590473338">ആന</translation>
 <translation id="8561565784790166472">ജാഗ്രതയോടെ തുടരുക</translation>
@@ -7957,6 +7975,7 @@
 <translation id="8677212948402625567">എല്ലാം ചുരുക്കുക</translation>
 <translation id="867767487203716855">അടുത്ത അപ്ഡേറ്റ്</translation>
 <translation id="8677859815076891398">ആൽബങ്ങളൊന്നുമില്ല. <ph name="LINK_BEGIN" />Google Photos-ൽ<ph name="LINK_END" /> ആൽബം സൃഷ്‌ടിക്കുക.</translation>
+<translation id="8678378565142776698">റീസ്റ്റാർട്ട് ചെയ്ത് സ്വയമേവയുള്ള അപ്ഡേറ്റുകൾ നേടുക</translation>
 <translation id="8678538439778360739">നിങ്ങളുടെ സമന്വയിപ്പിക്കൽ പാസ്‌ഫ്രെയ്‌സ് ഉപയോഗിച്ച് <ph name="TIME" />-ന് ഡാറ്റ എൻക്രിപ്റ്റ് ചെയ്തു. ഇതിൽ Google Pay-യിൽ നിന്നുള്ള പേയ്മെന്റ് രീതികളും വിലാസങ്ങളും ഉൾപ്പെടുന്നില്ല.</translation>
 <translation id="8678582529642151449">ടാബുകൾ ഉള്ളിലേക്ക് ചുരുക്കില്ല</translation>
 <translation id="8678933587484842200">ഈ ആപ്പ് എങ്ങനെ ലോഞ്ച് ചെയ്യാനാണ് നിങ്ങൾ ആഗ്രഹിക്കുന്നത്?</translation>
@@ -8202,6 +8221,7 @@
 <translation id="8910987510378294980">ഉപകരണ ലിസ്‌റ്റ് മറയ്ക്കുക</translation>
 <translation id="8912362522468806198">Google അക്കൗണ്ട്</translation>
 <translation id="8912810933860534797">സ്വയമേവയുള്ള സ്‌കാൻ പ്രവർത്തനക്ഷമമാക്കുക</translation>
+<translation id="8915307125957890427">ഒരു ടാബിൽ വലത്-ക്ലിക്ക് ചെയ്ത് "ഗ്രൂപ്പിലേക്ക് ടാബ് ചേർക്കുക" തിരഞ്ഞെടുക്കുക, തുടർന്ന് "പുതിയ ഗ്രൂപ്പ്" തിരഞ്ഞെടുക്കുക</translation>
 <translation id="8915370057835397490">നിർദ്ദേശം ലോഡുചെയ്യുന്നു</translation>
 <translation id="8916476537757519021">ആൾമാറാട്ട സബ്‌ഫ്രെയിം: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" /> എന്നയാളുടെ <ph name="DEVICE_TYPE" /></translation>
@@ -8276,6 +8296,7 @@
 <translation id="8986362086234534611">മറന്നു</translation>
 <translation id="8986494364107987395">Google ലേക്ക് സ്വയമേവ ഉപയോഗ വിവരക്കണക്കുകളും ക്രാഷ് റിപ്പോര്‍ട്ടുകളും അയയ്ക്കുക</translation>
 <translation id="8987927404178983737">മാസം</translation>
+<translation id="8989359959810288806">ടെതറിംഗ് നില റീഫ്രഷ് ചെയ്യുക</translation>
 <translation id="8991520179165052608">സൈറ്റിന് നിങ്ങളുടെ മൈക്രോഫോൺ ഉപയോഗിക്കാനാകും</translation>
 <translation id="899384117894244799">നിയന്ത്രിത ഉപയോക്താവിനെ നീക്കം ചെയ്യുക</translation>
 <translation id="899403249577094719">നെറ്റ്‌സ്‌കേപ്പ് സര്‍‌ട്ടിഫിക്കറ്റ് ബേസ് URL</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index 17ab717..7237620 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -4686,6 +4686,7 @@
 <translation id="5470735824776589490">Үйлдвэрийн тохиргоонд нь буцааж оруулах замаар таны төхөөрөмжийг шинэчлэх боломжтой болохын өмнө дахин эхлүүлэх шаардлагатай. <ph name="LINK_BEGIN" />Нэмэлт мэдээлэл авах<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Сайн байна уу! Би таны бичвэрийг ярианд хувиргагч дуу хоолой байна.</translation>
 <translation id="5472627187093107397">Энэ сайтын хувьд нууц үгсийг хадгалах</translation>
+<translation id="5473062644742711742">Chrome Веб Дэлгүүр-с илүү олон хандалтын хэрэгслүүдийг олоорой</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">Үргэлжлүүлснээр та энэ төхөөрөмж нь мөн мобайл дата ашиглан Google, таны хүүхдийн оператор компани, уг төхөөрөмжийн үйлдвэрлэгчээс шинэчлэлт болон аппыг автоматаар татаж суулгаж болохыг зөвшөөрч байна. Эдгээр аппын зарим нь аппын худалдан авалтыг санал болгож магадгүй.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{ПИН хамгийн багадаа 1 тэмдэгттэй байх ёстой}other{ПИН хамгийн багадаа # тэмдэгттэй байх ёстой}}</translation>
@@ -4833,7 +4834,6 @@
 <translation id="5601503069213153581">ПИН</translation>
 <translation id="5601823921345337195">MIDI төхөөрөмжүүдэд холбогдохыг зөвшөөрөөгүй</translation>
 <translation id="5602765853043467355">Энэ төхөөрөмжөөс хавчуурга, түүх, нууц үг болон бусад зүйлийг устгах</translation>
-<translation id="5605623530403479164">Бусад хайлтын систем</translation>
 <translation id="5605758115928394442">Таныг мөн эсэхийг баталгаажуулах зорилгоор таны утсанд мэдэгдэл илгээсэн болно.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Энэ өргөтгөлийг блоклосон байна}other{Эдгээр өргөтгөлийг блоклосон байна}}</translation>
 <translation id="560834977503641186">Wi-Fi синк, Нэмэлт мэдээлэл авах</translation>
@@ -5135,6 +5135,7 @@
 <translation id="5909379458939060601">Энэ профайл болон интернэтээр үзсэн өгөгдлийг устгах уу?</translation>
 <translation id="5910363049092958439">Зургийг өөр өргөтгөлтэйгээр хадгалах...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> офлайн байна</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">Товчлол харагч</translation>
 <translation id="5914724413750400082">Модулиуд (<ph name="MODULUS_NUM_BITS" /> бит): 
 <ph name="MODULUS_HEX_DUMP" /> 
@@ -7969,6 +7970,7 @@
 <translation id="8666759526542103597">Хөтчид тулгуурласан сонирхсон зарын тохируулгын тухай</translation>
 <translation id="8667328578593601900"><ph name="FULLSCREEN_ORIGIN" /> нь бүрэн дэлгэцийн горимд шилжсэн бөгөөд таны хулганын курсорыг идэвхгүй болгосон.</translation>
 <translation id="8667760277771450375">Бид сайтуудад зарын спам болон залиланг зогсоох боломжийг олгохын зэрэгцээ сайт хоорондын хяналтыг хязгаарлах аргуудыг судалж байна.</translation>
+<translation id="8668378421690365723">Таны төхөөрөмж цаашид зохих ёсоор ажиллахгүй байж магадгүй бөгөөд аюулгүй байдал болон гүйцэтгэлийн асуудалтай тулгарч магадгүй.</translation>
 <translation id="8669284339312441707">Дулаан</translation>
 <translation id="8670537393737592796">Энд шуурхай буцаж ирэхийн тулд суулгах товчлуур дээр товшиж <ph name="APP_NAME" />-г суулгана уу</translation>
 <translation id="867085395664725367">Серверийн түр хугацааны алдаа гарлаа.</translation>
@@ -8450,6 +8452,7 @@
 <translation id="9120693811286642342"><ph name="BEGIN_PARAGRAPH1" />Шилдэг туршлагыг авахын тулд <ph name="DEVICE_OS" />-г дотоод дисктээ суулгана уу. Та мөн үүнийг дараа нь нэвтрэх дэлгэцээс суулгах боломжтой.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Хэрэв та суулгахдаа бэлэн биш байвал үүнийг туршиж үзэхийн тулд USB-с ажиллуулах боломжтой. Энэ нь таны одоо байгаа үйлдлийн систем болон өгөгдлийг хэвээр үлдээх хэдий ч та хадгалах сан болон гүйцэтгэлийн хязгаарыг харж магадгүй.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="9121814364785106365">Тусгайлан сонгосон цонх хэлбэрээр нээх</translation>
+<translation id="9123287046453017203">Таны төхөөрөмжийг шинэчлээгүй байна</translation>
 <translation id="9124003689441359348">Хадгалсан нууц үг энд харагдана</translation>
 <translation id="9126149354162942022">Курсорын өнгө</translation>
 <translation id="9128317794749765148">Тохируулгыг дуусгаж чадсангүй</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index 3b93d23..f2bff974 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">तुमचा मायक्रोफोन आणि कॅमेरा वापरा</translation>
 <translation id="1005333234656240382">ADB डीबगिंग सुरू करायचे?</translation>
 <translation id="1006873397406093306">हे एक्सटेंशन साइटवरील तुमचा डेटा वाचेल आणि बदलेल. एक्सटेंशन कोणत्या साइट फॉलो करते हे तुम्ही नियंत्रित करू शकता.</translation>
+<translation id="1007057452468855774">Google Play Store सुरू करा</translation>
 <translation id="1008186147501209563">बुकमार्क एक्सपोर्ट करा</translation>
 <translation id="1008557486741366299">सध्या नाही</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" /> वरील स्थान</translation>
 <translation id="1009663062402466586">गेम नियंत्रणे आता उपलब्ध आहेत</translation>
 <translation id="1010498023906173788">हा टॅब सिरीअल पोर्टशी कनेक्ट केलेला आहे.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{अप्रतिसादात्मक पृष्‍ठ}other{अप्रतिसादात्मक पृष्‍ठे}}</translation>
+<translation id="1011003645819296594">सेव्ह केलेली डिव्हाइस</translation>
 <translation id="1011355516189274711">टेक्‍स्‍ट टू स्‍पीच व्‍हॉल्‍यूम</translation>
 <translation id="1012794136286421601">तुमचे दस्तऐवज, पत्रके, स्लाइड्स आणि रेखाचित्र फाइल सिंक केल्या जात आहेत. त्यावर ऑनलाइन किंवा ऑफलाइन ॲक्सेस करण्यासाठी Google ड्राइव्ह अ‍ॅप उघडा.</translation>
 <translation id="1012876632442809908">USB-C डिव्‍हाइस (पुढील बाजूचे पोर्ट)</translation>
@@ -494,6 +496,7 @@
 <translation id="1470350905258700113">हे डिव्हाइस वापरा</translation>
 <translation id="1470946456740188591">कॅरेट ब्राउझिंग सुरू किंवा बंद करण्यासाठी Ctrl+Search+7 हा शॉर्टकट वापरा</translation>
 <translation id="1472675084647422956">अधिक दर्शवा</translation>
+<translation id="1473223074251193484">टेदरिंग कॉंफिगरेशन सेट करा</translation>
 <translation id="1474785664565228650">मायक्रोफोनच्या सेटिंगमधील बदलासाठी Parallels Desktop पुन्हा लाँच करणे आवश्यक आहे. Parallels Desktop वर पुढे सुरू ठेवण्यासाठी पुन्हा लाँच करा.</translation>
 <translation id="1474893630593443211">तुम्ही पाहता त्या जाहिरातींवर अधिक नियंत्रण</translation>
 <translation id="1475502736924165259">आपल्याकडे फाईलवर प्रमाणपत्रे आहेत जी अन्य कोणत्याही श्रेणींसाठी योग्य नाहीत</translation>
@@ -1124,6 +1127,7 @@
 <translation id="2044014337866019681">कृपया सेशन अनलॉक करण्यासाठी तुम्ही <ph name="ACCOUNT" /> ची पडताळणी करत आहात याची खात्री करा.</translation>
 <translation id="204497730941176055">Microsoft Certificate Template Name</translation>
 <translation id="2045117674524495717">कीबोर्ड शॉर्टकट मदतकर्ता</translation>
+<translation id="2045211794962848221">तुम्हाला हा विशिष्ट मेसेज पुन्हा दिसणार नाही</translation>
 <translation id="2045969484888636535">कुकी ब्लॉक करणे सुरू ठेवा</translation>
 <translation id="204622017488417136">तुमचे डिव्हाइस Chrome च्या मागील इंस्टॉल केलेल्या आवृत्तीवर परत जाईल. सर्व वापरकर्ता खाती आणि स्थानिक डेटा काढला जाईल. हे पूर्ववत केले जाऊ शकत नाही.</translation>
 <translation id="2046702855113914483">रामेन</translation>
@@ -3811,6 +3815,7 @@
 <translation id="4594577641390224176">सिस्टीमच्या पेजविषयी माहिती शोधत आहात का? भेट द्या</translation>
 <translation id="4595560905247879544">ॲप्स आणि विस्तार केवळ (<ph name="CUSTODIAN_NAME" />) व्यवस्थापकाद्वारे सुधारित केले जाऊ शकतात.</translation>
 <translation id="4596295440756783523">आपल्‍याकडे फाईलवर अशी प्रमाणपत्रे आहेत जी या सर्व्हरला ओळखतात</translation>
+<translation id="4598345735110653698">पासकी व्यवस्थापित करा</translation>
 <translation id="4598556348158889687">स्टोरेज व्यवस्थापन</translation>
 <translation id="4598776695426288251">एकाहून अधिक डिव्हाइसद्वारे वाय-फाय उपलब्ध आहे</translation>
 <translation id="4601426376352205922">न वाचलेली म्हणून मार्क करा</translation>
@@ -4036,6 +4041,7 @@
 <translation id="4823894915586516138">हा पिन किंवा पासवर्ड या <ph name="DEVICE_TYPE" /> वरील तुम्ही तुमच्या फोनवरून अ‍ॅक्सेस करता त्या माहितीसह तुमचा डेटा सुरक्षित ठेवतो</translation>
 <translation id="4824037980212326045">Linux बॅकअप आणि रिस्टोअर</translation>
 <translation id="4824958205181053313">सिंक रद्द करायचे?</translation>
+<translation id="4825532258163983651">पासकी हटवू शकत नाही</translation>
 <translation id="4827675678516992122">कनेक्ट करता आले नाही</translation>
 <translation id="4827784381479890589">Chrome ब्राउझरमध्ये वर्धित केलेले स्पेल चेक (शब्दलेखन सूचनांसाठी मजकूर Google ला पाठवला जातो)</translation>
 <translation id="4827904420700932487">या इमेजसाठी QR कोड तयार करा</translation>
@@ -4298,6 +4304,7 @@
 <translation id="5087249366037322692">तृतीय-पक्षाने जोडला</translation>
 <translation id="5087580092889165836">कार्ड जोडा</translation>
 <translation id="5088534251099454936">PKCS #1 RSA एंक्रिप्शनसह SHA-512</translation>
+<translation id="5089763948477033443">साइड पॅनलचा आकार बदलणारे हँडल</translation>
 <translation id="5090637338841444533">तुमच्या कॅमेराचे स्थान ट्रॅक करण्याची अनुमती नाही</translation>
 <translation id="5093569275467863761">बॅक/फॉरवर्ड कॅशे केलेली गुप्त सबफ्रेम: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">तुम्ही सपोर्ट असलेल्या फाइल या अ‍ॅपद्वारे Files अ‍ॅप किंवा इतर अ‍ॅप्समध्ये उघडू शकता आणि संपादित करू शकता. या ॲपमध्ये कोणत्या फाइल बाय डीफॉल्ट उघडल्या जाव्यात हे नियंत्रित करण्यासाठी, <ph name="BEGIN_LINK" />तुमच्या डिव्हाइसवर डीफॉल्ट अ‍ॅप्स कशी सेट करायची ते जाणून घ्या<ph name="END_LINK" />.</translation>
@@ -4463,6 +4470,7 @@
 <translation id="5258992782919386492">या डिव्हाइसवर इंस्टॉल करा</translation>
 <translation id="5260334392110301220">स्मार्ट कोट</translation>
 <translation id="5260508466980570042">सॉरी, तुमचा ईमेल किंवा पासवर्ड पडताळणी करणे शक्य नाही. कृपया पुन्हा प्रयत्न करा.</translation>
+<translation id="5260958083445173099">शक्य असेल तेव्हा, वेबसाइट या तुमच्या प्राधान्य दिलेल्या भाषांमध्ये आशय दाखवतील.</translation>
 <translation id="5261683757250193089">वेब स्टोअर मध्ये उघडा</translation>
 <translation id="5262178194499261222">पासवर्ड काढा</translation>
 <translation id="5262784498883614021">नेटवर्कशी आपोआप कनेक्ट करा</translation>
@@ -4503,6 +4511,7 @@
 <translation id="5294097441441645251">लोअरकेस वर्ण किंवा अंडरस्कोअरने सुरू होणे आवश्यक आहे</translation>
 <translation id="5294618183559481278">तुमच्‍या डिव्‍हाइससमोरील लोक शोधण्‍यासाठी तुमचे <ph name="DEVICE_TYPE" /> बिल्ट-इन सेन्सर वापरते. सर्व डेटावर तुमच्या डिव्हाइसवर लगेच प्रक्रिया केली जाते आणि नंतर तो हटवला जातो. सेन्सर डेटा Google ला कधीही पाठवला जात नाही. <ph name="LINK_BEGIN" />अधिक जाणून घ्या<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">वाचिक फीडबॅक ऐका, जेणेकरून तुम्हाला स्क्रीनकडे न पाहता तुमचे डिव्हाइस वापरता येईल. कनेक्ट केलेल्या डिव्हाइससह ब्रेल फीडबॅक उपलब्ध आहे.</translation>
+<translation id="5297005732522718715">टेदरिंग कॉंफिगरेशन रिफ्रेश करा</translation>
 <translation id="5297082477358294722">पासवर्ड सेव्ह केलेले आहेत. तुमच्या <ph name="SAVED_PASSWORDS_STORE" /> मध्ये सेव्ह केलेले पासवर्ड पहा आणि व्यवस्थापित करा.</translation>
 <translation id="5297946558563358707">तुमच्या स्क्रीनकडे कोणीतरी पाहते, तेव्हा तुमच्या स्क्रीनच्या तळाशी उजवीकडे प्रायव्हसी आय आयकॉन दाखवा</translation>
 <translation id="5298219193514155779">द्वारा निर्मित थीम</translation>
@@ -4673,6 +4682,7 @@
 <translation id="5466374726908360271">पेस्ट करा आणि “<ph name="SEARCH_TERMS" />” शोधा</translation>
 <translation id="5467207440419968613">ब्लॉक केलेले <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">फाइल शेअर शोधत आहात का</translation>
+<translation id="5468330507528805311">टेदरिंग स्टेटस:</translation>
 <translation id="5468881191994555667">फाइल निवडा</translation>
 <translation id="5469852975082458401">तुम्ही मजकुराचा कर्सर वापरून पेज नेव्हिगेट करू शकता. बंद करण्यासाठी F7 दाबा.</translation>
 <translation id="5470735824776589490">Powerwash सह तुमचा डिव्हाइस रीसेट केला जाण्यापूर्वी तो रीस्टार्ट करणे आवश्यक आहे. <ph name="LINK_BEGIN" />अधिक जाणून घ्या<ph name="LINK_END" /></translation>
@@ -4825,7 +4835,6 @@
 <translation id="5601503069213153581">पिन</translation>
 <translation id="5601823921345337195">MIDI डिव्हाइसशी कनेक्ट करण्याची अनुमती नाही</translation>
 <translation id="5602765853043467355">या डिव्हाइसमधून बुकमार्क, इतिहास, पासवर्ड आणि बरेच काही साफ करा</translation>
-<translation id="5605623530403479164">इतर शोध इंजिने</translation>
 <translation id="5605758115928394442">ते तुम्हीच आहात हे निश्चित करण्यासाठी तुमच्या फोनवर सूचना पाठवली होती.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{हे एक्स्टेंशन ब्लॉक केले आहे}other{ही एक्स्टेंशन ब्लॉक केली आहेत}}</translation>
 <translation id="560834977503641186">वाय-फाय सिंक, अधिक जाणून घ्या</translation>
@@ -4949,6 +4958,7 @@
 <translation id="5734362860645681824">संप्रेषणे</translation>
 <translation id="5734697361979786483">फाइल शेअर जोडा</translation>
 <translation id="5736796278325406685">कृपया एक वैध वापरकर्ता नाव एंटर करा</translation>
+<translation id="5738093759615225354">तुम्हाला तुमच्या कॉंप्युटरवर साइन इन करण्यासाठी ही पासकी आवश्यक आहे</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> यांना शाळेच्या खात्यामध्ये जोडण्यात मदत करण्यासाठी साइन इन करा</translation>
 <translation id="5739235828260127894">पडताळणीसाठी वाट पाहत आहे. <ph name="LINK_BEGIN" />अधिक जाणून घ्या.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">खूप मोठा</translation>
@@ -5110,6 +5120,7 @@
 <translation id="589541317545606110"><ph name="VISUAL_SEARCH_PROVIDER" /> वापरून पेज शोधा</translation>
 <translation id="5896436821193322561">अनुमती देऊ नका</translation>
 <translation id="5900186025777217044">Smart Lock बदलले आहे</translation>
+<translation id="5900243355162006650">टेदरिंग कॉंफिगरेशन:</translation>
 <translation id="5900302528761731119">Google प्रोफाइल फोटो</translation>
 <translation id="590036993063074298">मिररिंगच्या गुणवत्तेचे तपशील</translation>
 <translation id="5901069264981746702">तुमचा फिंगरप्रिंट डेटा सुरक्षितपणे स्टोअर केला आहे आणि तो तुमच्या <ph name="DEVICE_TYPE" /> मध्येच राहील. <ph name="LINK_BEGIN" />अधिक जाणून घ्या<ph name="LINK_END" /></translation>
@@ -5124,6 +5135,7 @@
 <translation id="5909379458939060601">ही प्रोफाइल आणि डेटा हटवायचा आहे का?</translation>
 <translation id="5910363049092958439">म्हणून इमेज ज&amp;तन करा...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ऑफलाइन आहे</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">शॉर्टकट दर्शक</translation>
 <translation id="5914724413750400082">मॉड्यूलस (<ph name="MODULUS_NUM_BITS" /> बिट):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5414,6 +5426,7 @@
 <translation id="6196640612572343990">तृतीय-पक्ष कुकीज ब्लॉक करा</translation>
 <translation id="6196854373336333322">"<ph name="EXTENSION_NAME" />" एक्स्टेंशनने तुमच्या प्रॉक्सी सेटिंग्जचे नियंत्रण घेतले आहे, याचा अर्थ हे तुम्ही ऑनलाइन करता ती कोणतीही गोष्ट बदलू शकते, खंडित करू शकते किंवा चोरून ऐकू शकते. हा बदल का झाला, याबद्दल तुम्ही खात्री नसल्यास, तुम्हाला कदाचित तो नको आहे.</translation>
 <translation id="6197128521826316819">या पेजसाठी QR कोड तयार करा</translation>
+<translation id="6197223946499512637">या पासकी या कॉंप्युटरवरील Windows Hello मध्ये स्टोअर केल्या आहेत. त्या तुमच्या Google खाते मध्ये सेव्ह केलेल्या नाहीत.</translation>
 <translation id="6198252989419008588">पिन बदला</translation>
 <translation id="6200047250927636406">फाइल काढून टाका</translation>
 <translation id="6200151268994853226">एक्स्टेंशन व्यवस्थापित करा</translation>
@@ -5711,6 +5724,7 @@
 <translation id="6482559668224714696">फुल-स्क्रीन मॅग्निफायर</translation>
 <translation id="6483485061007832714">डाउनलोड उघडा</translation>
 <translation id="6483805311199035658"><ph name="FILE" /> उघडत आहे...</translation>
+<translation id="6486301003991593638">पासकी व्यवस्थापित करण्यासाठी, Windows ची नवीनतम आवृत्ती वापरा</translation>
 <translation id="6488384360522318064">भाषा निवडा</translation>
 <translation id="648927581764831596">काहीही उपलब्ध नाही</translation>
 <translation id="6490471652906364588">USB-C डिव्‍हाइस (उजवे पोर्ट)</translation>
@@ -6297,6 +6311,7 @@
 <translation id="7029307918966275733">Crostini इंस्टॉल केलेले नाही. क्रेडिट पाहण्यासाठी कृपया Crostini इंस्टॉल करा.</translation>
 <translation id="7029809446516969842">पासवर्ड</translation>
 <translation id="7030304022046916278">URLs तपासण्यासाठी त्या सुरक्षित ब्राउझिंग ला पाठवते</translation>
+<translation id="7030695672997239647">टॅबवर राइट-क्लिक करा आणि "गटामध्ये टॅब जोडा" निवडा व त्यानंतर "नवीन गट" निवडा</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - सिरीअल पोर्ट कनेक्ट केला आहे</translation>
 <translation id="7033616203784997570">इनपुट कमाल ६२ वर्णांचे असणे आवश्यक आहे</translation>
 <translation id="7034692021407794547">बिलिंग व्यवस्थापनाचे विशेषाधिकार असलेल्या अ‍ॅडमिनिस्ट्रेटरने सर्वप्रथम ॲडमिन कन्सोलच्या Google Meet हार्डवेअर विभागामध्ये Google Meet हार्डवेअरच्या सेवा अटी स्वीकारणे आवश्यक आहे.</translation>
@@ -7397,6 +7412,7 @@
 <translation id="8101987792947961127">पुढील रीबूटवर Powerwash आवश्यक</translation>
 <translation id="81020759409809034">स्थानिक सिस्टममधील स्थान</translation>
 <translation id="8102139037507939978">system_logs.txt वरून वैयक्तिकरीत्या ओळखण्यायोग्य माहिती स्ट्रिप करा.</translation>
+<translation id="810362914482827094">पासकी शोधा</translation>
 <translation id="8104088837833760645">eSIM प्रोफाइल डाउनलोड करा</translation>
 <translation id="8105368624971345109">बंद करा</translation>
 <translation id="8107015733319732394">तुमच्या <ph name="DEVICE_TYPE" /> वर Google Play स्टोअर इंस्टॉल करत आहे. यासाठी काही मिनिटे लागतील.</translation>
@@ -7844,6 +7860,7 @@
 <translation id="8557022314818157177">तुमचे फिंगरप्रिंट कॅप्चर होईपर्यंत तुमच्या सिक्युरिटी कीला स्पर्श करत राहा</translation>
 <translation id="8557180006508471423">तुमच्या Mac वर स्थान सेवा मध्ये "Google Chrome" सुरू करा</translation>
 <translation id="8557856025359704738">पुढील डाउनलोड <ph name="NEXT_DATE_DOWNLOAD" /> रोजी आहे.</translation>
+<translation id="8559858985063901027">पासकी</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Open All in New Window}=1{नवीन विंडोमध्ये उघडा}other{सर्व ({COUNT}) नवीन विंडोमध्ये उघडा}}</translation>
 <translation id="8561206103590473338">हत्ती</translation>
 <translation id="8561565784790166472">काळजीपूर्वक पुढे जा</translation>
@@ -7970,6 +7987,7 @@
 <translation id="8677212948402625567">सर्व कोलॅप्स करा...</translation>
 <translation id="867767487203716855">पुढील अपडेट</translation>
 <translation id="8677859815076891398">कोणतेही अल्बम नाहीत. <ph name="LINK_BEGIN" />Google Photos<ph name="LINK_END" /> मध्ये एखादा अल्बम तयार करा.</translation>
+<translation id="8678378565142776698">रीस्टार्ट करा आणि ऑटोमॅटिक अपडेट मिळवा</translation>
 <translation id="8678538439778360739">तुमच्या सिंक पासफ्रेझसह <ph name="TIME" /> रोजी डेटा एंक्रिप्ट केला होता. यामध्ये Google Pay वरील पेमेंट पद्धतींचा आणि पत्त्यांचा समावेश नसतो.</translation>
 <translation id="8678582529642151449">टॅब लहान केले जात नाहीत</translation>
 <translation id="8678933587484842200">हे ॲप्लिकेशन कसे लॉंच व्हावे असे तुम्हाला वाटते?</translation>
@@ -8217,6 +8235,7 @@
 <translation id="8910987510378294980">डिव्हाइसची सूची लपवा</translation>
 <translation id="8912362522468806198">Google खाते</translation>
 <translation id="8912810933860534797">ऑटो- स्कॅन सुरू करा</translation>
+<translation id="8915307125957890427">टॅबवर राइट-क्लिक करा आणि "गटामध्ये टॅब जोडा" निवडा व त्यानंतर "नवीन गट" निवडा</translation>
 <translation id="8915370057835397490">सूचना लोड करीत आहे</translation>
 <translation id="8916476537757519021">गुप्त सबफ्रेम: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" />चे <ph name="DEVICE_TYPE" /></translation>
@@ -8291,6 +8310,7 @@
 <translation id="8986362086234534611">विसरा</translation>
 <translation id="8986494364107987395">Google ला वापरविषयक आकडेवारी आणि क्रॅश अहवाल आपोआप पाठवा</translation>
 <translation id="8987927404178983737">महिना</translation>
+<translation id="8989359959810288806">टेदरिंग स्टेटस रिफ्रेश करा</translation>
 <translation id="8991520179165052608">साइट तुमचा मायक्रोफोन वापरू शकते</translation>
 <translation id="899384117894244799">प्रतिबंधित वापरकर्ता काढा</translation>
 <translation id="899403249577094719">Netscape सर्टिफिकेट मूळ URL</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 258df93..318b0f0 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -4838,7 +4838,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Tidak dibenarkan untuk menyambung kepada peranti MIDI</translation>
 <translation id="5602765853043467355">Kosongkan penanda halaman, sejarah, kata laluan dan pelbagai lagi daripada peranti ini</translation>
-<translation id="5605623530403479164">Enjin carian lain</translation>
 <translation id="5605758115928394442">Pemberitahuan telah dihantar ke telefon anda untuk mengesahkan orang itu ialah anda.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Sambungan ini disekat}other{Sambungan ini disekat}}</translation>
 <translation id="560834977503641186">Penyegerakan Wi-Fi, Ketahui Lebih Lanjut</translation>
@@ -5139,6 +5138,7 @@
 <translation id="5909379458939060601">Padamkan profil dan data semakan imbas ini?</translation>
 <translation id="5910363049092958439">Si&amp;mpan Imej Sebagai...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> di luar talian</translation>
+<translation id="5911030830365207728">Google Terjemah</translation>
 <translation id="5911533659001334206">Paparan pintasan</translation>
 <translation id="5914724413750400082">Modulus (<ph name="MODULUS_NUM_BITS" /> bit):
   <ph name="MODULUS_HEX_DUMP" />
@@ -7978,6 +7978,7 @@
 <translation id="8666759526542103597">Perihal pemeribadian iklan berasaskan penyemak imbas</translation>
 <translation id="8667328578593601900"><ph name="FULLSCREEN_ORIGIN" /> kini dipaparkan dalam skrin penuh dan telah melumpuhkan kursor tetikus.</translation>
 <translation id="8667760277771450375">Kami sedang meneroka cara untuk menyekat penjejakan rentas laman sambil membolehkan laman menghentikan spam dan penipuan iklan.</translation>
+<translation id="8668378421690365723">Peranti anda mungkin tidak lagi berfungsi dengan betul dan mungkin mengalami masalah keselamatan dan prestasi.</translation>
 <translation id="8669284339312441707">Hangat</translation>
 <translation id="8670537393737592796">Untuk kembali ke sini dengan cepat, pasang <ph name="APP_NAME" /> dengan mengklik butang pasang</translation>
 <translation id="867085395664725367">Ralat pelayan sementara telah berlaku.</translation>
@@ -8461,6 +8462,7 @@
 <translation id="9120693811286642342"><ph name="BEGIN_PARAGRAPH1" />Untuk mendapatkan pengalaman yang terbaik, pasang <ph name="DEVICE_OS" /> pada cakera dalaman anda. Anda juga boleh memasangnya kemudian daripada skrin log masuk.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Jika anda belum bersedia untuk memasang OS ini, anda boleh menjalankannya daripada USB untuk mencubanya. Tindakan ini akan mengekalkan OS dan data anda yang sedia ada, tetapi anda mungkin melihat storan dan prestasi yang terhad.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="9121814364785106365">Buka sebagai tab dipin</translation>
+<translation id="9123287046453017203">Peranti anda tidak di kemas kini</translation>
 <translation id="9124003689441359348">Kata laluan yang disimpan akan kelihatan di sini</translation>
 <translation id="9126149354162942022">Warna kursor</translation>
 <translation id="9128317794749765148">Persediaan tidak dapat diselesaikan</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index acc9cc8..1eac979 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -4688,6 +4688,7 @@
 <translation id="5470735824776589490">Powerwash ဖြင့် သင့်စက်ကို ပြင်ဆင်သတ်မှတ်ခြင်းမပြုမီ ပြန်စရန်လိုအပ်သည်။ <ph name="LINK_BEGIN" />ပိုမိုလေ့လာရန်<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">မင်္ဂလာပါ။ ကျွန်ုပ်သည် သင်၏ စာ-မှ-စကား ပြောင်းပေးသော အသံဖြစ်ပါသည်။</translation>
 <translation id="5472627187093107397">ဤဝဘ်ဆိုက်အတွက် စကားဝှက်များကို သိမ်းရန်</translation>
+<translation id="5473062644742711742">Chrome Web Store တွင် နောက်ထပ်အများသုံးနိုင်မှု တူးလ်များ ရှာရန်</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">ရှေ့ဆက်ခြင်းအားဖြင့် ဤစက်ပစ္စည်းသည် Google၊ သင့်ကလေး၏ ဖုန်းဝန်ဆောင်မှုပေးသူနှင့် ဤစက်ပစ္စည်း ထုတ်လုပ်သူတို့ထံမှ အပ်ဒိတ်များနှင့် အက်ပ်များကို အလိုအလျောက် ဒေါင်းလုဒ်လုပ်၍ ထည့်သွင်းနိုင်ကြောင်းကို သင်က သဘောတူရာ ရောက်ပြီး ယင်းသို့ထည့်သွင်းရာတွင် ဆယ်လူလာ ဒေတာအသုံးပြုနိုင်ပါသည်။ အချို့သော အက်ပ်များတွင် အက်ပ်အတွင်းဝယ်ယူခြင်းများကို ကမ်းလှမ်းနိုင်သည်။</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{ပင်နံပါတ်တွင် အနည်းဆုံးအက္ခရာ 1 လုံး ပါရမည်}other{ပင်နံပါတ်တွင် အနည်းဆုံးအက္ခရာ # လုံး ပါရမည်}}</translation>
@@ -4835,7 +4836,6 @@
 <translation id="5601503069213153581">ပင်နံပါတ်</translation>
 <translation id="5601823921345337195">MIDI ကိရိယာများသို့ ချိတ်ဆက်ရန် ခွင့်ပြုမထားပါ</translation>
 <translation id="5602765853043467355">ဤစက်ပစ္စည်းထဲရှိ စာညှပ်၊ မှတ်တမ်း၊ စကားဝှက်နှင့် အခြားအရာများကို ရှင်းလင်းရန်</translation>
-<translation id="5605623530403479164">အခြား ရှာဖွေရေး အင်ဂျင်များ</translation>
 <translation id="5605758115928394442">သင်ဖြစ်ကြောင်း အတည်ပြုရန် သင့်ဖုန်းသို့ အကြောင်းကြားချက်တစ်ခု ပို့ထားသည်။</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ဤနောက်ဆက်တွဲကို ပိတ်ထားသည်}other{ဤနောက်ဆက်တွဲများကို ပိတ်ထားသည်}}</translation>
 <translation id="560834977503641186">Wi-Fi စင့်ခ်၊ ပိုမိုလေ့လာရန်</translation>
@@ -5137,6 +5137,7 @@
 <translation id="5909379458939060601">ဤပရိုဖိုင်နှင့် ဖွင့်ကြည့်ထားသည့်မှတ်တမ်းဒေတာကို ဖျက်မလား။</translation>
 <translation id="5910363049092958439">ပုံ&amp;ကို အဖြစ် သိမ်းရန်...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> က အော့ဖ်လိုင်းဖြစ်နေသည်</translation>
+<translation id="5911030830365207728">Google ဘာသာပြန်</translation>
 <translation id="5911533659001334206">ဖြတ်လမ်းလင့်ခ် ကြည့်ရှုကိရိယာ</translation>
 <translation id="5914724413750400082">မော်ဂျူး (<ph name="MODULUS_NUM_BITS" /> ဘစ်များ):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index 5d060b90..b005a50 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">आफ्नो माइक्रोफोन र क्यामेरा प्रयोग गर्नुहोस्</translation>
 <translation id="1005333234656240382">ADB डिबग प्रक्रिया सक्षम पार्ने हो?</translation>
 <translation id="1006873397406093306">यो विस्तारले साइटहरूमा तपाईंको डेटा पढ्न र परिवर्तन गर्न सक्छ। तपाईं यो विस्तारले कुन कुन साइटहरूमाथि पहुँच राख्न सक्छ भन्ने कुरा नियन्त्रण गर्न सक्नुहुन्छ।</translation>
+<translation id="1007057452468855774">Google Play स्टोर अन गर्नुहोस्</translation>
 <translation id="1008186147501209563">पुस्तक चिन्हहरू निर्यात गर्नुहोस्</translation>
 <translation id="1008557486741366299">अहिले होइन</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" /> मा फाइल डाउनलोड गरिने डिफल्ट लोकेसन</translation>
 <translation id="1009663062402466586">गेम कन्ट्रोलहरू अब उपलब्ध छन्</translation>
 <translation id="1010498023906173788">यो ट्याब कुनै सिरियल पोर्टमा जडान भएको छ।</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{ पृष्ठ प्रतिक्रियाविहीन}other{ पृष्ठहरू प्रतिक्रियाविहीन}}</translation>
+<translation id="1011003645819296594">सेभ गरिएका डिभाइस</translation>
 <translation id="1011355516189274711">टेक्स्ट-टू-स्पिचको भोल्युम</translation>
 <translation id="1012794136286421601">तपाईंका कागजातहरू, पानाहरू, स्लाइडहरू, र चित्र फाइलहरू समक्रमण भइरहेका छन्। तिनीहरूलाई अनलाइन वा अफलाइन पहुँच गर्न Google ड्राइभ एप खोल्नुहोस्।</translation>
 <translation id="1012876632442809908">USB-C यन्त्र (अगाडि पोर्ट)</translation>
@@ -490,6 +492,7 @@
 <translation id="1470350905258700113">यो डिभाइस प्रयोग गरियोस्</translation>
 <translation id="1470946456740188591">सर्टकट तरिकाले क्यारेट ब्राउजिङ अन वा अफ गर्न Ctrl+Search+7 थिच्नुहोस्</translation>
 <translation id="1472675084647422956">थप देखाउनुहोस्</translation>
+<translation id="1473223074251193484">टेदरिङको कन्फिगुरेसन मिलाउनुहोस्</translation>
 <translation id="1474785664565228650">माइक्रोफोनको सेटिङमा गरिएका परिवर्तन लागू गर्न Parallels Desktop बन्द गरेर फेरि खोल्नु पर्ने हुन्छ। अगाडि बढ्नका निम्ति Parallels Desktop बन्द गरेर फेरि खोल्नुहोस्।</translation>
 <translation id="1474893630593443211">तपाईंलाई कस्ता खालका विज्ञापन देखाइन्छ भन्ने कुरामा थप नियन्त्रण</translation>
 <translation id="1475502736924165259">तपाईँसँग फाइलमा कुनै पनि अन्य कोटिमा उपयुक्त नहुने खाले प्रमाणपत्रहरू छन्:</translation>
@@ -1110,6 +1113,7 @@
 <translation id="2044014337866019681">कृपया तपाईं यो सत्र अनलक गर्न <ph name="ACCOUNT" /> पुष्टि गर्दै हुनुहुन्छ भन्ने कुरा सुनिश्चित गर्नुहोस्।</translation>
 <translation id="204497730941176055">Microsoft प्रमाणपत्र ट्याम्प्लेट नाम</translation>
 <translation id="2045117674524495717">किबोर्ड सर्टकटको सहयोगी</translation>
+<translation id="2045211794962848221">तपाईंलाई ठ्याक्कै यही म्यासेज फेरि देखाइने छैन</translation>
 <translation id="2045969484888636535">कुकीहरू ब्लकिङ जारी राख्नुहोस्</translation>
 <translation id="204622017488417136">तपाईँको उपकरणलाई पहिलो स्थापना गरिएको Chrome संस्करणमा फर्काइनेछ। सबै प्रयोगकर्ता खाता र स्थानीय डेटा हटाइने छ। यो पूर्ववत गर्न मिल्दैन।</translation>
 <translation id="2046702855113914483">रामेन</translation>
@@ -3795,6 +3799,7 @@
 <translation id="4594577641390224176">सिस्टमसम्बन्धी जानकारी भएको पेज खोज्दै हुनुहुन्छ? यहाँ जानुहोस्</translation>
 <translation id="4595560905247879544">Apps र विस्तारहरू प्रबन्धकद्वारा मात्र संशोधित गर्न सकिन्छ (<ph name="CUSTODIAN_NAME" />)।</translation>
 <translation id="4596295440756783523">तपाईँसँग फाइलमा यी सर्भरहरूको पहिचान गर्ने प्रमाणपत्रहरू छन्</translation>
+<translation id="4598345735110653698">पासकी व्यवस्थापन गर्नुहोस्</translation>
 <translation id="4598556348158889687">भण्डारणको व्यवस्थापन</translation>
 <translation id="4598776695426288251">विभिन्‍न यन्त्रहरू मार्फत Wi-Fi उपलब्ध छ</translation>
 <translation id="4601426376352205922">'नपढिएको' सामग्रीका रूपमा चिन्ह लगाउनुहोस्</translation>
@@ -4020,6 +4025,7 @@
 <translation id="4823894915586516138">तपाईंले PIN वा पासवर्ड सेट गर्नुभयो भने तपाईंले आफ्नो फोनबाट हेर्ने तथा प्रयोग गर्ने जानकारीका साथै यो <ph name="DEVICE_TYPE" /> मा भएको तपाईंको जानकारी सुरक्षित रहन्छ</translation>
 <translation id="4824037980212326045">Linux को ब्याकअप तथा पुनर्स्थापना</translation>
 <translation id="4824958205181053313">सिंक रद्द गर्ने हो?</translation>
+<translation id="4825532258163983651">पासकी मेटाउन सकिएन</translation>
 <translation id="4827675678516992122">जडान गर्न सकिएन</translation>
 <translation id="4827784381479890589">Chrome ब्राउजरमा परिष्कृत हिज्जे जाँच (हिज्जेसम्बन्धी सुझावहरू प्रदान गर्न टाइप गरिने पाठ Google मा पठाइन्छ)</translation>
 <translation id="4827904420700932487">यो छविको लागि QR कोड सिर्जना गर्नुहोस्</translation>
@@ -4282,6 +4288,7 @@
 <translation id="5087249366037322692">तेस्रो-पक्षद्वारा थपिएको</translation>
 <translation id="5087580092889165836">कार्ड थप्नुहोस्</translation>
 <translation id="5088534251099454936">RSA को साथमा PKCS #1 SHA-512 गुप्तलेखन</translation>
+<translation id="5089763948477033443">साइड प्यानल रिसाइज ह्यान्डल</translation>
 <translation id="5090637338841444533">तपाईंको क्यामेराको स्थिति ट्र्याक गर्ने अनुमति नदिइएका साइटहरू</translation>
 <translation id="5093569275467863761">इन्कोग्निटो मोडमा ब्याक/फर्वार्ड क्यास गरिएको सबफ्रेम: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">तपाईं यो एप प्रयोग गरी खोल्न तथा सम्पादन गर्न मिल्ने फाइलहरू Files एप वा अन्य एपमार्फत खोल्न तथा सम्पादन गर्न सक्नुहुन्छ। तपाईं कुन कुन फाइल यो एपमार्फत स्वतः खुल्छ भन्ने कुरा नियन्त्रण गर्न चाहनुहुन्छ भने <ph name="BEGIN_LINK" />डिभाइसमा डिफल्ट एप कसरी तय गर्ने भन्ने कुरा जान्नुहोस्<ph name="END_LINK" />।</translation>
@@ -4447,6 +4454,7 @@
 <translation id="5258992782919386492">यो डिभाइसमा स्थापना गर्नुहोस्</translation>
 <translation id="5260334392110301220">स्मार्ट उद्धरण चिन्ह</translation>
 <translation id="5260508466980570042">माफ गर्नुहोस्, तपाईंको इमेल वा पासवर्डलाई रूजू गर्न सकिएन। कृपया पुन: प्रयास गर्नुहोस्।</translation>
+<translation id="5260958083445173099">वेबसाइटहरूले सम्भव भएसम्म तपाईंले चाहेका भाषामा सामग्री देखाउने छन्</translation>
 <translation id="5261683757250193089">वेब स्टोरमा खोल्नुहोस्</translation>
 <translation id="5262178194499261222">पासवर्ड हटाउनुहोस्</translation>
 <translation id="5262784498883614021">नेटवर्कमा स्वतः कनेक्ट गर्नुहोस्</translation>
@@ -4487,6 +4495,7 @@
 <translation id="5294097441441645251">अनिवार्य रूपमा लोअरकेस वर्ण वा underscore बाट सुरु हुनु पर्छ</translation>
 <translation id="5294618183559481278">तपाईंको <ph name="DEVICE_TYPE" /> को अगाडि कोही छ कि छैन भन्ने कुरा पत्ता लगाउन तपाईंको डिभाइसले अन्तर्निर्मित सेन्सर प्रयोग गर्छ। सबै डेटा तुरुन्तै तपाईंको डिभाइसमै प्रोसेस गरिन्छ अनि मेटाइन्छ। सेन्सरमार्फत सङ्कलन गरिएको डेटा कहिले पनि Google मा पठाइँदैन। <ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">तपाईं स्क्रिनमा नहेरिकन आफ्नो डिभाइस प्रयोग गर्न सक्नुहोस् भन्नाका लागि बोलेर दिइने प्रतिक्रिया सुन्नुहोस्। डिभाइस कनेक्ट गरेर ब्रेल प्रतिक्रिया प्राप्त गर्न सकिन्छ।</translation>
+<translation id="5297005732522718715">टेदरिङको कन्फिगुरेसन रिफ्रेस गर्नुहोस्</translation>
 <translation id="5297082477358294722">पासवर्ड सेभ गरियो। सुरक्षित गरिएका पासवर्डहरू हेर्न र व्यवस्थापन गर्न आफ्नो <ph name="SAVED_PASSWORDS_STORE" />.मा जानुहोस्।</translation>
 <translation id="5297946558563358707">अरू कसैले तपाईंको डिभाइसको स्क्रिनमा हेर्दा स्क्रिनको पुछारमा दायाँतिर गोपनीयता जनाउने आँखाको आइकन देखाइयोस्</translation>
 <translation id="5298219193514155779">द्वार प्रकरण सिर्जना गरिएको</translation>
@@ -4657,11 +4666,13 @@
 <translation id="5466374726908360271">“<ph name="SEARCH_TERMS" />” टाँसेर खोजी गर्नुहोस्</translation>
 <translation id="5467207440419968613">तपाईंले हालसालै <ph name="PERMISSION_1" /> र <ph name="PERMISSION_2" /> सम्बन्धी अनुमति ब्लक गर्नुभएको छ</translation>
 <translation id="5468173180030470402">फाइलको आदान प्रदान हेरिँदै</translation>
+<translation id="5468330507528805311">टेदरिङको स्थिति:</translation>
 <translation id="5468881191994555667">फाइल छनौट गर्नुहोस्</translation>
 <translation id="5469852975082458401">तपाईं टेक्स्ट कर्सर प्रयोग गरी पृष्ठहरूमा नेभिगेट गर्न सक्नुहुन्छ। अफ गर्न F7 थिच्नुहोस्।</translation>
 <translation id="5470735824776589490">तपाईंले पावरवासमार्फत आफ्नो यन्त्र पुनः सुरु गरेपछि मात्र यसलाई रिसेट गर्न सक्नुहुन्छ। <ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">नमस्ते! म तपाईंको पाठवाचकको आवाज हुँ।</translation>
 <translation id="5472627187093107397">यो साइटका पासवर्डहरू सेभ गर्नुहोस्</translation>
+<translation id="5473062644742711742">Chrome वेब स्टोरमा गई थप एक्सेसिबिलिटी टुल भेट्टाउनुहोस्</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">तपाईंले जारी राख्नुभयो भने तपाईं यो डिभाइसले Google, तपाईंका बच्चाको मोबाइल सेवा प्रदायक र यो डिभाइसको निर्माताबाट सम्भवतः मोबाइल डेटा प्रयोग गरी अपडेट र एपहरू स्वतः डाउनलोड तथा इन्स्टल गर्न सक्छ भन्ने कुरामा सहमत हुनुहुन्छ भन्ने अर्थ लाग्छ। यीमध्ये केही एपहरूले एपभित्र किनमेल गर्ने सुविधा उपलब्ध गराउन सक्छन्।</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN कम्तीमा पनि एक वर्णको हुनु पर्छ}other{PIN कम्तीमा पनि # वर्णको हुनु पर्छ}}</translation>
@@ -4809,7 +4820,6 @@
 <translation id="5601503069213153581">पिन</translation>
 <translation id="5601823921345337195">MIDI यन्त्रहरूमा कनेक्ट गर्न अनुमति नदिइएका साइटहरू</translation>
 <translation id="5602765853043467355">यो यन्त्रबाट पुस्तक चिन्ह, इतिहास, पासवर्ड र थप कुराहरू खाली गर्नुहोस्</translation>
-<translation id="5605623530403479164">अन्य खोज इन्धनहरू</translation>
 <translation id="5605758115928394442">यो व्यक्ति तपाईं नै हो भन्ने सुनिश्चित गर्न तपाईंको फोनमा एउटा सूचना पठाइयो।</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{यो एक्स्टेन्सन ब्लक गरिएको छ}other{यी एक्स्टेन्सन ब्लक गरिएका छन्}}</translation>
 <translation id="560834977503641186">Wi-Fi सिंकका बारेमा थप जान्नुहोस्</translation>
@@ -4933,6 +4943,7 @@
 <translation id="5734362860645681824">सञ्चारहरू</translation>
 <translation id="5734697361979786483">फाइल आदान प्रदान गर्ने सुविधा थप्नुहोस्</translation>
 <translation id="5736796278325406685">कृपया एउटा मान्य प्रयोगकर्ता नाम थप्नुहोस्</translation>
+<translation id="5738093759615225354">तपाईंसँग यो पासकी छ भने मात्र तपाईं आफ्नो कम्प्युटरमा साइन इन गर्न सक्नुहुन्छ</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> लाई विद्यालयको खाता थप्न मद्दत गर्न साइन इन गर्नुहोस्</translation>
 <translation id="5739235828260127894">पुष्टिका लागि प्रतीक्षा गर्दै। <ph name="LINK_BEGIN" />थप जान्नुहोस्।<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">धेरै ठुलो</translation>
@@ -5094,6 +5105,7 @@
 <translation id="589541317545606110"><ph name="VISUAL_SEARCH_PROVIDER" /> मार्फत पेज खोज्नुहोस्</translation>
 <translation id="5896436821193322561">अनुमति नदिनुहोस्</translation>
 <translation id="5900186025777217044">Smart Lock परिवर्तन भएको छ</translation>
+<translation id="5900243355162006650">टेदरिङको कन्फिगुरेसन:</translation>
 <translation id="5900302528761731119">Google प्रोफाइल तस्बिर</translation>
 <translation id="590036993063074298">मिररिङको गुणस्तरसम्बन्धी विवरण</translation>
 <translation id="5901069264981746702">तपाईंको फिंगरप्रिन्टसम्बन्धी डेटा सुरक्षित रूपमा भण्डारण गरिन्छ र यो डेटा तपाईंको <ph name="DEVICE_TYPE" /> बाट अन्यत्र पठाइँदैन। <ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation>
@@ -5108,6 +5120,7 @@
 <translation id="5909379458939060601">यो प्रोफाइल र ब्राउजिङ डेटा मेटाउने हो?</translation>
 <translation id="5910363049092958439">यस रूपमा छविलाई बच&amp;त गर्नुहोस्...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> अफलाइन छ</translation>
+<translation id="5911030830365207728">Google अनुवादक</translation>
 <translation id="5911533659001334206">सर्टकटको दर्शक</translation>
 <translation id="5914724413750400082">मापांक (<ph name="MODULUS_NUM_BITS" /> बिटहरू): <ph name="MODULUS_HEX_DUMP" /> 
 सार्वजनिक प्रकाशक ( <ph name="PUBLIC_EXPONENT_NUM_BITS" /> बिट): 
@@ -5396,6 +5409,7 @@
 <translation id="6196640612572343990">तेस्रो पक्षीय कुकीहरूमाथि रोक लगाउनुहोस्</translation>
 <translation id="6196854373336333322">विस्तार "<ph name="EXTENSION_NAME" />" ले तपाईंका प्रोक्सी सेटिङहरूको नियन्त्रण गरेको छ, मतलब तपाईंले अनलाइन गरेको जुनसुकै कुरालाई यसले परिवर्तन गर्न, बिगार्न वा चियो गर्न सक्छ। यो किन परिवर्तन भयो भन्नेमा सुनिश्चित हुनुहुन्न भने सायद तपाईं यसलाई चाहनुहुन्न।</translation>
 <translation id="6197128521826316819">यो पेजको लागि QR कोड सिर्जना गर्नुहोस्</translation>
+<translation id="6197223946499512637">यी पासकी यो कम्प्युटरको Windows Hello मा भण्डारण गरिएको छ। तिनीहरू तपाईंको Google खातामा सेभ गरिएका छैनन्।</translation>
 <translation id="6198252989419008588">PIN परिवर्तन गर्नुहोस्</translation>
 <translation id="6200047250927636406">फाइल खारेज गर्नुहोस्</translation>
 <translation id="6200151268994853226">एक्स्टेन्सन व्यवस्थित गर्नुहोस्</translation>
@@ -5693,6 +5707,7 @@
 <translation id="6482559668224714696">फुल स्क्रिन म्याग्निफायर</translation>
 <translation id="6483485061007832714">डाउनलोड खोल्नुहोस्</translation>
 <translation id="6483805311199035658"><ph name="FILE" /> खोल्दै...</translation>
+<translation id="6486301003991593638">तपाईं पासकी व्यवस्थापन गर्न चाहनुहुन्छ भने Windows को अझ नयाँ संस्करण प्रयोग गर्नुहोस्</translation>
 <translation id="6488384360522318064">भाषा छनौट गर्नुहोस्</translation>
 <translation id="648927581764831596">कुनै पनि उपलब्ध छैन</translation>
 <translation id="6490471652906364588">USB-C यन्त्र (दायाँ पोर्ट)</translation>
@@ -6279,6 +6294,7 @@
 <translation id="7029307918966275733">Crostini इन्स्टल गरिएको छैन। कृपया क्रेडिटहरू हेर्न Crostini इन्स्टल गर्नुहोस्।</translation>
 <translation id="7029809446516969842">पासवर्डहरू</translation>
 <translation id="7030304022046916278">यो सुविधाले URL सुरक्षित छ कि छैन भनी जाँच गर्नका निम्ति URL हरू Safe Browsing मा पठाउँछ</translation>
+<translation id="7030695672997239647">ट्याबमा दायाँ क्लिक गर्नुहोस् र "यो ट्याब समूहमा हाल्नुहोस्" चयन गर्नुहोस् अनि "नयाँ समूह" चयन गर्नुहोस्</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - क्रमिक पोर्टमा जडान गरियो</translation>
 <translation id="7033616203784997570">बढीमा ६२ वटा वर्ण प्रयोग गर्न मिल्छ</translation>
 <translation id="7034692021407794547">'बिलिङ व्यवस्थापन' नामक विशेषाधिकार भएका कुनै एड्मिनले एड्मिन कन्सोलको Google Meet हार्डवेयर खण्डमा गई Google Meet हार्डवेयरको सेवाका सर्तहरू स्वीकार गरेपछि मात्र तपाईं डिभाइस दर्ता गर्न सक्नुहुन्छ।</translation>
@@ -7380,6 +7396,7 @@
 <translation id="8101987792947961127">अर्को रिबुटमा पावरवास आवश्यक छ</translation>
 <translation id="81020759409809034">डिभाइसमा फाइल डाउनलोड गरिने डिफल्ट लोकेसन</translation>
 <translation id="8102139037507939978">system_logs.txt बाट व्यक्तिगत रूपमा पहिचान गर्न मिल्ने जानकारी हटाइयोस्।</translation>
+<translation id="810362914482827094">पासकी खोज्नुहोस्</translation>
 <translation id="8104088837833760645">eSIM प्रोफाइल डाउनलोड गर्नुहोस्</translation>
 <translation id="8105368624971345109">निष्क्रिय पार्नुहोस्</translation>
 <translation id="8107015733319732394">तपाईंको <ph name="DEVICE_TYPE" /> मा उक्त Google Play Store स्थापना गर्दै। यस कार्यमा केही समय लाग्नसक्छ।</translation>
@@ -7827,6 +7844,7 @@
 <translation id="8557022314818157177">तपाईंको फिंगरप्रिन्ट नथपिँदासम्म आफ्नो सुरक्षा साँचोमा छोइरहनुहोस्</translation>
 <translation id="8557180006508471423">Mac को लोकेसन सेवाहरूमा गई "Google Chrome" अन गर्नुहोस्</translation>
 <translation id="8557856025359704738">अब <ph name="NEXT_DATE_DOWNLOAD" /> मा डाउनलोड गरिने छ।</translation>
+<translation id="8559858985063901027">पासकीहरू</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{सबै URL &amp;नयाँ विन्डोमा खोल्नुहोस्}=1{&amp;नयाँ विन्डोमा खोल्नुहोस्}other{सबै URL ({COUNT}) &amp;नयाँ विन्डोमा खोल्नुहोस्}}</translation>
 <translation id="8561206103590473338">हात्ती</translation>
 <translation id="8561565784790166472">यो सुविधा प्रयोग गर्दा सावधानी अपनाउनुहोस्</translation>
@@ -7953,6 +7971,7 @@
 <translation id="8677212948402625567">सबै संकुचित पार्नुहोस्...</translation>
 <translation id="867767487203716855">अर्को अपडेट</translation>
 <translation id="8677859815076891398">कुनै पनि एल्बम छैन। <ph name="LINK_BEGIN" />Google Photos<ph name="LINK_END" /> मा गई एउटा एल्बम बनाउनुहोस्।</translation>
+<translation id="8678378565142776698">रिस्टार्ट गर्नुहोस् र स्वतः अपडेट गर्ने सुविधा अन गर्नुहोस्</translation>
 <translation id="8678538439778360739"><ph name="TIME" /> मा तपाईंको सिंक पासफ्रेज प्रयोग गरी डेटा इन्क्रिप्ट गरियो। यो डेटामा Google Pay का भुक्तानी विधि र ठेगानाहरू समावेश हुँदैनन्।</translation>
 <translation id="8678582529642151449">ट्याबहरू साना हुँदैनन्</translation>
 <translation id="8678933587484842200">तपाईं यो एप कसरी सुरु होस् भन्ने चाहनुहुन्छ?</translation>
@@ -8199,6 +8218,7 @@
 <translation id="8910987510378294980">डिभाइसको सूची लुकाइयोस्</translation>
 <translation id="8912362522468806198">Google खाता</translation>
 <translation id="8912810933860534797">स्वतः स्क्यान गर्ने सुविधा सक्षम पार्नुहोस्</translation>
+<translation id="8915307125957890427">ट्याबमा दायाँ क्लिक गर्नुहोस् र "यो ट्याब समूहमा हाल्नुहोस्" चयन गर्नुहोस् अनि "नयाँ समूह" चयन गर्नुहोस्</translation>
 <translation id="8915370057835397490">सुझावहरू लोड गर्दै</translation>
 <translation id="8916476537757519021">इनकगनिटो सबफ्रेम: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" /> को <ph name="DEVICE_TYPE" /></translation>
@@ -8273,6 +8293,7 @@
 <translation id="8986362086234534611">बिर्सनुहोस्</translation>
 <translation id="8986494364107987395">Google लाई स्वचालित रूपमा उपयोगको तथ्याङ्कहरू र क्र्यास रिपोर्ट पठाउनुहोस्</translation>
 <translation id="8987927404178983737">महिना</translation>
+<translation id="8989359959810288806">टेदरिङको स्थिति रिफ्रेस गर्नुहोस्</translation>
 <translation id="8991520179165052608">साइटले तपाईंको माइक्रोफोन प्रयोग गर्न सक्छ</translation>
 <translation id="899384117894244799">प्रतिबन्धित प्रयोगकर्ता हटाउनुहोस्</translation>
 <translation id="899403249577094719">नेटस्केप प्रमाणपत्र आधार URL</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 5300945..7edf55d 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Je microfoon en camera gebruiken</translation>
 <translation id="1005333234656240382">ADB-foutopsporing aanzetten?</translation>
 <translation id="1006873397406093306">Deze extensie kan je gegevens op sites lezen en wijzigen. Je bepaalt tot welke sites de extensie toegang heeft.</translation>
+<translation id="1007057452468855774">Google Play Store aanzetten</translation>
 <translation id="1008186147501209563">Bookmarks exporteren</translation>
 <translation id="1008557486741366299">Niet nu</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" />-locatie</translation>
 <translation id="1009663062402466586">Gamebediening nu beschikbaar</translation>
 <translation id="1010498023906173788">Dit tabblad is gekoppeld aan een seriële poort.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Pagina reageert niet}other{Pagina's reageren niet}}</translation>
+<translation id="1011003645819296594">Opgeslagen apparaten</translation>
 <translation id="1011355516189274711">Volume voor tekst-naar-spraak</translation>
 <translation id="1012794136286421601">Je bestanden van Google Documenten, Spreadsheets, Presentaties en Tekeningen worden gesynchroniseerd. Open de Google Drive-app om ze online of offline te openen.</translation>
 <translation id="1012876632442809908">USB-C-apparaat (poort aan voorkant)</translation>
@@ -491,6 +493,7 @@
 <translation id="1470350905258700113">Dit apparaat gebruiken</translation>
 <translation id="1470946456740188591">Gebruik de sneltoets Ctrl+Zoeken+7 om browsen met navigatietoetsen aan of uit te zetten</translation>
 <translation id="1472675084647422956">Meer bekijken</translation>
+<translation id="1473223074251193484">Tethering-configuratie instellen</translation>
 <translation id="1474785664565228650">Parallels Desktop moet worden herstart om de microfooninstelling te wijzigen. Herstart Parallels Desktop om door te gaan.</translation>
 <translation id="1474893630593443211">Meer controle over de advertenties die je te zien krijgt</translation>
 <translation id="1475502736924165259">Je hebt certificaten die niet in een van de andere categorieën vallen</translation>
@@ -1113,6 +1116,7 @@
 <translation id="2044014337866019681">Zorg dat je <ph name="ACCOUNT" /> verifieert om de sessie te ontgrendelen.</translation>
 <translation id="204497730941176055">Sjabloonnaam van Microsoft-certificaat</translation>
 <translation id="2045117674524495717">Helper voor sneltoetsen</translation>
+<translation id="2045211794962848221">Je krijgt dit specifieke bericht niet meer te zien</translation>
 <translation id="2045969484888636535">Cookies blijven blokkeren</translation>
 <translation id="204622017488417136">Je apparaat wordt hersteld naar de vorige geïnstalleerde versie van Chrome. Alle gebruikersaccounts en lokale gegevens worden verwijderd. Dit kan niet ongedaan worden gemaakt.</translation>
 <translation id="2046702855113914483">Noedelsoep</translation>
@@ -3797,6 +3801,7 @@
 <translation id="4594577641390224176">Zoek je de informatiepagina van het systeem? Ga naar</translation>
 <translation id="4595560905247879544">Apps en extensies kunnen alleen worden aangepast door de beheerder (<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">Je hebt certificaten waarmee deze servers worden geïdentificeerd</translation>
+<translation id="4598345735110653698">Toegangscodes beheren</translation>
 <translation id="4598556348158889687">Opslagbeheer</translation>
 <translation id="4598776695426288251">Wifi beschikbaar via meerdere apparaten</translation>
 <translation id="4601426376352205922">Markeren als ongelezen</translation>
@@ -4021,6 +4026,7 @@
 <translation id="4823894915586516138">Je beschermt je gegevens op deze <ph name="DEVICE_TYPE" /> met een pincode of wachtwoord, waaronder informatie die je opent vanaf je telefoon.</translation>
 <translation id="4824037980212326045">Back-up en herstel voor Linux</translation>
 <translation id="4824958205181053313">Synchronisatie annuleren?</translation>
+<translation id="4825532258163983651">Kan toegangscode niet verwijderen</translation>
 <translation id="4827675678516992122">Kan geen verbinding maken</translation>
 <translation id="4827784381479890589">Verbeterde spellingcontrole in Chrome-browser (tekst wordt naar Google gestuurd voor suggesties over de spelling)</translation>
 <translation id="4827904420700932487">QR-code maken voor deze afbeelding</translation>
@@ -4283,6 +4289,7 @@
 <translation id="5087249366037322692">Toegevoegd door een derde partij</translation>
 <translation id="5087580092889165836">Pas toevoegen</translation>
 <translation id="5088534251099454936">PKCS nr. 1 SHA-512 met RSA-encryptie</translation>
+<translation id="5089763948477033443">Handgreep voor wijziging van het formaat van het zijvenster</translation>
 <translation id="5090637338841444533">Geen toestemming om je camerapositie bij te houden</translation>
 <translation id="5093569275467863761">Incognitosubframe in Back-Forward Cache: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Je kunt ondersteunde bestanden openen en bewerken met deze app vanuit de app Bestanden of andere apps. <ph name="BEGIN_LINK" />Bekijk hoe je standaard-apps instelt op je apparaat<ph name="END_LINK" /> om te bepalen welke bestanden standaard worden geopend in deze app.</translation>
@@ -4448,6 +4455,7 @@
 <translation id="5258992782919386492">Installeren op dit apparaat</translation>
 <translation id="5260334392110301220">Slimme aanhalingstekens</translation>
 <translation id="5260508466980570042">Je e-mailadres of wachtwoord kan niet worden geverifieerd. Probeer het opnieuw.</translation>
+<translation id="5260958083445173099">Als het mogelijk is, tonen websites content in je voorkeurstalen</translation>
 <translation id="5261683757250193089">Openen in Web Store</translation>
 <translation id="5262178194499261222">Wachtwoord verwijderen</translation>
 <translation id="5262784498883614021">Automatisch verbinding maken met netwerk</translation>
@@ -4488,6 +4496,7 @@
 <translation id="5294097441441645251">Moet beginnen met een kleine letter of underscore</translation>
 <translation id="5294618183559481278">Je <ph name="DEVICE_TYPE" /> gebruikt een ingebouwde sensor om mensen voor je apparaat waar te nemen. Alle gegevens worden onmiddellijk verwerkt op je apparaat en daarna verwijderd. Sensorgegevens worden nooit naar Google gestuurd. <ph name="LINK_BEGIN" />Meer informatie<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Krijg gesproken feedback zodat je je apparaat kunt gebruiken zonder naar het scherm te kijken. Braillefeedback is beschikbaar met een verbonden apparaat.</translation>
+<translation id="5297005732522718715">Tethering-configuratie vernieuwen</translation>
 <translation id="5297082477358294722">Het wachtwoord is opgeslagen. Bekijk en beheer opgeslagen wachtwoorden in je <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Het privacy-oogicoon rechtsonder in het scherm tonen als iemand anders naar je scherm kijkt</translation>
 <translation id="5298219193514155779">Thema gemaakt door</translation>
@@ -4658,11 +4667,13 @@
 <translation id="5466374726908360271">Pl&amp;akken en zoeken naar '<ph name="SEARCH_TERMS" />'</translation>
 <translation id="5467207440419968613">Rechten voor <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> geblokkeerd</translation>
 <translation id="5468173180030470402">Zoeken naar fileshares</translation>
+<translation id="5468330507528805311">Tethering-status:</translation>
 <translation id="5468881191994555667">Bestand kiezen</translation>
 <translation id="5469852975082458401">Je kunt navigeren op pagina's met een tekstcursor. Druk op F7 om dit uit te zetten.</translation>
 <translation id="5470735824776589490">Opnieuw starten is vereist voordat je apparaat opnieuw kan worden ingesteld met Powerwash. <ph name="LINK_BEGIN" />Meer informatie<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Hallo. Ik ben je stem voor tekst-naar-spraak.</translation>
 <translation id="5472627187093107397">Wachtwoorden voor deze site opslaan</translation>
+<translation id="5473062644742711742">Ga naar de Chrome Web Store voor meer toegankelijkheidstools</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">Als je verdergaat, ga je ermee akkoord dat dit apparaat ook automatische updates en apps van Google, de provider van je kind en de fabrikant van dit apparaat kan downloaden en installeren, waarbij mogelijk mobiele data worden gebruikt. Sommige van deze apps kunnen in-app aankopen aanbieden.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{De pincode moet ten minste 1 teken bevatten}other{De pincode moet ten minste # tekens bevatten}}</translation>
@@ -4810,7 +4821,6 @@
 <translation id="5601503069213153581">Pincode</translation>
 <translation id="5601823921345337195">Geen toestemming om verbinding te maken met MIDI-apparaten</translation>
 <translation id="5602765853043467355">Bookmarks, geschiedenis, wachtwoorden en meer wissen van dit apparaat</translation>
-<translation id="5605623530403479164">Andere zoekmachines</translation>
 <translation id="5605758115928394442">Er is een melding naar je telefoon verstuurd om te bevestigen dat jij het bent.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Deze extensie is geblokkeerd}other{Deze extensies zijn geblokkeerd}}</translation>
 <translation id="560834977503641186">Wifi-synchronisatie, meer informatie</translation>
@@ -4932,6 +4942,7 @@
 <translation id="5734362860645681824">Communicatie</translation>
 <translation id="5734697361979786483">Fileshare toevoegen</translation>
 <translation id="5736796278325406685">Geef een geldige gebruikersnaam op</translation>
+<translation id="5738093759615225354">Je hebt deze toegangscode nodig om in te loggen op je computer</translation>
 <translation id="5739017626473506901">Log in om <ph name="USER_NAME" /> te helpen een schoolaccount toe te voegen</translation>
 <translation id="5739235828260127894">Wachten op verificatie. <ph name="LINK_BEGIN" />Meer informatie.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Zeer groot</translation>
@@ -5093,6 +5104,7 @@
 <translation id="589541317545606110">Pagina zoeken met <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Niet toestaan</translation>
 <translation id="5900186025777217044">Smart Lock is gewijzigd</translation>
+<translation id="5900243355162006650">Tethering-configuratie:</translation>
 <translation id="5900302528761731119">Google-profielfoto</translation>
 <translation id="590036993063074298">Informatie over kwaliteit van mirroring</translation>
 <translation id="5901069264981746702">Je vingerafdrukgegevens worden beveiligd opgeslagen en blijven uitsluitend op je <ph name="DEVICE_TYPE" /> staan. <ph name="LINK_BEGIN" />Meer informatie<ph name="LINK_END" /></translation>
@@ -5107,6 +5119,7 @@
 <translation id="5909379458939060601">Dit profiel en bijbehorende browsegegevens verwijderen?</translation>
 <translation id="5910363049092958439">Af&amp;beelding opslaan als...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> is offline</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">Sneltoetsenviewer</translation>
 <translation id="5914724413750400082">Modulus (<ph name="MODULUS_NUM_BITS" />-bits):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5394,6 +5407,7 @@
 <translation id="6196640612572343990">Cookies van derden blokkeren</translation>
 <translation id="6196854373336333322">De extensie '<ph name="EXTENSION_NAME" />' heeft het beheer van je proxyinstellingen overgenomen. Dit betekent dat de extensie alles wat je online doet, kan wijzigen, beschadigen of bekijken. Als je niet zeker weet waarom deze wijziging heeft plaatsgevonden, is het waarschijnlijk een ongewenste wijziging.</translation>
 <translation id="6197128521826316819">QR-code maken voor deze pagina</translation>
+<translation id="6197223946499512637">Deze toegangscodes worden opgeslagen in Windows Hello op deze computer. Ze worden niet opgeslagen in je Google-account.</translation>
 <translation id="6198252989419008588">Pincode wijzigen</translation>
 <translation id="6200047250927636406">Bestand weggooien</translation>
 <translation id="6200151268994853226">Extensie beheren</translation>
@@ -5691,6 +5705,7 @@
 <translation id="6482559668224714696">Volledig scherm vergroten</translation>
 <translation id="6483485061007832714">Download openen</translation>
 <translation id="6483805311199035658"><ph name="FILE" /> openen...</translation>
+<translation id="6486301003991593638">Gebruik een nieuwere versie van Windows om toegangscodes te beheren</translation>
 <translation id="6488384360522318064">Taal selecteren</translation>
 <translation id="648927581764831596">Niet beschikbaar</translation>
 <translation id="6490471652906364588">USB-C-apparaat (poort aan rechterkant)</translation>
@@ -6276,6 +6291,7 @@
 <translation id="7029307918966275733">Crostini is niet geïnstalleerd. Installeer Crostini om credits te bekijken.</translation>
 <translation id="7029809446516969842">Wachtwoorden</translation>
 <translation id="7030304022046916278">Stuurt URL's naar Safe Browsing om deze te checken</translation>
+<translation id="7030695672997239647">Klik met de rechtermuisknop op een tabblad, selecteer Tabblad toevoegen aan groep en dan Nieuwe groep</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" />: seriële poort verbonden</translation>
 <translation id="7033616203784997570">De invoer mag maximaal 62 tekens zijn</translation>
 <translation id="7034692021407794547">Een beheerder met rechten voor factureringsbeheer moet eerst de Servicevoorwaarden voor Google Meet-hardware accepteren in het gedeelte Google Meet-hardware van de Beheerdersconsole.</translation>
@@ -7375,6 +7391,7 @@
 <translation id="8101987792947961127">Powerwash vereist bij volgende keer opnieuw opstarten</translation>
 <translation id="81020759409809034">Lokale locatie</translation>
 <translation id="8102139037507939978">Persoonlijk identificeerbare informatie verwijderen uit system_logs.txt.</translation>
+<translation id="810362914482827094">Toegangscodes zoeken</translation>
 <translation id="8104088837833760645">E-simkaartprofiel downloaden</translation>
 <translation id="8105368624971345109">Uitzetten</translation>
 <translation id="8107015733319732394">De Google Play Store wordt geïnstalleerd op je <ph name="DEVICE_TYPE" />. Dit kan enkele minuten duren.</translation>
@@ -7822,6 +7839,7 @@
 <translation id="8557022314818157177">Blijf je beveiligingssleutel aanraken totdat je vingerafdruk is geregistreerd</translation>
 <translation id="8557180006508471423">Zet Google Chrome aan in Locatievoorzieningen op je Mac</translation>
 <translation id="8557856025359704738">De volgende download is op <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Toegangscodes</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Alles openen in &amp;nieuw venster}=1{Openen in &amp;nieuw venster}other{Alles ({COUNT}) openen in &amp;nieuw venster}}</translation>
 <translation id="8561206103590473338">Olifant</translation>
 <translation id="8561565784790166472">Ga voorzichtig verder</translation>
@@ -7948,6 +7966,7 @@
 <translation id="8677212948402625567">Alles samenvouwen...</translation>
 <translation id="867767487203716855">Volgende update</translation>
 <translation id="8677859815076891398">Geen albums. Maak een album in <ph name="LINK_BEGIN" />Google Foto's<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Opnieuw opstarten en automatische updates ontvangen</translation>
 <translation id="8678538439778360739">De gegevens zijn op <ph name="TIME" /> versleuteld met je wachtwoordzin voor synchronisatie. Hieronder vallen geen betaalmethoden en adressen van Google Pay.</translation>
 <translation id="8678582529642151449">Tabbladen krimpen niet</translation>
 <translation id="8678933587484842200">Hoe moet deze app worden gestart?</translation>
@@ -8195,6 +8214,7 @@
 <translation id="8910987510378294980">Apparaatlijst verbergen</translation>
 <translation id="8912362522468806198">Google-account</translation>
 <translation id="8912810933860534797">Automatisch scannen aanzetten</translation>
+<translation id="8915307125957890427">Klik met de rechtermuisknop op een tabblad, selecteer Tabblad toevoegen aan groep en dan Nieuwe groep</translation>
 <translation id="8915370057835397490">Suggestie wordt geladen</translation>
 <translation id="8916476537757519021">Incognito-subframe: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="DEVICE_TYPE" /> van <ph name="GIVEN_NAME" /></translation>
@@ -8269,6 +8289,7 @@
 <translation id="8986362086234534611">Vergeten</translation>
 <translation id="8986494364107987395">Automatisch gebruiksstatistieken en crashrapporten naar Google verzenden</translation>
 <translation id="8987927404178983737">Maand</translation>
+<translation id="8989359959810288806">Tethering-status vernieuwen</translation>
 <translation id="8991520179165052608">Site kan je microfoon gebruiken</translation>
 <translation id="899384117894244799">Gebruiker met beperkte rechten verwijderen</translation>
 <translation id="899403249577094719">Basis-URL voor Netscape-certificaat</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 9596557..15c468e 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">bruke mikrofonen din og kameraet ditt</translation>
 <translation id="1005333234656240382">Vil du slå på ADB-feilsøking?</translation>
 <translation id="1006873397406093306">Denne utvidelsen kan lese og endre dataene dine på nettsteder. Du kan kontrollere hvilke nettsteder utvidelsen har tilgang til.</translation>
+<translation id="1007057452468855774">Slå på Google Play Butikk</translation>
 <translation id="1008186147501209563">Eksportér bokmerker</translation>
 <translation id="1008557486741366299">Ikke nå</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" />-plassering</translation>
 <translation id="1009663062402466586">Spillkontrollene er tilgjengelige nå</translation>
 <translation id="1010498023906173788">Denne fanen er koblet til en seriell port.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Siden svarer ikke}other{Sidene svarer ikke}}</translation>
+<translation id="1011003645819296594">Lagrede enheter</translation>
 <translation id="1011355516189274711">Volum for tekst til tale</translation>
 <translation id="1012794136286421601">Dokumenter-, Regneark-, Presentasjoner- og Tegninger-filene dine synkroniseres. Åpne Google Disk-appen for å få tilgang til dem med eller uten nett.</translation>
 <translation id="1012876632442809908">USB-C-enhet (porten foran)</translation>
@@ -494,6 +496,7 @@
 <translation id="1470350905258700113">Bruk denne enheten</translation>
 <translation id="1470946456740188591">For å slå markørsurfing på eller av, bruk hurtigtasten Ctrl + Søk + 7</translation>
 <translation id="1472675084647422956">Vis mer</translation>
+<translation id="1473223074251193484">Angi konfigurasjon for internettdeling</translation>
 <translation id="1474785664565228650">Endringen i mikrofoninnstillingen krever omstart av Parallels Desktop. Start Parallels Desktop på nytt for å fortsette.</translation>
 <translation id="1474893630593443211">Mer kontroll over annonsene du ser</translation>
 <translation id="1475502736924165259">Du har en fil med sertifikater som ikke passer inn i noen av de andre kategoriene</translation>
@@ -1119,6 +1122,7 @@
 <translation id="2044014337866019681">Du må verifisere <ph name="ACCOUNT" /> for å låse opp økten.</translation>
 <translation id="204497730941176055">Navn på Microsoft sertifikatmal</translation>
 <translation id="2045117674524495717">Hurtigtasthjelp</translation>
+<translation id="2045211794962848221">Du kommer ikke til å se denne meldingen igjen</translation>
 <translation id="2045969484888636535">Fortsett blokkering av informasjonskapsler</translation>
 <translation id="204622017488417136">Enheten blir tilbakestilt til den tidligere installerte versjonen av Chrome. Alle brukerkontoer og lokale data fjernes. Dette kan ikke gjøres om.</translation>
 <translation id="2046702855113914483">Nudler</translation>
@@ -2203,6 +2207,7 @@
 <translation id="3021065318976393105">Ved batteridrift</translation>
 <translation id="3021066826692793094">Sommerfugl</translation>
 <translation id="3021678814754966447">&amp;Vis rammekilde</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> blir fjernet fra denne Chromebooken og blir ikke lagret i <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Det skjønte jeg ikke.</translation>
 <translation id="3023464535986383522">Tekstopplesing</translation>
 <translation id="3024374909719388945">Bruk 24-timersklokke</translation>
@@ -3739,6 +3744,7 @@
 <translation id="4535127706710932914">Standardprofil</translation>
 <translation id="4535767533210902251">Fingeravtrykkssensoren er knappen øverst til høyre på tastaturet. Trykk forsiktig på den med hvilken som helst finger.</translation>
 <translation id="4536140153723794651">Nettsteder som alltid kan bruke informasjonskapsler</translation>
+<translation id="4536769240747010177">Funksjonalitet for internettdeling:</translation>
 <translation id="4538417792467843292">Slett ord</translation>
 <translation id="4538792345715658285">Installert av bedriftsinnstillingen.</translation>
 <translation id="4541123282641193691">Kunne ikke bekrefte kontoen din. Prøv på nytt, eller start Chromebooken på nytt.</translation>
@@ -3766,6 +3772,7 @@
 <translation id="4561893854334016293">Ingen nylig endrede tillatelser</translation>
 <translation id="4562155214028662640">Legg til fingeravtrykk</translation>
 <translation id="4563210852471260509">Det opprinnelige inndataspråket er kinesisk</translation>
+<translation id="4563382028841851106">Fjern fra kontoen</translation>
 <translation id="4563880231729913339">Finger 3</translation>
 <translation id="4564245002465020751">Fullfør konfigureringen på telefonen</translation>
 <translation id="4565377596337484307">Skjul passord</translation>
@@ -3802,6 +3809,7 @@
 <translation id="4594577641390224176">Ser du etter systemets Om-side? Gå til</translation>
 <translation id="4595560905247879544">Apper og utvidelser kan bare endres av administratoren (<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">Du har registrerte sertifikater som identifiserer disse tjenerne</translation>
+<translation id="4598345735110653698">Administrer tilgangsnøkler</translation>
 <translation id="4598556348158889687">Lagringsbehandling</translation>
 <translation id="4598776695426288251">Wi-Fi er tilgjengelig via flere enheter</translation>
 <translation id="4601426376352205922">Merk som ulest</translation>
@@ -4027,6 +4035,7 @@
 <translation id="4823894915586516138">PIN-koden eller passordet beskytter dataene dine på <ph name="DEVICE_TYPE" />, inkludert eventuell informasjon som du har tilgang til fra telefonen</translation>
 <translation id="4824037980212326045">Linux-sikkerhetskopiering og -gjenoppretting</translation>
 <translation id="4824958205181053313">Vil du avbryte synkroniseringen?</translation>
+<translation id="4825532258163983651">Kan ikke slette tilgangsnøkkelen</translation>
 <translation id="4827675678516992122">Kan ikke koble til</translation>
 <translation id="4827784381479890589">Forbedret stavekontroll i Chrome-nettleseren (teksten sendes til Google for staveforslag)</translation>
 <translation id="4827904420700932487">Opprett en QR-kode for dette bildet</translation>
@@ -4289,6 +4298,7 @@
 <translation id="5087249366037322692">Lagt til av en tredjepart</translation>
 <translation id="5087580092889165836">Legg til et kort</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 med RSA-kryptering</translation>
+<translation id="5089763948477033443">Håndtak for endring av størrelsen på sidepanelet</translation>
 <translation id="5090637338841444533">Nettsteder som ikke har lov til å spore kameraposisjonen din</translation>
 <translation id="5093569275467863761">Inkognito-underramme i frem-og-tilbake-bufferen: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Du kan åpne og redigere støttede filer med denne appen i Filer-appen eller andre apper. For å styre hvilke filer som åpner denne appen som standard, <ph name="BEGIN_LINK" />finn ut hvordan du angir standardapper på enheten<ph name="END_LINK" />.</translation>
@@ -4454,6 +4464,7 @@
 <translation id="5258992782919386492">Installer på denne enheten</translation>
 <translation id="5260334392110301220">Smarte anførselstegn</translation>
 <translation id="5260508466980570042">Beklager, e-postadressen eller passordet kan ikke verifiseres. Prøv på nytt.</translation>
+<translation id="5260958083445173099">Innholdet på nettsteder vises på språkene du foretrekker, når det er mulig</translation>
 <translation id="5261683757250193089">Åpne i Nettmarked</translation>
 <translation id="5262178194499261222">Fjern passord</translation>
 <translation id="5262784498883614021">Koble til nettverket automatisk</translation>
@@ -4494,6 +4505,7 @@
 <translation id="5294097441441645251">Må begynne med liten bokstav eller understrek</translation>
 <translation id="5294618183559481278"><ph name="DEVICE_TYPE" /> bruker en innebygd sensor for å registrere personer foran enheten. Alle data behandles umiddelbart på enheten og slettes deretter. Sensordata sendes aldri til Google. <ph name="LINK_BEGIN" />Finn ut mer<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Hør taletilbakemeldinger, slik at du kan bruke enheten uten å se på skjermen. Tilbakemelding med punktskrift er tilgjengelig med en tilkoblet enhet.</translation>
+<translation id="5297005732522718715">Last inn konfigurasjonen for internettdeling på nytt</translation>
 <translation id="5297082477358294722">Passordet er lagret. Se og administrer lagrede passord på <ph name="SAVED_PASSWORDS_STORE" /> din.</translation>
 <translation id="5297946558563358707">Når noen andre ser på skjermen din, vises Personvern-øyeikonet nederst til høyre på skjermen</translation>
 <translation id="5298219193514155779">Tema opprettet av</translation>
@@ -4663,11 +4675,13 @@
 <translation id="5466374726908360271">&amp;Lim inn og søk etter «<ph name="SEARCH_TERMS" />»</translation>
 <translation id="5467207440419968613">Blokkerte <ph name="PERMISSION_1" /> og <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Ser etter delte nettverksressurser</translation>
+<translation id="5468330507528805311">Status for internettdeling:</translation>
 <translation id="5468881191994555667">Velg fil</translation>
 <translation id="5469852975082458401">Du kan navigere på sider med en tekstmarkør. Trykk på F7 for å slå av dette.</translation>
 <translation id="5470735824776589490">En omstart er nødvendig før enheten din kan tilbakestilles med Powerwash. <ph name="LINK_BEGIN" />Finn ut mer<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Heisann! Jeg er tekst til tale-stemmen din.</translation>
 <translation id="5472627187093107397">Lagre passord for dette nettstedet</translation>
+<translation id="5473062644742711742">Finn flere tilgjengelighetsverktøy i Chrome Nettmarked</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">Hvis du fortsetter, godtar du at apper og oppdateringer fra Google, barnets operatør og enhetsprodusenten også kan lastes ned og installeres på enheten automatisk – muligens via mobildata. Noen av disse appene kan tilby kjøp i appen.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN-koden må bestå av minst ett tegn}other{PIN-koden må bestå av minst # tegn}}</translation>
@@ -4815,7 +4829,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Nettsteder som ikke har lov til å koble til MIDI-enheter</translation>
 <translation id="5602765853043467355">Slett bokmerker, logger, passord og annet fra denne enheten</translation>
-<translation id="5605623530403479164">Andre søkemotorer</translation>
 <translation id="5605758115928394442">Vi har sendt et varsel til telefonen din for å bekrefte at det er deg.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Denne utvidelsen er blokkert}other{Disse utvidelsene er blokkert}}</translation>
 <translation id="560834977503641186">Wifi-synkronisering – finn ut mer</translation>
@@ -4939,6 +4952,7 @@
 <translation id="5734362860645681824">Kommunikasjon</translation>
 <translation id="5734697361979786483">Legg til delt nettverksressurs</translation>
 <translation id="5736796278325406685">Skriv inn et gyldig brukernavn</translation>
+<translation id="5738093759615225354">Du trenger denne tilgangsnøkkelen for å logge på datamaskinen din</translation>
 <translation id="5739017626473506901">Logg på for å hjelpe <ph name="USER_NAME" /> med å legge til en skolekonto</translation>
 <translation id="5739235828260127894">Venter på bekreftelse. <ph name="LINK_BEGIN" />Finn ut mer<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Veldig stor</translation>
@@ -5100,6 +5114,7 @@
 <translation id="589541317545606110">Søk på siden med <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Ikke tillat</translation>
 <translation id="5900186025777217044">Smart Lock er endret</translation>
+<translation id="5900243355162006650">Konfigurasjon av internettdeling:</translation>
 <translation id="5900302528761731119">Google-profilbilde</translation>
 <translation id="590036993063074298">Detaljer om speilingskvalitet</translation>
 <translation id="5901069264981746702">Fingeravtrykksdataene lagres sikkert og sendes aldri fra <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Finn ut mer<ph name="LINK_END" /></translation>
@@ -5114,6 +5129,7 @@
 <translation id="5909379458939060601">Vil du slette denne profilen og de tilhørende nettlesingsdataene?</translation>
 <translation id="5910363049092958439">Lagre &amp;bildet som</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> er uten nett</translation>
+<translation id="5911030830365207728">Google Oversetter</translation>
 <translation id="5911533659001334206">Snarveivisning</translation>
 <translation id="5914724413750400082">Modulus (<ph name="MODULUS_NUM_BITS" /> biters):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5403,6 +5419,7 @@
 <translation id="6196640612572343990">Blokkér informasjonskapsler fra tredjeparter</translation>
 <translation id="6196854373336333322">Utvidelsen «<ph name="EXTENSION_NAME" />» har tatt kontroll over proxy-tjenerinnstillingene dine, noe som betyr at den kan endre, ødelegge eller spionere på alt du foretar deg på nettet. Hvis du ikke er sikker på hvorfor denne endringen fant sted, vil du mest sannsynlig ikke ha den.</translation>
 <translation id="6197128521826316819">Opprett en QR-kode for denne siden</translation>
+<translation id="6197223946499512637">Disse tilgangsnøklene lagres i Windows Hello på denne datamaskinen. De lagres ikke i Google-kontoen din.</translation>
 <translation id="6198252989419008588">Endre personlig kode</translation>
 <translation id="6200047250927636406">Forkast filen</translation>
 <translation id="6200151268994853226">Administrer utvidelsen</translation>
@@ -5700,6 +5717,7 @@
 <translation id="6482559668224714696">Lupe for hele skjermen</translation>
 <translation id="6483485061007832714">Åpne nedlasting</translation>
 <translation id="6483805311199035658">Åpner <ph name="FILE" /> ...</translation>
+<translation id="6486301003991593638">For å administrere tilgangsnøkler, bruk en nyere versjon av Windows</translation>
 <translation id="6488384360522318064">Velg språk</translation>
 <translation id="648927581764831596">Ikke tilgjengelig</translation>
 <translation id="6490471652906364588">USB-C-enhet (porten på høyre side)</translation>
@@ -6183,6 +6201,10 @@
 <translation id="6943939122536910181">Koblet fra <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Velg</translation>
 <translation id="694592694773692225">Viderekobling er blokkert på denne siden.</translation>
+<translation id="6947015141909171112">Du ser oppskrifter basert på nylig søkeaktivitet knyttet til oppskrifter.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Du kan administrere innstillinger via kortmenyen eller se flere alternativer i Tilpass Chrome.</translation>
 <translation id="6949434160682548041">Passord (valgfritt)</translation>
 <translation id="6950627417367801484">Gjenopprett apper</translation>
 <translation id="6952242901357037157">Du kan også vise passord fra <ph name="BEGIN_LINK" />Google-kontoen<ph name="END_LINK" /> din her</translation>
@@ -6282,6 +6304,7 @@
 <translation id="7029307918966275733">Crostini er ikke installert. Installer Crostini for å se anerkjennelser.</translation>
 <translation id="7029809446516969842">Passord</translation>
 <translation id="7030304022046916278">Sender nettadresser til Safe Browsing for å sjekke dem</translation>
+<translation id="7030695672997239647">Høyreklikk på en fane, velg «Legg fanen til i en gruppe», og velg deretter «Ny gruppe»</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> – seriell port er tilkoblet</translation>
 <translation id="7033616203784997570">Teksten kan ikke være lengre enn 62 tegn</translation>
 <translation id="7034692021407794547">En administrator med rettigheter til faktureringsadministrasjon må først godta vilkårene for bruk av Google Meet-enheter i delen Google Meet-enheter i administrasjonskonsollen.</translation>
@@ -6978,6 +7001,7 @@
 <translation id="7737115349420013392">Sammenkobler med «<ph name="DEVICE_NAME" />» …</translation>
 <translation id="7737846262459425222">Du kan når som helst endre dette i Innstillinger &gt; Google-assistent &gt; Skjermkontekst.</translation>
 <translation id="7737948071472253612">Nettsteder som ikke har lov til å bruke kameraet ditt</translation>
+<translation id="77381465218432215">Vis aksenttegn og spesialtegn</translation>
 <translation id="7740996059027112821">Standard</translation>
 <translation id="7741307896921365578">Slår på et sidepanel på nettlesernivå som gir deg en nyttig og vedvarende måte å få tilgang til leselisten din og bokmerkene dine på</translation>
 <translation id="7742558784808143689">Vil du slette nettstedsdata og -tillatelser for <ph name="SITE_NAME" />, alle undernettsteder og installerte apper?</translation>
@@ -7382,6 +7406,7 @@
 <translation id="8101987792947961127">Powerwash kreves ved neste omstart</translation>
 <translation id="81020759409809034">Lokal plassering</translation>
 <translation id="8102139037507939978">Fjern personlig identifiserende informasjon fra system_logs.txt.</translation>
+<translation id="810362914482827094">Søk blant tilgangsnøkler</translation>
 <translation id="8104088837833760645">Last ned e-SIM-profilen</translation>
 <translation id="8105368624971345109">Slå av</translation>
 <translation id="8107015733319732394">Installerer Google Play-butikken på <ph name="DEVICE_TYPE" />-enheten din. Dette kan ta noen minutter.</translation>
@@ -7767,6 +7792,7 @@
 <translation id="8486666913807228950">Årsak: Fant den inverterte regelen <ph name="REVERT_RULE" /> på «Tving åpning i»-listen.</translation>
 <translation id="848666842773560761">En app prøver å bruke kameraet. Slå av personvernbryteren for kamera for å gi tilgang.</translation>
 <translation id="8487678622945914333">Zoom inn</translation>
+<translation id="8487699605742506766">Wifi-sone</translation>
 <translation id="8489156414266187072">Personlige forslag vises kun på kontoen din</translation>
 <translation id="8490896350101740396">Kioskappene «<ph name="UPDATED_APPS" />» er oppdatert. Start opp enheten på nytt for å fullføre oppdateringsprosessen.</translation>
 <translation id="8492685019009920170">Trykk på fingeravtrykkssensoren med fingeren. Dataene dine lagres sikkert og sendes aldri fra <ph name="DEVICE_TYPE" />.</translation>
@@ -7828,6 +7854,7 @@
 <translation id="8557022314818157177">Fortsett å berøre sikkerhetsnøkkelen til fingeravtrykket er registrert</translation>
 <translation id="8557180006508471423">Slå på «Google Chrome» i Stedstjenester på Macen</translation>
 <translation id="8557856025359704738">Neste nedlasting utføres <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Tilgangsnøkler</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Åpne alle i &amp;nytt vindu}=1{Åpne i &amp;nytt vindu}other{Åpne alle ({COUNT}) i &amp;nytt vindu}}</translation>
 <translation id="8561206103590473338">Elefant</translation>
 <translation id="8561565784790166472">Vær forsiktig når du går videre</translation>
@@ -7954,6 +7981,7 @@
 <translation id="8677212948402625567">Skjul alle</translation>
 <translation id="867767487203716855">Neste oppdatering</translation>
 <translation id="8677859815076891398">Ingen album. Opprett et album i <ph name="LINK_BEGIN" />Google Foto<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Start på nytt og få automatiske oppdateringer</translation>
 <translation id="8678538439778360739">Data er kryptert med passordfrasen din for synkronisering <ph name="TIME" />. Dette inkluderer ikke betalingsmåter og adresser fra Google Pay.</translation>
 <translation id="8678582529642151449">Faner krymper ikke</translation>
 <translation id="8678933587484842200">Hvordan vil du at denne appen skal starte?</translation>
@@ -8200,6 +8228,7 @@
 <translation id="8910987510378294980">Skjul enhetslisten</translation>
 <translation id="8912362522468806198">Google-konto</translation>
 <translation id="8912810933860534797">Aktivér automatisk skanning</translation>
+<translation id="8915307125957890427">Høyreklikk på en fane, velg «Legg fanen til i en gruppe», og velg deretter «Ny gruppe»</translation>
 <translation id="8915370057835397490">Laster inn forslag …</translation>
 <translation id="8916476537757519021">Inkognito-underramme: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" /> – <ph name="DEVICE_TYPE" /></translation>
@@ -8260,6 +8289,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{«<ph name="TAB_TITLE" />»}=1{«<ph name="TAB_TITLE" />» og 1 annen fane}other{«<ph name="TAB_TITLE" />» og # andre faner}}</translation>
 <translation id="8977811652087512276">Feil passord eller skadet fil</translation>
 <translation id="8978154919215542464">På – synkroniser alt</translation>
+<translation id="8978670037548431647">Last inn funksjonalitet for internettdeling på nytt</translation>
 <translation id="897939795688207351">På <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Tilbakemeldingsrapporter</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – krasjet</translation>
@@ -8273,6 +8303,7 @@
 <translation id="8986362086234534611">Glem</translation>
 <translation id="8986494364107987395">Send bruksstatistikk og programstopprapporter automatisk til Google</translation>
 <translation id="8987927404178983737">Måned</translation>
+<translation id="8989359959810288806">Last inn statusen for internettdeling på nytt</translation>
 <translation id="8991520179165052608">Nettstedet kan bruke mikrofonen din</translation>
 <translation id="899384117894244799">Fjern begrenset bruker</translation>
 <translation id="899403249577094719">Primære nettadresse for Netscape-sertifikat</translation>
@@ -8524,6 +8555,7 @@
 <translation id="935854577147268200">Smart Lock-telefonen er endret. Skriv inn passordet ditt for å oppdatere Smart Lock. Neste gang låser telefonen opp <ph name="DEVICE_TYPE" />-enheten din. Du kan slå av Smart Lock i innstillingene</translation>
 <translation id="936646668635477464">Kamera og mikrofon</translation>
 <translation id="936801553271523408">Systemdiagnostikkdata</translation>
+<translation id="937053962468712792">Vil du fjerne <ph name="DEVICE" /> fra <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Reparer utvidelsen</translation>
 <translation id="938568644810664664">Prøv «Hey Google, hvilken sang er dette?» eller «Hey Google, hva er på skjermen min?»</translation>
 <translation id="938623846785894166">Uvanlig fil</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index 1636d0241..ae129c6 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -4810,7 +4810,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI ଡିଭାଇସଗୁଡ଼ିକ ସହିତ ସଂଯୋଗ କରିବାକୁ ଅନୁମତି ଦିଆଯାଇନାହିଁ</translation>
 <translation id="5602765853043467355">ଏହି ଡିଭାଇସ୍‌ରୁ ବୁକ୍‌ମାର୍କ, ଇତିବୃତ୍ତି, ପାସ୍‌ୱର୍ଡ ଏବଂ ଆହୁରି ଅନେକ କିଛି ଖାଲି କରନ୍ତୁ</translation>
-<translation id="5605623530403479164">ଅନ୍ୟ ସନ୍ଧାନ ଇଞ୍ଜିନସମୂହ</translation>
 <translation id="5605758115928394442">ଏହା ଆପଣ ବୋଲି ସୁନିଶ୍ଚିତ କରିବା ପାଇଁ ଆପଣଙ୍କ ଫୋନ୍‌କୁ ଗୋଟିଏ ବିଜ୍ଞପ୍ତି ପଠାଯାଇଥିଲା।</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ଏହି ଏକ୍ସଟେନସନକୁ ବ୍ଲକ୍ କରାଯାଇଛି}other{ଏହି ଏକ୍ସଟେନସନଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରାଯାଇଛି}}</translation>
 <translation id="560834977503641186">ୱାଇ-ଫାଇ ସିଙ୍କ୍, ଅଧିକ ଜାଣନ୍ତୁ</translation>
@@ -5107,6 +5106,7 @@
 <translation id="5909379458939060601">ଏହି ପ୍ରୋଫାଇଲ ଏବଂ ବ୍ରାଉଜିଂ ଡାଟାକୁ ଡିଲିଟ କରିବେ?</translation>
 <translation id="5910363049092958439">ଛବି ଏପରି ଭାବେ &amp;ସେଭ୍ କରନ୍ତୁ...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ଅଫଲାଇନ୍ ଅଛି</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">ସର୍ଟ୍‍କର୍ଟ ଭ୍ୟୁଅର୍</translation>
 <translation id="5914724413750400082">ମୋଡ୍ୟୁଲସ୍‌ (<ph name="MODULUS_NUM_BITS" /> ବିଟସ୍‍):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index 11ffc94..6af9a71 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -4839,7 +4839,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI ਡੀਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ</translation>
 <translation id="5602765853043467355">ਇਸ ਡੀਵਾਈਸ ਵਿੱਚੋਂ ਬੁੱਕਮਾਰਕ, ਇਤਿਹਾਸ, ਪਾਸਵਰਡ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਨੂੰ ਕਲੀਅਰ ਕਰੋ</translation>
-<translation id="5605623530403479164">ਹੋਰ ਖੋਜ ਇੰਜਣ</translation>
 <translation id="5605758115928394442">ਤੁਹਾਡੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਇੱਕ ਸੂਚਨਾ ਤੁਹਾਡੇ ਫ਼ੋਨ 'ਤੇ ਭੇਜੀ ਗਈ।</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਬਲਾਕ ਕੀਤਾ ਗਿਆ ਹੈ}one{ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਬਲਾਕ ਕੀਤਾ ਗਿਆ ਹੈ}other{ਇਨ੍ਹਾਂ ਐਕਸਟੈਂਸ਼ਨਾਂ ਨੂੰ ਬਲਾਕ ਕੀਤਾ ਗਿਆ ਹੈ}}</translation>
 <translation id="560834977503641186">ਵਾਈ-ਫਾਈ ਸਿੰਕ, ਹੋਰ ਜਾਣੋ</translation>
@@ -5140,6 +5139,7 @@
 <translation id="5909379458939060601">ਕੀ ਇਸ ਪ੍ਰੋਫਾਈਲ ਅਤੇ ਬ੍ਰਾਊਜ਼ਿੰਗ ਡਾਟੇ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?</translation>
 <translation id="5910363049092958439">ਦੇ ਤੌਰ ਤੇ ਚਿੱਤਰ ਰੱ&amp;ਖਿਅਤ ਕਰੋ...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ਆਫ਼ਲਾਈਨ ਹੈ</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">ਸ਼ਾਰਟਕੱਟ ਵਿਊਅਰ</translation>
 <translation id="5914724413750400082">ਮਾੱਡਿਊਲਸ (<ph name="MODULUS_NUM_BITS" /> bits):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 2f0a48e..a2497c4 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -2181,6 +2181,7 @@
 <translation id="3021065318976393105">Na baterii</translation>
 <translation id="3021066826692793094">Motyl</translation>
 <translation id="3021678814754966447">&amp;Wyświetl źródło ramki</translation>
+<translation id="3022361196600037287">Urządzenie <ph name="DEVICE" /> zostanie usunięte z tego Chromebooka i nie zostanie zapisane na koncie <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Nie rozumiem.</translation>
 <translation id="3023464535986383522">Przeczytaj na głos</translation>
 <translation id="3024374909719388945">Zegar 24-godzinny</translation>
@@ -3719,6 +3720,7 @@
 <translation id="4535127706710932914">Profil domyślny</translation>
 <translation id="4535767533210902251">Czytnik linii papilarnych to klawisz w prawym górnym rogu klawiatury. Dotknij go delikatnie dowolnym palcem.</translation>
 <translation id="4536140153723794651">Witryny, które zawsze mogą używać plików cookie</translation>
+<translation id="4536769240747010177">Funkcje tetheringu:</translation>
 <translation id="4538417792467843292">Usuń słowo</translation>
 <translation id="4538792345715658285">Zainstalowane na podstawie zasad przedsiębiorstwa.</translation>
 <translation id="4541123282641193691">Nie udało się zweryfikować Twojego konta. Spróbuj jeszcze raz lub ponownie uruchom Chromebooka.</translation>
@@ -3746,6 +3748,7 @@
 <translation id="4561893854334016293">Brak zmienianych ostatnio ustawień</translation>
 <translation id="4562155214028662640">Dodaj odcisk palca</translation>
 <translation id="4563210852471260509">Początkowy język wprowadzania: chiński</translation>
+<translation id="4563382028841851106">Usuń z konta</translation>
 <translation id="4563880231729913339">Palec 3</translation>
 <translation id="4564245002465020751">Zakończ konfigurację na telefonie</translation>
 <translation id="4565377596337484307">Ukryj hasło</translation>
@@ -4795,7 +4798,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Nie zezwolono na łączenie się z urządzeniami MIDI</translation>
 <translation id="5602765853043467355">Usuń z tego urządzenia zakładki, historię, hasła i inne informacje</translation>
-<translation id="5605623530403479164">Inne wyszukiwarki</translation>
 <translation id="5605758115928394442">Wysłaliśmy powiadomienie na Twój telefon, by potwierdzić, że to Ty.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{To rozszerzenie jest zablokowane}few{Te rozszerzenia są zablokowane}many{Te rozszerzenia są zablokowane}other{Te rozszerzenia są zablokowane}}</translation>
 <translation id="560834977503641186">Synchronizacja Wi-Fi, więcej informacji</translation>
@@ -5094,6 +5096,7 @@
 <translation id="5909379458939060601">Usunąć ten profil i dane przeglądania?</translation>
 <translation id="5910363049092958439">Zapisz gra&amp;fikę jako...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> jest offline</translation>
+<translation id="5911030830365207728">Tłumacz Google</translation>
 <translation id="5911533659001334206">Przeglądarka skrótów</translation>
 <translation id="5914724413750400082">Modulo (<ph name="MODULUS_NUM_BITS" /> b):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6167,6 +6170,8 @@
 <translation id="6943939122536910181">Rozłączono z: <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Wybierz</translation>
 <translation id="694592694773692225">Przekierowanie zostało zablokowane na tej stronie.</translation>
+<translation id="6947015141909171112">Widzisz przepisy wybrane na podstawie Twojej ostatniej aktywności związanej z ich wyszukiwaniem.
+        <ph name="BREAK" /><ph name="BREAK" />Możesz zarządzać ustawieniami w menu karty lub zobaczyć więcej opcji w sekcji dostosowania Chrome.</translation>
 <translation id="6949434160682548041">Hasło (opcjonalnie)</translation>
 <translation id="6950627417367801484">Przywróć aplikacje</translation>
 <translation id="6952242901357037157">Możesz tu też wyświetlać hasła zapisane na <ph name="BEGIN_LINK" />koncie Google<ph name="END_LINK" /></translation>
@@ -6962,6 +6967,7 @@
 <translation id="7737115349420013392">Paruję z urządzeniem „<ph name="DEVICE_NAME" />”…</translation>
 <translation id="7737846262459425222">W dowolnej chwili możesz to zmienić, klikając Ustawienia &gt; Asystent Google &gt; Kontekst z ekranu.</translation>
 <translation id="7737948071472253612">Nie zezwolono na używanie kamery</translation>
+<translation id="77381465218432215">Pokazuj znaki akcentu i znaki specjalne</translation>
 <translation id="7740996059027112821">Standardowa</translation>
 <translation id="7741307896921365578">Włącza panel boczny na poziomie przeglądarki, zapewniający stały i praktyczny dostęp do listy Do przeczytania i zakładek.</translation>
 <translation id="7742558784808143689">Czy chcesz wyczyścić dane i uprawnienia witryny <ph name="SITE_NAME" /> i jej witryn podrzędnych oraz zainstalowanych z niej aplikacji?</translation>
@@ -7752,6 +7758,7 @@
 <translation id="8486666913807228950">Przyczyna: na liście „Wymuszaj otwieranie w” znaleziono odwróconą regułę <ph name="REVERT_RULE" />.</translation>
 <translation id="848666842773560761">Aplikacja próbuje uzyskać dostęp do kamery. Aby na to zezwolić, wyłącz przełącznik prywatności kamery.</translation>
 <translation id="8487678622945914333">Powiększ</translation>
+<translation id="8487699605742506766">Hotspot</translation>
 <translation id="8489156414266187072">Spersonalizowane sugestie są pokazywane tylko na Twoim koncie</translation>
 <translation id="8490896350101740396">Zaktualizowano aplikacje kiosku: „<ph name="UPDATED_APPS" />”. Uruchom ponownie urządzenie, by zakończyć proces aktualizacji.</translation>
 <translation id="8492685019009920170">Przyłóż palec do czytnika linii papilarnych. Odciski palców są przechowywane w bezpieczny sposób i wyłącznie na Twoim urządzeniu <ph name="DEVICE_TYPE" />.</translation>
@@ -8247,6 +8254,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{„<ph name="TAB_TITLE" />”}=1{„<ph name="TAB_TITLE" />” i jeszcze jedna karta}few{„<ph name="TAB_TITLE" />” i # inne karty}many{„<ph name="TAB_TITLE" />” i # innych kart}other{„<ph name="TAB_TITLE" />” i # innej karty}}</translation>
 <translation id="8977811652087512276">Nieprawidłowe hasło lub uszkodzony plik</translation>
 <translation id="8978154919215542464">Włączono synchronizację wszystkich danych</translation>
+<translation id="8978670037548431647">Odśwież funkcje tetheringu</translation>
 <translation id="897939795688207351">Na <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Przesyłanie opinii</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – awaria</translation>
@@ -8508,6 +8516,7 @@
 <translation id="935854577147268200">Telefon z funkcją Smart Lock został zmieniony. Wpisz hasło, by zaktualizować Smart Lock. Następnym razem Twój telefon odblokuje urządzenie <ph name="DEVICE_TYPE" />. Smart Lock możesz wyłączyć w Ustawieniach.</translation>
 <translation id="936646668635477464">Kamera i mikrofon</translation>
 <translation id="936801553271523408">Systemowe dane diagnostyczne</translation>
+<translation id="937053962468712792">Usunąć urządzenie <ph name="DEVICE" /> z konta <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Napraw rozszerzenie</translation>
 <translation id="938568644810664664">Zapytaj „OK Google, co to za piosenka?” lub „OK Google, co widać na moim ekranie?”</translation>
 <translation id="938623846785894166">Nietypowy plik</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index e382b7a0..4c14e92 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Usar microfone e câmera</translation>
 <translation id="1005333234656240382">Ativar a depuração do adb?</translation>
 <translation id="1006873397406093306">Esta extensão pode ler e alterar seus dados em sites. É possível controlar a quais sites a extensão terá acesso.</translation>
+<translation id="1007057452468855774">Ativar a Google Play Store</translation>
 <translation id="1008186147501209563">Exportar favoritos</translation>
 <translation id="1008557486741366299">Não agora</translation>
 <translation id="1009476156254802388">Localização no <ph name="WEB_DRIVE" /></translation>
 <translation id="1009663062402466586">Controles do jogo já disponíveis</translation>
 <translation id="1010498023906173788">Esta guia está conectada a uma porta serial.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Página sem resposta}one{Páginas sem resposta}other{Páginas sem resposta}}</translation>
+<translation id="1011003645819296594">Dispositivos salvos</translation>
 <translation id="1011355516189274711">Volume da conversão de texto em voz</translation>
 <translation id="1012794136286421601">Seus arquivos do Google Docs, Planilhas, Apresentações e Desenhos estão sendo sincronizados. Abra o aplicativo Google Drive para acessá-los on-line ou off-line.</translation>
 <translation id="1012876632442809908">Dispositivo USB-C (porta frontal)</translation>
@@ -495,6 +497,7 @@
 <translation id="1470350905258700113">Usar este dispositivo</translation>
 <translation id="1470946456740188591">Para ativar ou desativar a Caret Browsing, use o atalho Ctrl+Pesquisa+7</translation>
 <translation id="1472675084647422956">Mostrar mais</translation>
+<translation id="1473223074251193484">Definir configuração do tethering</translation>
 <translation id="1474785664565228650">A mudança na configuração do microfone exige que você reinicialize o Parallels Desktop. Faça isso para continuar.</translation>
 <translation id="1474893630593443211">Mais controle sobre os anúncios que você vê</translation>
 <translation id="1475502736924165259">Você tem certificados no arquivo que não correspondem a nenhuma das outras categorias</translation>
@@ -1126,6 +1129,7 @@
 <translation id="2044014337866019681">Você precisa verificar a conta <ph name="ACCOUNT" /> para desbloquear a sessão.</translation>
 <translation id="204497730941176055">Nome do modelo de certificado da Microsoft</translation>
 <translation id="2045117674524495717">Assistente de atalhos do teclado</translation>
+<translation id="2045211794962848221">Essa mensagem específica não vai ser mostrada novamente</translation>
 <translation id="2045969484888636535">Continuar bloqueando cookies</translation>
 <translation id="204622017488417136">Seu dispositivo voltará à versão do Google Chrome instalada anteriormente. Todas as contas de usuário e dados locais serão removidos. Esta ação não pode ser desfeita.</translation>
 <translation id="2046702855113914483">Lámen</translation>
@@ -3816,6 +3820,7 @@
 <translation id="4594577641390224176">Procurando a página de detalhes do sistema? Acesse</translation>
 <translation id="4595560905247879544">Apps e extensões só podem ser modificadas pelo gerente (<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">Você tem certificados no arquivo que identificam estes servidores</translation>
+<translation id="4598345735110653698">Gerenciar senhas de acesso</translation>
 <translation id="4598556348158889687">Gestão de armazenamento</translation>
 <translation id="4598776695426288251">Wi-Fi disponível por meio de vários dispositivos</translation>
 <translation id="4601426376352205922">Marcar como não lido</translation>
@@ -4041,6 +4046,7 @@
 <translation id="4823894915586516138">O uso de um PIN ou uma senha protege seus dados neste <ph name="DEVICE_TYPE" />, incluindo qualquer informação que você acesse pelo seu smartphone.</translation>
 <translation id="4824037980212326045">Backup e restauração do Linux</translation>
 <translation id="4824958205181053313">Cancelar sincronização?</translation>
+<translation id="4825532258163983651">Falha ao excluir a senha de acesso</translation>
 <translation id="4827675678516992122">Não foi possível conectar</translation>
 <translation id="4827784381479890589">Verificação ortográfica melhorada no navegador Chrome (o texto é enviado ao Google para sugestões de ortografia)</translation>
 <translation id="4827904420700932487">Criar código QR para esta imagem</translation>
@@ -4303,6 +4309,7 @@
 <translation id="5087249366037322692">Adicionada por um terceiro</translation>
 <translation id="5087580092889165836">Adicionar cartão</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 com criptografia RSA</translation>
+<translation id="5089763948477033443">Alça de redimensionamento do painel lateral</translation>
 <translation id="5090637338841444533">Bloquear o monitoramento da posição da câmera</translation>
 <translation id="5093569275467863761">Subframe de navegação anônima salvo em cache de avanço e retorno: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Com este app, é possível abrir e editar arquivos com suporte usando o app Arquivos ou outros. Para controlar quais arquivos são abertos nesse app por padrão, <ph name="BEGIN_LINK" />aprenda a definir os apps padrão no seu dispositivo<ph name="END_LINK" />.</translation>
@@ -4468,6 +4475,7 @@
 <translation id="5258992782919386492">Instalar neste dispositivo</translation>
 <translation id="5260334392110301220">Aspas inglesas</translation>
 <translation id="5260508466980570042">Não foi possível confirmar seu e-mail ou senha. Tente novamente.</translation>
+<translation id="5260958083445173099">Sempre que possível, os sites vão mostrar conteúdo nesses idiomas.</translation>
 <translation id="5261683757250193089">Abrir na Web Store</translation>
 <translation id="5262178194499261222">Remover senha</translation>
 <translation id="5262784498883614021">Conectar-se automaticamente à rede</translation>
@@ -4508,6 +4516,7 @@
 <translation id="5294097441441645251">Comece com um caractere minúsculo ou um sublinhado</translation>
 <translation id="5294618183559481278">Seu <ph name="DEVICE_TYPE" /> usa um sensor integrado para detectar pessoas em frente ao dispositivo. Todos os dados são processados no dispositivo imediatamente e, em seguida, excluídos. Os dados do sensor nunca são enviados ao Google. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Ouça uma resposta falada para que você possa usar o dispositivo sem olhar para a tela. O feedback em braille está disponível quando há um dispositivo conectado.</translation>
+<translation id="5297005732522718715">Atualizar configuração do tethering</translation>
 <translation id="5297082477358294722">Senha salva. Veja e gerencie as senhas salvas na sua <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Mostrar o ícone de olho no canto inferior direito da tela quando outra pessoa olhar para ela</translation>
 <translation id="5298219193514155779">Tema criado por</translation>
@@ -4678,11 +4687,13 @@
 <translation id="5466374726908360271">Colar e pesquisar “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="5467207440419968613">Bloqueados: <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Procurando compartilhamento de arquivos</translation>
+<translation id="5468330507528805311">Status do tethering:</translation>
 <translation id="5468881191994555667">Escolher arquivo</translation>
 <translation id="5469852975082458401">Você pode navegar pelas páginas com um cursor de texto. Pressione F7 para desativar.</translation>
 <translation id="5470735824776589490">Para que seu dispositivo possa ser redefinido com o Powerwash, é necessário reiniciá-lo. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Olá! Eu sou sua voz para conversão de texto em voz.</translation>
 <translation id="5472627187093107397">Salvar senhas para este site</translation>
+<translation id="5473062644742711742">Encontre mais ferramentas de acessibilidade na Chrome Web Store</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">Ao continuar, você concorda que este dispositivo também pode fazer o download e a instalação de atualizações de apps do Google, da operadora da criança e do fabricante do dispositivo automaticamente, possivelmente usando dados da rede celular. Alguns aplicativos podem oferecer compras no app.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{O PIN precisa ter pelo menos 1 caractere}one{O PIN precisa ter pelo menos # caractere}other{O PIN precisa ter pelo menos # caracteres}}</translation>
@@ -4830,7 +4841,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Bloquear a conexão a dispositivos MIDI</translation>
 <translation id="5602765853043467355">Limpar favoritos, histórico, senhas e mais deste dispositivo.</translation>
-<translation id="5605623530403479164">Outros mecanismos de pesquisa</translation>
 <translation id="5605758115928394442">Uma notificação foi enviada ao seu smartphone para confirmar sua identidade.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{A extensão está bloqueada}one{A extensão está bloqueada}other{As extensões estão bloqueadas}}</translation>
 <translation id="560834977503641186">Saiba mais sobre o Sincronizar Wi-Fi</translation>
@@ -4955,6 +4965,7 @@
 <translation id="5734362860645681824">Comunicações</translation>
 <translation id="5734697361979786483">Adicionar compartilhamento de arquivos</translation>
 <translation id="5736796278325406685">Insira um nome de usuário válido</translation>
+<translation id="5738093759615225354">Essa senha de acesso é necessária para fazer login no seu computador</translation>
 <translation id="5739017626473506901">Faça login para ajudar <ph name="USER_NAME" /> a adicionar uma conta escolar</translation>
 <translation id="5739235828260127894">Aguardando verificação. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Muito grande</translation>
@@ -5116,6 +5127,7 @@
 <translation id="589541317545606110">Pesquisar a página com o <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Não permitir</translation>
 <translation id="5900186025777217044">O Smart Lock mudou</translation>
+<translation id="5900243355162006650">Configuração do tethering:</translation>
 <translation id="5900302528761731119">Foto do perfil do Google</translation>
 <translation id="590036993063074298">Detalhes da qualidade do espelhamento</translation>
 <translation id="5901069264981746702">Seus dados de impressão digital são armazenados de forma segura e nunca saem do <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
@@ -5130,6 +5142,7 @@
 <translation id="5909379458939060601">Excluir este perfil e os dados de navegação?</translation>
 <translation id="5910363049092958439">Sal&amp;var imagem como...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> está off-line</translation>
+<translation id="5911030830365207728">Google Tradutor</translation>
 <translation id="5911533659001334206">Visualizador de atalhos</translation>
 <translation id="5914724413750400082">Módulo (<ph name="MODULUS_NUM_BITS" /> bits):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5419,6 +5432,7 @@
 <translation id="6196640612572343990">Bloquear cookies de terceiros</translation>
 <translation id="6196854373336333322">A extensão "<ph name="EXTENSION_NAME" />" assumiu o controle das suas configurações de proxy, o que significa que ela pode alterar, invadir ou escutar qualquer coisa que você fizer on-line. Se você não tiver certeza do motivo dessa alteração, provavelmente não a deseja.</translation>
 <translation id="6197128521826316819">Criar código QR para esta página</translation>
+<translation id="6197223946499512637">Essas senhas de acesso são armazenadas no Windows Hello neste computador. Elas não são salvas na sua Conta do Google.</translation>
 <translation id="6198252989419008588">Alterar PIN</translation>
 <translation id="6200047250927636406">Descartar arquivo</translation>
 <translation id="6200151268994853226">Gerenciar extensão</translation>
@@ -5716,6 +5730,7 @@
 <translation id="6482559668224714696">Lupa de tela cheia</translation>
 <translation id="6483485061007832714">Abrir o download</translation>
 <translation id="6483805311199035658">Abrindo <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">Para gerenciar senhas de acesso, use uma versão mais recente do Windows</translation>
 <translation id="6488384360522318064">Selecionar idioma</translation>
 <translation id="648927581764831596">Nenhum disponível</translation>
 <translation id="6490471652906364588">Dispositivo USB-C (porta da direita)</translation>
@@ -6304,6 +6319,7 @@
 <translation id="7029307918966275733">O Crostini não está instalado. Instale o Crostini para ver os créditos.</translation>
 <translation id="7029809446516969842">Senhas</translation>
 <translation id="7030304022046916278">Envia URLs para a verificação do Navegação segura</translation>
+<translation id="7030695672997239647">Clique com o botão direito do mouse em uma guia e selecione as opções "Adicionar guia ao grupo" e "Novo grupo"</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" />: porta serial conectada</translation>
 <translation id="7033616203784997570">A entrada precisa ter no máximo 62 caracteres</translation>
 <translation id="7034692021407794547">Um administrador com privilégios para gerenciar faturamento precisa aceitar os Termos de Serviço do hardware do Google Meet na seção "Hardware do Google Meet" do Admin Console.</translation>
@@ -7406,6 +7422,7 @@
 <translation id="8101987792947961127">Powerwash obrigatório na próxima reinicialização</translation>
 <translation id="81020759409809034">Local</translation>
 <translation id="8102139037507939978">Remover informações de identificação pessoal de system_logs.txt.</translation>
+<translation id="810362914482827094">Pesquisar senhas de acesso</translation>
 <translation id="8104088837833760645">Fazer o download do perfil do eSIM</translation>
 <translation id="8105368624971345109">Desativar</translation>
 <translation id="8107015733319732394">Instalando a Google Play Store no seu <ph name="DEVICE_TYPE" />. Isso pode demorar alguns minutos.</translation>
@@ -7853,6 +7870,7 @@
 <translation id="8557022314818157177">Continue tocando na sua chave de segurança até capturar sua impressão digital</translation>
 <translation id="8557180006508471423">Ativar o Google Chrome nos Serviços de localização do Mac</translation>
 <translation id="8557856025359704738">O próximo download vai ser feito em <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Senhas de acesso</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Abrir tudo em &amp;uma nova janela}=1{Abrir em &amp;uma nova janela}one{Abrir tudo ({COUNT}) em &amp;uma nova janela}other{Abrir tudo ({COUNT}) em &amp;uma nova janela}}</translation>
 <translation id="8561206103590473338">Elefante</translation>
 <translation id="8561565784790166472">Prossiga com cautela</translation>
@@ -7979,6 +7997,7 @@
 <translation id="8677212948402625567">Recolher tudo...</translation>
 <translation id="867767487203716855">Próxima atualização</translation>
 <translation id="8677859815076891398">Nenhum álbum. Crie um no <ph name="LINK_BEGIN" />Google Fotos<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Reiniciar e receber atualizações automáticas</translation>
 <translation id="8678538439778360739">Os dados foram criptografados com sua senha longa de sincronização em <ph name="TIME" />. Isso não inclui formas de pagamento e endereços do Google Pay.</translation>
 <translation id="8678582529642151449">as guias não são encolhidas</translation>
 <translation id="8678933587484842200">Como você gostaria que este app fosse iniciado?</translation>
@@ -8226,6 +8245,7 @@
 <translation id="8910987510378294980">Ocultar lista de dispositivos</translation>
 <translation id="8912362522468806198">Conta do Google</translation>
 <translation id="8912810933860534797">Ativar leitura automática</translation>
+<translation id="8915307125957890427">Clique com o botão direito do mouse em uma guia e selecione as opções "Adicionar guia ao grupo" e "Novo grupo"</translation>
 <translation id="8915370057835397490">Carregando sugestão</translation>
 <translation id="8916476537757519021">Subquadro anônimo: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="DEVICE_TYPE" /> de <ph name="GIVEN_NAME" /></translation>
@@ -8300,6 +8320,7 @@
 <translation id="8986362086234534611">Esquecer</translation>
 <translation id="8986494364107987395">Envia estatísticas de uso e relatórios de erros ao Google automaticamente</translation>
 <translation id="8987927404178983737">Mês</translation>
+<translation id="8989359959810288806">Atualizar status do tethering</translation>
 <translation id="8991520179165052608">O site pode usar seu microfone</translation>
 <translation id="899384117894244799">Remover usuário restrito</translation>
 <translation id="899403249577094719">URL base do certificado do Netscape</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 1ae16eaa..917b721 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -4824,7 +4824,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Sem autorização para estabelecer ligação a dispositivos MIDI</translation>
 <translation id="5602765853043467355">Limpar os marcadores, o histórico, as palavras-passe e mais dados deste dispositivo</translation>
-<translation id="5605623530403479164">Outros motores de pesquisa</translation>
 <translation id="5605758115928394442">Foi enviada uma notificação para o seu telemóvel para confirmar a sua identidade.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Esta extensão está bloqueada}other{Estas extensões estão bloqueadas}}</translation>
 <translation id="560834977503641186">Sync Wi-Fi, saiba mais</translation>
@@ -5126,6 +5125,7 @@
 <translation id="5909379458939060601">Eliminar este perfil e os dados de navegação?</translation>
 <translation id="5910363049092958439">Guard&amp;ar Imagem Como...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> está offline.</translation>
+<translation id="5911030830365207728">Google Tradutor</translation>
 <translation id="5911533659001334206">Visualizador de atalhos</translation>
 <translation id="5914724413750400082">Módulo (<ph name="MODULUS_NUM_BITS" /> bits):
   <ph name="MODULUS_HEX_DUMP" />
@@ -8443,7 +8443,7 @@
 <translation id="9115675100829699941">&amp;Marcadores</translation>
 <translation id="9116465289595958864">Última modificação</translation>
 <translation id="9116799625073598554">Aplicação para tirar notas</translation>
-<translation id="9117030152748022724">Efetue a gestão das suas aplicações</translation>
+<translation id="9117030152748022724">Gerir as suas apps</translation>
 <translation id="9120693811286642342"><ph name="BEGIN_PARAGRAPH1" />Para obter a melhor experiência, instale o <ph name="DEVICE_OS" /> no seu disco interno. Também pode instalá-lo mais tarde a partir do ecrã de início de sessão.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Se não tiver tudo pronto para instalar, pode executar a partir de uma unidade USB para o experimentar. Deste modo, mantém o seu SO e dados existentes, mas pode verificar limites ao nível do armazenamento e desempenho.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="9121814364785106365">Abrir como separador fixo</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index c7ad40fb..fef5df2c 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Utilizează microfonul și camera foto</translation>
 <translation id="1005333234656240382">Activezi remedierea erorilor prin ADB?</translation>
 <translation id="1006873397406093306">Această extensie poate să citească și să schimbe datele site-urilor. Poți controla ce site-uri poate accesa extensia.</translation>
+<translation id="1007057452468855774">Activează Magazinul Google Play</translation>
 <translation id="1008186147501209563">Exportă marcajele</translation>
 <translation id="1008557486741366299">Nu acum</translation>
 <translation id="1009476156254802388">Locație <ph name="WEB_DRIVE" /></translation>
 <translation id="1009663062402466586">Comenzile pentru joc sunt acum disponibile</translation>
 <translation id="1010498023906173788">Această filă este conectată la un port serial.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Pagină inactivă}few{Pagini inactive}other{Pagini inactive}}</translation>
+<translation id="1011003645819296594">Dispozitive salvate</translation>
 <translation id="1011355516189274711">Volumul de redare vocală a textului</translation>
 <translation id="1012794136286421601">Se sincronizează fișierele din Documente Google, Foi de calcul, Prezentări și Desene. Deschideți aplicația Google Drive pentru a le accesa online sau offline.</translation>
 <translation id="1012876632442809908">Dispozitiv USB-C (portul din față)</translation>
@@ -492,6 +494,7 @@
 <translation id="1470350905258700113">Folosește acest dispozitiv</translation>
 <translation id="1470946456740188591">Pentru a activa sau a dezactiva navigarea cu tastatura, folosește comanda rapidă Ctrl + tasta de căutare + 7</translation>
 <translation id="1472675084647422956">Afișați mai multe</translation>
+<translation id="1473223074251193484">Setează configurația pentru tethering</translation>
 <translation id="1474785664565228650">Modificarea setării pentru microfon necesită relansarea Parallels Desktop. Relansează Parallels Desktop pentru a continua.</translation>
 <translation id="1474893630593443211">Control îmbunătățit asupra anunțurilor pe care le vezi</translation>
 <translation id="1475502736924165259">Ai stocate certificate care nu se încadrează în niciuna dintre celelalte categorii</translation>
@@ -896,6 +899,7 @@
 <translation id="1829129547161959350">Pinguin</translation>
 <translation id="1829192082282182671">Mi&amp;cșorează</translation>
 <translation id="1830550083491357902">Neconectat</translation>
+<translation id="1831848493690504725">Nu putem accesa Google prin rețeaua conectată. Încearcă să alegi altă rețea sau să verifici setările de rețea ori setările proxy (dacă folosești un proxy).</translation>
 <translation id="1832459821645506983">Da, accept</translation>
 <translation id="1832511806131704864">Schimbare a telefonului actualizată</translation>
 <translation id="1832848789136765277">Confirmă-ți identitatea ca să te asiguri că ai în permanență acces la datele sincronizate</translation>
@@ -1113,6 +1117,7 @@
 <translation id="2044014337866019681">Confirmă <ph name="ACCOUNT" /> pentru a debloca sesiunea.</translation>
 <translation id="204497730941176055">Nume șablon de certificat Microsoft</translation>
 <translation id="2045117674524495717">Ajutor pentru comenzi rapide de la tastatură</translation>
+<translation id="2045211794962848221">Nu vei mai vedea acest mesaj</translation>
 <translation id="2045969484888636535">Continuă blocarea cookie-urilor</translation>
 <translation id="204622017488417136">Dispozitivul va reveni la versiunea Chrome instalată anterior. Toate conturile de utilizator și datele locale vor fi eliminate. Această operațiune nu poate fi anulată.</translation>
 <translation id="2046702855113914483">Supă ramen</translation>
@@ -2194,6 +2199,7 @@
 <translation id="3021065318976393105">În timpul funcționării pe baterie</translation>
 <translation id="3021066826692793094">Fluture</translation>
 <translation id="3021678814754966447">&amp;Afișează sursa cadrului</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> va fi eliminat de pe acest Chromebook și nu va fi salvat în <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Nu am înțeles.</translation>
 <translation id="3023464535986383522">Selectează și ascultă</translation>
 <translation id="3024374909719388945">Utilizează formatul de 24 de ore</translation>
@@ -3732,6 +3738,7 @@
 <translation id="4535127706710932914">Profil prestabilit</translation>
 <translation id="4535767533210902251">Senzorul de amprentă este tasta din dreapta sus de pe tastatură. Atinge-l ușor cu orice deget.</translation>
 <translation id="4536140153723794651">Site-uri care pot folosi oricând cookie-uri</translation>
+<translation id="4536769240747010177">Capacitățile de tethering:</translation>
 <translation id="4538417792467843292">Șterge cuvântul</translation>
 <translation id="4538792345715658285">Instalată pe baza politicii întreprinderii.</translation>
 <translation id="4541123282641193691">Contul nu a putut fi verificat. Încearcă din nou sau repornește Chromebookul.</translation>
@@ -3759,6 +3766,7 @@
 <translation id="4561893854334016293">Nu există permisiuni modificate recent</translation>
 <translation id="4562155214028662640">Adaugă o amprentă</translation>
 <translation id="4563210852471260509">Limba inițială de introducere este chineza</translation>
+<translation id="4563382028841851106">Elimină din cont</translation>
 <translation id="4563880231729913339">Deget 3</translation>
 <translation id="4564245002465020751">Finalizează configurarea pe telefon</translation>
 <translation id="4565377596337484307">Ascunde parola</translation>
@@ -3795,6 +3803,7 @@
 <translation id="4594577641390224176">Cauți pagina despre sistem? Accesează</translation>
 <translation id="4595560905247879544">Aplicațiile și extensiile pot fi modificate numai de administrator (<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">Ai certificate stocate care identifică aceste servere</translation>
+<translation id="4598345735110653698">Gestionează cheile de acces</translation>
 <translation id="4598556348158889687">Gestionarea stocării</translation>
 <translation id="4598776695426288251">Conexiune Wi-Fi disponibilă prin mai multe dispozitive</translation>
 <translation id="4601426376352205922">Marchează ca necitit</translation>
@@ -4020,6 +4029,7 @@
 <translation id="4823894915586516138">Codul PIN sau parola îți protejează datele de pe <ph name="DEVICE_TYPE" />, inclusiv informațiile pe care le accesezi de pe telefon</translation>
 <translation id="4824037980212326045">Backupul și restabilirea în Linux</translation>
 <translation id="4824958205181053313">Anulezi sincronizarea?</translation>
+<translation id="4825532258163983651">Nu se poate șterge cheia de acces</translation>
 <translation id="4827675678516992122">Nu s-a putut conecta</translation>
 <translation id="4827784381479890589">Verificarea îmbunătățită a ortografiei în browserul Chrome (textul este trimis la Google pentru sugestii de ortografie)</translation>
 <translation id="4827904420700932487">Creează un cod QR pentru această imagine</translation>
@@ -4282,6 +4292,7 @@
 <translation id="5087249366037322692">Adăugată de o terță parte</translation>
 <translation id="5087580092889165836">Adaugă un card</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 cu criptare RSA</translation>
+<translation id="5089763948477033443">Ghidaj de redimensionare a panoului lateral</translation>
 <translation id="5090637338841444533">Nu au permisiunea de a urmări poziția camerei</translation>
 <translation id="5093569275467863761">Subcadru incognito din memoria cache înainte-înapoi: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Poți să deschizi și să editezi fișierele acceptate în această aplicație din aplicația Fișiere sau din alte aplicații. Pentru a alege fișierele care deschid aplicația în mod prestabilit, <ph name="BEGIN_LINK" />află cum să setezi aplicații prestabilite pe dispozitiv<ph name="END_LINK" />.</translation>
@@ -4447,6 +4458,7 @@
 <translation id="5258992782919386492">Instalează pe acest dispozitiv</translation>
 <translation id="5260334392110301220">Ghilimele inteligente</translation>
 <translation id="5260508466980570042">Ne pare rău, adresa de e-mail sau parola nu a putut fi verificată. Încearcă din nou.</translation>
+<translation id="5260958083445173099">Site-urile vor afișa conținut în limbile tale preferate, dacă este posibil</translation>
 <translation id="5261683757250193089">Deschide în Magazinul web</translation>
 <translation id="5262178194499261222">Elimină parola</translation>
 <translation id="5262784498883614021">Conectează-te automat la rețea</translation>
@@ -4487,6 +4499,7 @@
 <translation id="5294097441441645251">Trebuie să înceapă cu literă mică sau cu un caracter de subliniere</translation>
 <translation id="5294618183559481278"><ph name="DEVICE_TYPE" /> folosește un senzor încorporat pentru a detecta persoanele din fața dispozitivului. Toate datele sunt prelucrate imediat pe dispozitiv, apoi sunt șterse. Datele de la senzor nu sunt trimise niciodată la Google. <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Auzi feedback rostit, ca să poți folosi dispozitivul fără să te uiți la ecran. Feedbackul Braille este disponibil pe un dispozitiv conectat.</translation>
+<translation id="5297005732522718715">Actualizează configurația pentru tethering</translation>
 <translation id="5297082477358294722">Parola a fost salvată. Vezi și gestionează parolele salvate în <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Când altcineva îți privește ecranul, afișează pictograma Confidențialitate în formă de ochi în dreapta ecranului</translation>
 <translation id="5298219193514155779">Temă creată de</translation>
@@ -4657,11 +4670,13 @@
 <translation id="5466374726908360271">In&amp;serează și caută „<ph name="SEARCH_TERMS" />”</translation>
 <translation id="5467207440419968613">Permisiuni blocate: <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Se caută dispozitive de stocare în rețea</translation>
+<translation id="5468330507528805311">Starea tetheringului:</translation>
 <translation id="5468881191994555667">Alege un fișier</translation>
 <translation id="5469852975082458401">Poți să navighezi în pagini folosind cursorul pentru text. Apasă pe F7 pentru a-l dezactiva.</translation>
 <translation id="5470735824776589490">Trebuie să repornești dispozitivul înainte de a fi resetat folosind Powerwash. <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Bună! Eu sunt vocea pentru redarea vocală a textului.</translation>
 <translation id="5472627187093107397">Salvează parolele pentru acest site</translation>
+<translation id="5473062644742711742">Găsește mai multe instrumente de accesibilitate în Magazinul web Chrome</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">Dacă alegi să continui înseamnă că ești de acord ca dispozitivul să poată descărca și instala automat actualizări și aplicații de la Google, de la operatorul copilului și de la producătorul dispozitivului, probabil folosind datele mobile. Este posibil ca unele dintre aceste aplicații să ofere achiziții în aplicație.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Codul PIN trebuie să conțină minimum un caracter}few{Codul PIN trebuie să conțină minimum # caractere}other{Codul PIN trebuie să conțină minimum # de caractere}}</translation>
@@ -4735,6 +4750,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> dorește să</translation>
 <translation id="5534304873398226603">Șterge fotografia sau videoclipul</translation>
 <translation id="5537725057119320332">Proiectează</translation>
+<translation id="5539070192556911367">Nu se poate accesa Google</translation>
 <translation id="5539221284352502426">Parola pe care ai introdus-o a fost respinsă de server. Motivele posibile includ: parola este prea scurtă; parola trebuie să includă cifre sau simboluri; parola trebuie să fie diferită de parolele anterioare.</translation>
 <translation id="5541694225089836610">Acțiunea este dezactivată de administrator</translation>
 <translation id="5542132724887566711">Profil</translation>
@@ -4798,6 +4814,7 @@
 <translation id="5585912436068747822">Formatarea nu a reușit</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Se încarcă aplicațiile...</translation>
+<translation id="5590418976913374224">Redă sunet la pornirea dispozitivului</translation>
 <translation id="5592595402373377407">Nu există încă date suficiente.</translation>
 <translation id="5595307023264033512">Spațiul total de stocare folosit de site-uri: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Editează adresa</translation>
@@ -4807,7 +4824,6 @@
 <translation id="5601503069213153581">Cod PIN</translation>
 <translation id="5601823921345337195">Nu au permisiunea de a se conecta la dispozitive MIDI</translation>
 <translation id="5602765853043467355">Șterge marcajele, istoricul, parolele și altele de pe acest dispozitiv</translation>
-<translation id="5605623530403479164">Alte motoare de căutare</translation>
 <translation id="5605758115928394442">Ți s-a trimis o notificare pe telefon pentru a-ți confirma identitatea.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Extensia este blocată}few{Extensiile sunt blocate}other{Extensiile sunt blocate}}</translation>
 <translation id="560834977503641186">Sincronizare Wi-Fi, află mai multe</translation>
@@ -4931,6 +4947,7 @@
 <translation id="5734362860645681824">Comunicații</translation>
 <translation id="5734697361979786483">Adaugă un dispozitiv de stocare în rețea</translation>
 <translation id="5736796278325406685">Introdu un nume de utilizator valid</translation>
+<translation id="5738093759615225354">Ai nevoie de această cheie de acces pentru a te conecta la computer</translation>
 <translation id="5739017626473506901">Conectează-te pentru a ajuta utilizatorul <ph name="USER_NAME" /> să adauge un cont de la școală</translation>
 <translation id="5739235828260127894">Se așteaptă confirmarea. <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Foarte mare</translation>
@@ -5092,6 +5109,7 @@
 <translation id="589541317545606110">Pagină de căutare cu <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Nu permite</translation>
 <translation id="5900186025777217044">Funcția Smart Lock a fost modificată</translation>
+<translation id="5900243355162006650">Configurarea tetheringului:</translation>
 <translation id="5900302528761731119">Fotografie de profil Google</translation>
 <translation id="590036993063074298">Detalii privind calitatea oglindirii</translation>
 <translation id="5901069264981746702">Datele privind amprentele sunt stocate în siguranță și nu părăsesc niciodată dispozitivul <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation>
@@ -5106,6 +5124,7 @@
 <translation id="5909379458939060601">Ștergi profilul și datele de navigare?</translation>
 <translation id="5910363049092958439">Sal&amp;vează imaginea ca...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> este offline</translation>
+<translation id="5911030830365207728">Google Traducere</translation>
 <translation id="5911533659001334206">Vizualizatorul de comenzi rapide</translation>
 <translation id="5914724413750400082">Modul (<ph name="MODULUS_NUM_BITS" /> (de) biți):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5395,6 +5414,7 @@
 <translation id="6196640612572343990">Blochează cookie-urile terță parte</translation>
 <translation id="6196854373336333322">Extensia „<ph name="EXTENSION_NAME" />” a preluat controlul asupra setărilor de proxy, ceea ce înseamnă că poate modifica, întrerupe sau intercepta tot ceea ce faci online. Dacă nu știi sigur de ce a apărut această modificare, probabil că nu ai aprobat-o.</translation>
 <translation id="6197128521826316819">Creează un cod QR pentru această pagină</translation>
+<translation id="6197223946499512637">Aceste chei de acces sunt stocate în Windows Hello pe computer. Ele nu se salvează în Contul Google.</translation>
 <translation id="6198252989419008588">Schimbă codul PIN</translation>
 <translation id="6200047250927636406">Șterge fișierul</translation>
 <translation id="6200151268994853226">Gestionează extensia</translation>
@@ -5692,6 +5712,7 @@
 <translation id="6482559668224714696">Lupă de ecran complet</translation>
 <translation id="6483485061007832714">Deschide descărcarea</translation>
 <translation id="6483805311199035658">Se deschide <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">Pentru a gestiona cheile de acces, folosește o versiune mai nouă de Windows</translation>
 <translation id="6488384360522318064">Selectează limba</translation>
 <translation id="648927581764831596">Indisponibil</translation>
 <translation id="6490471652906364588">Dispozitiv USB-C (portul din dreapta)</translation>
@@ -6177,6 +6198,10 @@
 <translation id="6943939122536910181">Deconectat de la <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Selectează</translation>
 <translation id="694592694773692225">Redirecționarea a fost blocată pe această pagină.</translation>
+<translation id="6947015141909171112">Vezi rețete în funcție de cele pe care le-ai căutat recent.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Poți să gestionezi setările din meniul cardului sau să afișezi mai multe opțiuni în Personalizează Chrome.</translation>
 <translation id="6949434160682548041">Parolă (opțională)</translation>
 <translation id="6950627417367801484">Restabilește aplicațiile</translation>
 <translation id="6952242901357037157">În plus, aici poți afișa parolele din <ph name="BEGIN_LINK" />Contul tău Google<ph name="END_LINK" /></translation>
@@ -6276,6 +6301,7 @@
 <translation id="7029307918966275733">Crostini nu este instalat. Instalează Crostini pentru a afișa datele de conectare.</translation>
 <translation id="7029809446516969842">Parole</translation>
 <translation id="7030304022046916278">Trimite adresele URL la funcția Navigare sigură, pentru a le verifica</translation>
+<translation id="7030695672997239647">Dă clic dreapta pe o filă și selectează Adaugă fila într-un grup, apoi selectează Grup nou</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - Portul serial este conectat</translation>
 <translation id="7033616203784997570">Numele introdus trebuie să aibă maximum 62 de caractere</translation>
 <translation id="7034692021407794547">Un administrator cu privilegii de gestionare a facturării trebuie întâi să accepte Termenii și condițiile pentru hardware Google Meet din secțiunea Hardware Google Meet a Consolei de administrare.</translation>
@@ -6344,6 +6370,7 @@
 <translation id="7102687220333134671">Actualizările automate sunt activate</translation>
 <translation id="7102832101143475489">Solicitarea a expirat</translation>
 <translation id="710640343305609397">Deschide setările pentru rețea</translation>
+<translation id="7107609441453408294">Redă același conținut audio în toate difuzoarele</translation>
 <translation id="7108338896283013870">Ascunde</translation>
 <translation id="7108668606237948702">enter</translation>
 <translation id="7108933416628942903">Blochează acum</translation>
@@ -6574,6 +6601,7 @@
 <translation id="7364745943115323529">Proiectează...</translation>
 <translation id="7364796246159120393">Alege fișierul</translation>
 <translation id="7365076891350562061">Dimensiunea monitorului</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> – Fixată</translation>
 <translation id="7366316827772164604">Se caută dispozitive din apropiere...</translation>
 <translation id="7366415735885268578">Adaugă un site</translation>
 <translation id="7366909168761621528">Date de navigare</translation>
@@ -6970,6 +6998,7 @@
 <translation id="7737115349420013392">Se asociază cu „<ph name="DEVICE_NAME" />”...</translation>
 <translation id="7737846262459425222">Poți modifica oricând opțiunea în Setări &gt; Asistent Google &gt; Contextul de pe ecran.</translation>
 <translation id="7737948071472253612">Nu au permisiunea de a folosi camera foto</translation>
+<translation id="77381465218432215">Afișează accentele și caracterele speciale</translation>
 <translation id="7740996059027112821">Standard</translation>
 <translation id="7741307896921365578">Activează un panou lateral la nivel de browser pentru o modalitate utilă și persistentă de a accesa Lista de lecturi și Marcajele.</translation>
 <translation id="7742558784808143689">Elimini datele și permisiunile privind site-urile pentru <ph name="SITE_NAME" />, toate site-urile asociate și aplicațiile instalate?</translation>
@@ -7374,6 +7403,7 @@
 <translation id="8101987792947961127">Este necesară lansarea Powerwash la următoarea repornire</translation>
 <translation id="81020759409809034">Locație locală</translation>
 <translation id="8102139037507939978">Elimină datele cu caracter personal din system_logs.txt.</translation>
+<translation id="810362914482827094">Caută chei de acces</translation>
 <translation id="8104088837833760645">Descarcă profilul eSIM</translation>
 <translation id="8105368624971345109">Dezactivează</translation>
 <translation id="8107015733319732394">Se instalează Magazinul Google Play pe dispozitivul <ph name="DEVICE_TYPE" />. Ar putea dura câteva minute.</translation>
@@ -7759,6 +7789,7 @@
 <translation id="8486666913807228950">Motivul: în lista „Deschide forțat în” s-a găsit regula inversată <ph name="REVERT_RULE" />.</translation>
 <translation id="848666842773560761">O aplicație încearcă să acceseze camera. Dezactivează comutatorul de confidențialitate al camerei pentru a permite accesul.</translation>
 <translation id="8487678622945914333">Mărește</translation>
+<translation id="8487699605742506766">Hotspot</translation>
 <translation id="8489156414266187072">Sugestiile personale se afișează numai în contul tău</translation>
 <translation id="8490896350101740396">Următoarele aplicații de tip chioșc „<ph name="UPDATED_APPS" />” au fost actualizate. Repornește dispozitivul pentru a finaliza procesul de actualizare.</translation>
 <translation id="8492685019009920170">Atinge senzorul de amprentă cu degetul. Datele sunt stocate în siguranță și nu părăsesc niciodată dispozitivul <ph name="DEVICE_TYPE" />.</translation>
@@ -7820,6 +7851,7 @@
 <translation id="8557022314818157177">Atinge cheia de securitate până când ți se capturează amprenta</translation>
 <translation id="8557180006508471423">Activează Google Chrome în Servicii de localizare pe Mac</translation>
 <translation id="8557856025359704738">Următoarea descărcare este pe <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Cheile de acces</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Deschide-le pe toate într-o fereastră &amp;nouă}=1{Deschide într-o fereastră &amp;nouă}few{Deschide-le pe toate ({COUNT}) într-o fereastră &amp;nouă}other{Deschide-le pe toate ({COUNT}) într-o fereastră &amp;nouă}}</translation>
 <translation id="8561206103590473338">Elefant</translation>
 <translation id="8561565784790166472">Continuă cu atenție</translation>
@@ -7946,6 +7978,7 @@
 <translation id="8677212948402625567">Restrânge-le pe toate...</translation>
 <translation id="867767487203716855">Următoarea actualizare</translation>
 <translation id="8677859815076891398">Niciun album. Creează un album în <ph name="LINK_BEGIN" />Google Foto<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Repornește și primește actualizări automate</translation>
 <translation id="8678538439778360739">Datele au fost criptate cu expresia de acces pentru sincronizare la <ph name="TIME" />. Acest lucru nu este valabil pentru metodele de plată și adresele din Google Pay.</translation>
 <translation id="8678582529642151449">Filele nu se micșorează</translation>
 <translation id="8678933587484842200">Cum dorești să se lanseze această aplicație?</translation>
@@ -8193,6 +8226,7 @@
 <translation id="8910987510378294980">Ascunde lista de dispozitive</translation>
 <translation id="8912362522468806198">Contul Google</translation>
 <translation id="8912810933860534797">Activează scanarea automată</translation>
+<translation id="8915307125957890427">Dă clic dreapta pe o filă și selectează Adaugă fila într-un grup, apoi selectează Grup nou</translation>
 <translation id="8915370057835397490">Se încarcă sugestiile</translation>
 <translation id="8916476537757519021">Subcadru incognito: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="DEVICE_TYPE" /> utilizatorului <ph name="GIVEN_NAME" /></translation>
@@ -8253,6 +8287,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{„<ph name="TAB_TITLE" />”}=1{„<ph name="TAB_TITLE" />” și încă o filă}few{„<ph name="TAB_TITLE" />” și încă # file}other{„<ph name="TAB_TITLE" />” și încă # de file}}</translation>
 <translation id="8977811652087512276">Parola nu este corectă sau fișierul este deteriorat</translation>
 <translation id="8978154919215542464">Activată – sincronizează tot</translation>
+<translation id="8978670037548431647">Actualizează capacitățile de tethering</translation>
 <translation id="897939795688207351">Pe <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Rapoarte de feedback</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – s-a blocat</translation>
@@ -8266,6 +8301,7 @@
 <translation id="8986362086234534611">Șterge</translation>
 <translation id="8986494364107987395">Trimite automat la Google statistici de utilizare și rapoarte de blocare</translation>
 <translation id="8987927404178983737">Lună</translation>
+<translation id="8989359959810288806">Actualizează starea tetheringului</translation>
 <translation id="8991520179165052608">Site-ul poate folosi microfonul</translation>
 <translation id="899384117894244799">Exclude un utilizator cu permisiuni limitate</translation>
 <translation id="899403249577094719">Adresă URL de bază pentru certificat Netscape</translation>
@@ -8517,6 +8553,7 @@
 <translation id="935854577147268200">Telefonul Smart Lock s-a schimbat. Introdu parola pentru a actualiza Smart Lock. Data viitoare, telefonul tău va debloca dispozitivul <ph name="DEVICE_TYPE" />. Poți dezactiva Smart Lock din Setări.</translation>
 <translation id="936646668635477464">Camera și microfonul</translation>
 <translation id="936801553271523408">Date de diagnosticare a sistemului</translation>
+<translation id="937053962468712792">Excluzi <ph name="DEVICE" /> din <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Repară extensia</translation>
 <translation id="938568644810664664">Întreabă „Ok Google, ce melodie este aceasta?” sau „Ok Google, ce este afișat pe ecran?”</translation>
 <translation id="938623846785894166">Fișier neobișnuit</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 1e4306f..9f57545b 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -897,6 +897,7 @@
 <translation id="1829129547161959350">Пингвин</translation>
 <translation id="1829192082282182671">&amp;Уменьшить</translation>
 <translation id="1830550083491357902">Вход не выполнен</translation>
+<translation id="1831848493690504725">Не удается подключиться к серверам Google. Выберите другую сеть или проверьте настройки сети и прокси-сервера (если он используется).</translation>
 <translation id="1832459821645506983">ОК</translation>
 <translation id="1832511806131704864">Сведения о телефоне обновлены</translation>
 <translation id="1832848789136765277">Чтобы никогда не терять доступ к синхронизированным данным, подтвердите свою личность.</translation>
@@ -2195,6 +2196,7 @@
 <translation id="3021065318976393105">Если устройство работает от батареи</translation>
 <translation id="3021066826692793094">Бабочка</translation>
 <translation id="3021678814754966447">Просмотр кода фрейма</translation>
+<translation id="3022361196600037287">Устройство "<ph name="DEVICE" />" будет удалено с этого Chromebook и не сохранится в аккаунте <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Повторите ещё раз.</translation>
 <translation id="3023464535986383522">Озвучивание при нажатии</translation>
 <translation id="3024374909719388945">Использовать 24-часовой формат</translation>
@@ -3733,6 +3735,7 @@
 <translation id="4535127706710932914">Профиль по умолчанию</translation>
 <translation id="4535767533210902251">Сканер отпечатков пальцев – это клавиша в правом верхнем углу клавиатуры. Слегка коснитесь ее любым пальцем.</translation>
 <translation id="4536140153723794651">Сайты, которые всегда могут использовать файлы cookie</translation>
+<translation id="4536769240747010177">Возможности режима модема:</translation>
 <translation id="4538417792467843292">Удалить слово</translation>
 <translation id="4538792345715658285">Установлено в соответствии с корпоративным правилом.</translation>
 <translation id="4541123282641193691">Не удалось подтвердить аккаунт. Повторите попытку или перезагрузите устройство Chromebook.</translation>
@@ -3760,6 +3763,7 @@
 <translation id="4561893854334016293">Недавних изменений в разрешениях не найдено.</translation>
 <translation id="4562155214028662640">Добавить отпечаток пальца</translation>
 <translation id="4563210852471260509">Первоначальный язык ввода – китайский</translation>
+<translation id="4563382028841851106">Удалить из аккаунта</translation>
 <translation id="4563880231729913339">3-й палец</translation>
 <translation id="4564245002465020751">Завершите настройку на телефоне</translation>
 <translation id="4565377596337484307">Скрыть пароль</translation>
@@ -4736,6 +4740,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> запрашивает разрешение на:</translation>
 <translation id="5534304873398226603">Удалить фото или видео</translation>
 <translation id="5537725057119320332">Трансляция</translation>
+<translation id="5539070192556911367">Сервер Google недоступен</translation>
 <translation id="5539221284352502426">Сервер отклонил введенный пароль. Помните, что пароль должен отличаться от предыдущих паролей и содержать необходимое количество цифр и символов.</translation>
 <translation id="5541694225089836610">Действие отключено администратором.</translation>
 <translation id="5542132724887566711">Профиль</translation>
@@ -4799,6 +4804,7 @@
 <translation id="5585912436068747822">Ошибка форматирования</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Загрузка...</translation>
+<translation id="5590418976913374224">Воспроизводить звук при запуске устройства</translation>
 <translation id="5592595402373377407">Недостаточно данных.</translation>
 <translation id="5595307023264033512">Объем хранилища, занятый сайтами: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Изменить адрес</translation>
@@ -4808,7 +4814,6 @@
 <translation id="5601503069213153581">PIN-код</translation>
 <translation id="5601823921345337195">Запретить сайтам подключаться к MIDI-устройствам</translation>
 <translation id="5602765853043467355">Удалить с устройства закладки, пароли, данные о работе в браузере и т. д.</translation>
-<translation id="5605623530403479164">Другие поисковые системы</translation>
 <translation id="5605758115928394442">На ваш телефон отправлено уведомление для подтверждения личности.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Это расширение заблокировано}one{Эти расширения заблокированы}few{Эти расширения заблокированы}many{Эти расширения заблокированы}other{Эти расширения заблокированы}}</translation>
 <translation id="560834977503641186">Узнать больше о функции "Синхронизация Wi-Fi"</translation>
@@ -5107,6 +5112,7 @@
 <translation id="5909379458939060601">Удалить этот профиль и данные о работе в браузере?</translation>
 <translation id="5910363049092958439">Сохранить изображение как...</translation>
 <translation id="5910726859585389579">Устройство <ph name="DEVICE_TYPE" /> не подключено к Интернету</translation>
+<translation id="5911030830365207728">Google Переводчик</translation>
 <translation id="5911533659001334206">Просмотр ярлыков</translation>
 <translation id="5914724413750400082">Модуль (<ph name="MODULUS_NUM_BITS" /> бит):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6182,6 +6188,10 @@
 <translation id="6943939122536910181">Отключено устройство "<ph name="DEVICE" />"</translation>
 <translation id="6945221475159498467">Выбрать</translation>
 <translation id="694592694773692225">Попытка переадресации на этой странице заблокирована</translation>
+<translation id="6947015141909171112">Эти рецепты показаны с учетом вашей истории поиска.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Вы можете изменить настройки в меню карточки. Чтобы посмотреть дополнительные параметры, выберите "Настроить Chrome".</translation>
 <translation id="6949434160682548041">Пароль (необязательно)</translation>
 <translation id="6950627417367801484">Восстановить приложения</translation>
 <translation id="6952242901357037157">Вы можете добавить в этот список пароли из вашего <ph name="BEGIN_LINK" />аккаунта Google<ph name="END_LINK" /></translation>
@@ -6349,6 +6359,7 @@
 <translation id="7102687220333134671">Автоматическое обновление включено</translation>
 <translation id="7102832101143475489">Время, отведенное на обработку запроса, истекло.</translation>
 <translation id="710640343305609397">Открыть настройки сети</translation>
+<translation id="7107609441453408294">Воспроизводить одинаковый звук через все динамики</translation>
 <translation id="7108338896283013870">Скрыть</translation>
 <translation id="7108668606237948702">Войти</translation>
 <translation id="7108933416628942903">Заблокировать</translation>
@@ -6579,6 +6590,7 @@
 <translation id="7364745943115323529">Транслировать...</translation>
 <translation id="7364796246159120393">Выберите файл</translation>
 <translation id="7365076891350562061">Масштаб изображения на мониторе</translation>
+<translation id="7365995455115045224">Вкладка "<ph name="WINDOW_TITLE" />" закреплена</translation>
 <translation id="7366316827772164604">Поиск устройств поблизости…</translation>
 <translation id="7366415735885268578">Добавление сайта</translation>
 <translation id="7366909168761621528">Данные о работе в браузере</translation>
@@ -6975,6 +6987,7 @@
 <translation id="7737115349420013392">Подключение к устройству "<ph name="DEVICE_NAME" />"...</translation>
 <translation id="7737846262459425222">Этот параметр можно изменить в любой момент. Выберите "Настройки &gt; Google Ассистент &gt; Содержимое экрана".</translation>
 <translation id="7737948071472253612">Запретить сайтам использовать камеру</translation>
+<translation id="77381465218432215">Показывать диакритические знаки и специальные символы</translation>
 <translation id="7740996059027112821">Стандартный</translation>
 <translation id="7741307896921365578">В браузере появляется удобная боковая панель, с помощью которой можно быстро получать доступ к списку для чтения и закладкам.</translation>
 <translation id="7742558784808143689">Удалить данные и разрешения сайта <ph name="SITE_NAME" />, всех связанных с ним сайтов и установленных приложений?</translation>
@@ -7764,6 +7777,7 @@
 <translation id="8486666913807228950">Причина: в списке "Принудительное открытие" обнаружено инвертированное правило <ph name="REVERT_RULE" />.</translation>
 <translation id="848666842773560761">Приложение пытается получить доступ к камере. Чтобы предоставить его, переведите в выключенное положение переключатель, позволяющий управлять настройками конфиденциальности камеры.</translation>
 <translation id="8487678622945914333">Увеличить</translation>
+<translation id="8487699605742506766">Точка доступа</translation>
 <translation id="8489156414266187072">Персональные подсказки показываются только в вашем аккаунте</translation>
 <translation id="8490896350101740396">Были обновлены следующие киоск-приложения: <ph name="UPDATED_APPS" />. Чтобы завершить установку обновлений, перезагрузите устройство.</translation>
 <translation id="8492685019009920170">Коснитесь сканера отпечатков пальцев. Биометрические данные хранятся только на устройстве <ph name="DEVICE_TYPE" />.</translation>
@@ -8260,6 +8274,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" и ещё 1 вкладка}one{"<ph name="TAB_TITLE" />" и ещё # вкладка}few{"<ph name="TAB_TITLE" />" и ещё # вкладки}many{"<ph name="TAB_TITLE" />" и ещё # вкладок}other{"<ph name="TAB_TITLE" />" и ещё # вкладки}}</translation>
 <translation id="8977811652087512276">Пароль указан неверно или поврежден файл</translation>
 <translation id="8978154919215542464">Включено (синхронизировать все)</translation>
+<translation id="8978670037548431647">Обновить возможности режима модема</translation>
 <translation id="897939795688207351"><ph name="ORIGIN" />: вкл.</translation>
 <translation id="8980345560318123814">Отчеты</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" />: произошел сбой</translation>
@@ -8524,6 +8539,7 @@
 <translation id="935854577147268200">Телефон для снятия блокировки был изменен. Чтобы обновить параметры Smart Lock, введите пароль. После этого вы сможете снимать блокировку устройства <ph name="DEVICE_TYPE" /> с помощью телефона. Чтобы выключить Smart Lock, перейдите в настройки.</translation>
 <translation id="936646668635477464">Камера и микрофон</translation>
 <translation id="936801553271523408">Диагностические данные системы</translation>
+<translation id="937053962468712792">Удалить устройство "<ph name="DEVICE" />" из аккаунта <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Восстановить расширение</translation>
 <translation id="938568644810664664">Спросите "Окей, Google, что это за трек?" или "Окей, Google, что у меня на экране?".</translation>
 <translation id="938623846785894166">Необычный файл</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index ac663e4..fbdab3c 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -895,6 +895,7 @@
 <translation id="1829129547161959350">පෙන්ගුයින්</translation>
 <translation id="1829192082282182671">විශාලනය අඩු (&amp;O)</translation>
 <translation id="1830550083491357902">ප්‍රවිෂ්ට වී නොමැත</translation>
+<translation id="1831848493690504725">සම්බන්ධිත ජාලය හරහා අපට Google වෙත ළඟා විය නොහැක. වෙනස් ජාලයක් තෝරා ගැනීමට හෝ ඔබේ ජාල සැකසීම් හෝ ප්‍රොක්සි සැකසුම් පරීක්ෂා කිරීමට උත්සාහ කරන්න (ඔබ ප්‍රොක්සියක් භාවිතා කරන්නේ නම්).</translation>
 <translation id="1832459821645506983">ඔව්, මමත් එනවා</translation>
 <translation id="1832511806131704864">දුරකථන වෙනස යාවත්කාලීන කරන ලදි</translation>
 <translation id="1832848789136765277">ඔබට සැම විටම ඔබගේ සමමුහුර්ත දත්ත වෙත ප්‍රවේශ විය හැකි බව සහතික කර ගැනීමට, ඒ ඔබ බව සත්‍යාපනය කරන්න</translation>
@@ -2197,6 +2198,7 @@
 <translation id="3021065318976393105">බැටරිය මත සිටින විට</translation>
 <translation id="3021066826692793094">සමනළයා</translation>
 <translation id="3021678814754966447">රාමු මූලය දර්ශනය (&amp;V)</translation>
+<translation id="3022361196600037287">මෙම Chromebook වෙතින් <ph name="DEVICE" /> ඉවත් කරනු ලබන අතර <ph name="PRIMARY_EMAIL" /> වෙත සුරැකෙන්නේ නැත.</translation>
 <translation id="3022978424994383087">එය ලබා ගත්තේ නැත.</translation>
 <translation id="3023464535986383522">කථා කිරීමට තෝරන්න</translation>
 <translation id="3024374909719388945">පැය 24 ඔරලෝසුව භාවිතා කරන්න</translation>
@@ -3736,6 +3738,7 @@
 <translation id="4535127706710932914">පෙරනිමි පැතිකඩ</translation>
 <translation id="4535767533210902251">ඇඟිලි සලකුණු සංවේදකවය ඔබේ යතුරු පුවරුවේ ඉහළ දකුණු පැත්තේ යතුර වෙයි. ඕනෑම ඇඟිල්ලකින් එය සුළුවෙන් ස්පර්ශ කරන්න.</translation>
 <translation id="4536140153723794651">සැම විටම කුකී භාවිත කළ හැකි වෙබ් අඩවි</translation>
+<translation id="4536769240747010177">ටෙදරින් හැකියාවන්:</translation>
 <translation id="4538417792467843292">වචනය මකන්න</translation>
 <translation id="4538792345715658285">ව්‍යාපාර ප්‍රතිපත්තිය මඟින් ස්ථාපිත කරන ලදි.</translation>
 <translation id="4541123282641193691">ඔබගේ ගිණුම සත්‍යාපනය කළ නොහැකි විය. නැවත උත්සාහ කරන්න හෝ ඔබගේ Chromebook යළි අරඹන්න.</translation>
@@ -3763,6 +3766,7 @@
 <translation id="4561893854334016293">මෑතදී වෙනස් කළ අවසර නැත</translation>
 <translation id="4562155214028662640">ඇඟිලි සලකුණ එක් කරන්න</translation>
 <translation id="4563210852471260509">ආරම්භක ආදාන භාශාව චීන</translation>
+<translation id="4563382028841851106">ගිණුමෙන් ඉවත් කරන්න</translation>
 <translation id="4563880231729913339">ඇඟිල්ල 3</translation>
 <translation id="4564245002465020751">ඔබගේ දුරකථනයේ පිහිටුවීම අවසන් කරන්න</translation>
 <translation id="4565377596337484307">මුරපදය සඟවන්න</translation>
@@ -4739,6 +4743,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> හට කිරීමට අවශ්‍ය වන්නේ</translation>
 <translation id="5534304873398226603">ඡායාරූපය හෝ වීඩියෝව ඉවත ලන්න</translation>
 <translation id="5537725057119320332">විකාශය</translation>
+<translation id="5539070192556911367">Google වෙත ළඟා විය නොහැක</translation>
 <translation id="5539221284352502426">ඔබ ඇතුළු කළ මුරපදය සේවාදායකය විසින් ප්‍රතික්ෂේප කරන ලදී. විය හැකි හේතුවල ඇතුළත් වන්නේ: මුරපදය ඉතා කෙටි වේ. මුරපදයේ අංක හෝ සංකේත ඇතුළත් විය යුතුය. මුරපදය මීට පෙර මුරපදවලින් වෙනස් විය යුතුය.</translation>
 <translation id="5541694225089836610">ක්‍රියාව ඔබේ පරිපාලකයා විසින් අබල කරනු ලැබ ඇත</translation>
 <translation id="5542132724887566711">පැතිකඩ</translation>
@@ -4802,6 +4807,7 @@
 <translation id="5585912436068747822">හැඩසවිගැන්වීම අසාර්ථකයි</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">යෙදුම් පූරණය වේ...</translation>
+<translation id="5590418976913374224">උපාංගය ආරම්භයේ දී ශබ්දය වාදනය කරන්න</translation>
 <translation id="5592595402373377407">තවම ප්‍රමාණවත් දත්ත නොමැත.</translation>
 <translation id="5595307023264033512">අඩවිවලින් මුළු ගබඩා භාවිතය: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">ලිපිනය සංස්කරණය</translation>
@@ -4811,7 +4817,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI උපාංග වෙත සම්බන්ධ වීමට ඉඩ නොදේ</translation>
 <translation id="5602765853043467355">මෙම උපාංගයෙන් පිටුසන්, ඉතිහාසය, මුරපද, සහ තවත් දේ හිස් කරන්න</translation>
-<translation id="5605623530403479164">වෙනත් සෙවුම් යන්ත්‍ර</translation>
 <translation id="5605758115928394442">ඒ ඔබ බව තහවුරු කිරීමට ඔබේ දුරකථනයට දැනුම්දීමක් යවන ලදි.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{මෙම දිගුව අවහිර කර ඇත}one{මෙම දිගු අවහිර කර ඇත}other{මෙම දිගු අවහිර කර ඇත}}</translation>
 <translation id="560834977503641186">Wi-Fi සමමුහුර්තකරණය, තව දැන ගන්න</translation>
@@ -5111,6 +5116,7 @@
 <translation id="5909379458939060601">මෙම පැතිකඩ සහ බ්‍රවුස් කිරීමේ දත්ත මකන්නද?</translation>
 <translation id="5910363049092958439">රූපය ලෙස සුරකින්න... (&amp;v)</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> නොබැඳියි</translation>
+<translation id="5911030830365207728">Google පරිවර්තනය</translation>
 <translation id="5911533659001334206">කෙටිමං බලන්නා</translation>
 <translation id="5914724413750400082">මොඩියුල (<ph name="MODULUS_NUM_BITS" /> බිටු):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6180,6 +6186,10 @@
 <translation id="6943939122536910181"><ph name="DEVICE" /> වෙතින් විසන්ධි කරන ලදී</translation>
 <translation id="6945221475159498467">තෝරන්න</translation>
 <translation id="694592694773692225">හරවා යැවීම මෙම පිටුවෙහි අවහිරයි.</translation>
+<translation id="6947015141909171112">ඔබ වට්ටෝරු සඳහා ඔබේ මෑත සෙවීම් ක්‍රියාකාරකම් මත පදනම්ව වට්ටෝරු දකියි.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        ඔබට කාඩ්පත් මෙනුවෙන් සැකසීම් කළමනාකරණය කිරීමට හෝ Chrome අභිරුචිකරණය තුළ තවත් විකල්ප බැලීමට හැක.</translation>
 <translation id="6949434160682548041">මුරපදය (විකල්පමය)</translation>
 <translation id="6950627417367801484">යෙදුම් ප්‍රතිස්ථාපනය කරන්න</translation>
 <translation id="6952242901357037157">මෙහි ඔබට ඔබේ <ph name="BEGIN_LINK" />Google ගිණුම<ph name="END_LINK" /> වෙතින් ලැබෙන මුරපද ද පෙන්විය හැකිය</translation>
@@ -6347,6 +6357,7 @@
 <translation id="7102687220333134671">ස්වයංක්‍රීය යාවත්කාලීන ක්‍රියාත්මක කර ඇත</translation>
 <translation id="7102832101143475489">ඉල්ලීම් කාලය නිමා විය</translation>
 <translation id="710640343305609397">ජාල සැකසීම් විවෘත කරන්න</translation>
+<translation id="7107609441453408294">සියලු ස්පීකර හරහා එකම ශබ්දය වාදනය කරන්න</translation>
 <translation id="7108338896283013870">සඟවන්න</translation>
 <translation id="7108668606237948702">ඇතුල් කරන්න</translation>
 <translation id="7108933416628942903">දැන් අගුලු දමන්න</translation>
@@ -6577,6 +6588,7 @@
 <translation id="7364745943115323529">විකාශය කරන්න...</translation>
 <translation id="7364796246159120393">ගොනුව තෝරන්න</translation>
 <translation id="7365076891350562061">මොනිටරයේ තරම</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> - අමුණා ඇත</translation>
 <translation id="7366316827772164604">අවට උපාංග සඳහා ස්කෑන් කරමින්…</translation>
 <translation id="7366415735885268578">අඩවියක් එක් කරන්න</translation>
 <translation id="7366909168761621528">බ්‍රවුස් කිරීමේ දත්ත</translation>
@@ -6973,6 +6985,7 @@
 <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />" සමඟ යුගල කෙරේ...</translation>
 <translation id="7737846262459425222">ඔබට සැකසීම් &gt; Google සහායක &gt; තිර සන්දර්භය තුළ මෙය ඕනෑම වේලාවක වෙනස් කළ හැකිය.</translation>
 <translation id="7737948071472253612">ඔබගේ කැමරාව භාවිත කිරීමට ඉඩ නොදේ</translation>
+<translation id="77381465218432215">උච්චාරණ ලකුණු සහ විශේෂ අනුලකුණු පෙන්වන්න</translation>
 <translation id="7740996059027112821">සම්මත</translation>
 <translation id="7741307896921365578">ඔබගේ කියවීම් ලැයිස්තුවට සහ පිටුසන්වලට ප්‍රවේශ වීමට ප්‍රයෝජනවත් සහ ස්ථිරසාර ක්‍රමයක් සඳහා බ්‍රව්සර මට්ටමේ පැති පැනලයක් සබල කරන්න.</translation>
 <translation id="7742558784808143689"><ph name="SITE_NAME" /> සහ එය යටතේ ඇති සියලු අඩවි සඳහා, අඩවි දත්ත සහ අවසර, සහ ස්ථාපිත යෙදුම් හිස් කරන්නද?</translation>
@@ -7760,6 +7773,7 @@
 <translation id="8486666913807228950">හේතුව: <ph name="REVERT_RULE" /> ප්‍රතිලෝම රීතිය "බලෙන් විවෘත කිරීම" ලැයිස්තුවේ හමු විය.</translation>
 <translation id="848666842773560761">යෙදුමක් කැමරාවට ප්‍රවේශ වීමට උත්සාහ කරයි. ප්‍රවේශ වීමට ඉඩ දීම සඳහා කැමරා පෞද්ගලිකත්ව ස්විචය ක්‍රියාවිරහිත කරන්න.</translation>
 <translation id="8487678622945914333">විශාලනය කරන්න</translation>
+<translation id="8487699605742506766">හොට්ස්පොට්</translation>
 <translation id="8489156414266187072">පුද්ගලික යෝජනා ඔබගේ ගිණුමේ පමණක් පෙන්වයි</translation>
 <translation id="8490896350101740396">යාවත්කාලීන කළ kiosk යෙදුම් "<ph name="UPDATED_APPS" />" අනුගමනය කරන්න. කරුණාකර යාවත්කාලීන ක්‍රියාවලිය සම්පුර්ණ කිරීමට උපාංගය නැවත පනගන්වන්න.</translation>
 <translation id="8492685019009920170">ඔබගේ ඇඟිල්ලෙන් ඇඟිලි සලකුණු සංවේදකය ස්පර්ශ කරන්න. ඔබගේ දත්ත ආරක්ෂිතව ගබඩා කරන අතර කිසි විට ඔබගේ <ph name="DEVICE_TYPE" /> හැර නොයයි.</translation>
@@ -8254,6 +8268,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" සහ වෙන 1 පටිත්තක්}one{"<ph name="TAB_TITLE" />" සහ වෙනත් පටිති # ක්}other{"<ph name="TAB_TITLE" />" සහ වෙනත් පටිති # ක්}}</translation>
 <translation id="8977811652087512276">වැරදි මුරපදයක් හෝ දූෂිත ගොනුවකි</translation>
 <translation id="8978154919215542464">ක්‍රියාත්මකයි - සියලු දේ සමමුහුර්ත කරන්න</translation>
+<translation id="8978670037548431647">ටෙදරින් හැකියාවන් නැවුම් කරන්න</translation>
 <translation id="897939795688207351"><ph name="ORIGIN" /> හි</translation>
 <translation id="8980345560318123814">ප්‍රතිපෝෂණ වාර්තා කිරීම්</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - බිඳි වැටුණ</translation>
@@ -8518,6 +8533,7 @@
 <translation id="935854577147268200">Smart Lock දුරකථනය වෙනස් විය. Smart Lock යාවත්කාලීන කිරීමට ඔබේ මුරපදය ඇතුළත් කරන්න. ඊළඟ වතාවේ, ඔබේ දුරකථනය ඔබගේ <ph name="DEVICE_TYPE" /> අඟුලු අරියි. ඔබට සැකසීම් තුළ Smart Lock අක්‍රිය කළ හැක.</translation>
 <translation id="936646668635477464">කැමරාව හා මයික්‍රෆෝනය</translation>
 <translation id="936801553271523408">පද්ධති සොයා ගැනීමේ දත්ත</translation>
+<translation id="937053962468712792"><ph name="PRIMARY_EMAIL" /> වෙතින් <ph name="DEVICE" /> ඉවත් කරන්නේ ද?</translation>
 <translation id="93766956588638423">දිගුව අලුත්වැඩියා කරන්න</translation>
 <translation id="938568644810664664">“Hey Google, what song is this?” හෝ “Hey Google, what's on my screen?” උත්සාහ කරන්න</translation>
 <translation id="938623846785894166">දුලබ ගොනුව</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 6433f717..862673e2 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Používať mikrofón a kameru</translation>
 <translation id="1005333234656240382">Chcete aktivovať ladenie ADB?</translation>
 <translation id="1006873397406093306">Toto rozšírenie môže čítať a upravovať údaje na vašom webe. Môžete určiť, ku ktorým webom bude mať rozšírenie prístup.</translation>
+<translation id="1007057452468855774">Zapnúť Obchod Google Play</translation>
 <translation id="1008186147501209563">Exportovať záložky</translation>
 <translation id="1008557486741366299">Teraz nie</translation>
 <translation id="1009476156254802388">Umiestnenie služby <ph name="WEB_DRIVE" /></translation>
 <translation id="1009663062402466586">Ovládanie hry nie je k dispozícii</translation>
 <translation id="1010498023906173788">Táto karta je pripojená k sériovému portu.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Stránka nereaguje}few{Stránky nereagujú}many{Stránky nereagujú}other{Stránky nereagujú}}</translation>
+<translation id="1011003645819296594">Uložené zariadenia</translation>
 <translation id="1011355516189274711">Hlasitosť prevodu textu na reč</translation>
 <translation id="1012794136286421601">Vaše súbory v službách Dokumenty, Tabuľky, Prezentácie a Nákresy sa synchronizujú. Otvorte službu Disk Google a pristúpte k ním online alebo offline.</translation>
 <translation id="1012876632442809908">Zariadenie USB-C (port vpredu)</translation>
@@ -493,6 +495,7 @@
 <translation id="1470350905258700113">Použiť toto zariadenie</translation>
 <translation id="1470946456740188591">Ak chcete zapnúť alebo vypnúť prehliadanie Caret, použite skratku Ctrl + Hľadať + 7</translation>
 <translation id="1472675084647422956">Zobraziť viac</translation>
+<translation id="1473223074251193484">Nastaviť konfiguráciu zdieľania dátového pripojenia</translation>
 <translation id="1474785664565228650">Zmena nastavenia mikrofónu vyžaduje opätovné spustenie aplikácie Parallels Desktop. Pokračujte opätovným spustením aplikácie Parallels Desktop.</translation>
 <translation id="1474893630593443211">Viac kontroly nad zobrazovanými reklamami</translation>
 <translation id="1475502736924165259">V súbore máte certifikáty, ktoré sa nedajú zaradiť do žiadnej z iných kategórií:</translation>
@@ -1115,6 +1118,7 @@
 <translation id="2044014337866019681">Ak chcete túto reláciu odblokovať, overte účet <ph name="ACCOUNT" />.</translation>
 <translation id="204497730941176055">Názov šablóny certifikátu od spoločnosti Microsoft</translation>
 <translation id="2045117674524495717">Pomocník klávesových skratiek</translation>
+<translation id="2045211794962848221">Táto konkrétna správa sa vám už nezobrazí</translation>
 <translation id="2045969484888636535">Pokračovať v blokovaní súborov cookie</translation>
 <translation id="204622017488417136">Na vašom zariadení sa obnoví predchádzajúca nainštalovaná verzia prehliadača Chrome. Všetky používateľské účty a miestne údaje budú odstránené. Túto akciu nie je možné vrátiť späť.</translation>
 <translation id="2046702855113914483">Rámen</translation>
@@ -3800,6 +3804,7 @@
 <translation id="4594577641390224176">Hľadáte stránku s informáciami o systéme? Prejdite na</translation>
 <translation id="4595560905247879544">Aplikácie a rozšírenia môže upraviť iba správca (<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">V súbore máte certifikáty, ktoré identifikujú tieto servery</translation>
+<translation id="4598345735110653698">Spravovať prístupové kľúče</translation>
 <translation id="4598556348158889687">Správa úložiska</translation>
 <translation id="4598776695426288251">Je k dispozícii sieť Wi‑Fi prostredníctvom niekoľkých zariadení</translation>
 <translation id="4601426376352205922">Označiť ako neprečítané</translation>
@@ -4025,6 +4030,7 @@
 <translation id="4823894915586516138">Tento kód PIN alebo heslo chráni vaše údaje v zariadení <ph name="DEVICE_TYPE" /> aj všetky informácie, ku ktorým máte prístup v telefóne</translation>
 <translation id="4824037980212326045">Zálohovanie a obnova v systéme Linux</translation>
 <translation id="4824958205181053313">Chcete zrušiť synchronizáciu?</translation>
+<translation id="4825532258163983651">Prístupový kľúč sa nedá odstrániť</translation>
 <translation id="4827675678516992122">Nepodarilo sa pripojiť</translation>
 <translation id="4827784381479890589">Rozšírená kontrola pravopisu v prehliadači Chrome (text sa odosiela Googlu, ktorý poskytuje návrhy pravopisu)</translation>
 <translation id="4827904420700932487">Vytvoriť QR kód pre tento obrázok</translation>
@@ -4287,6 +4293,7 @@
 <translation id="5087249366037322692">Pridané treťou stranou</translation>
 <translation id="5087580092889165836">Pridať kartu</translation>
 <translation id="5088534251099454936">Štandard PKCS #1 SHA-512 so šifrovaním RSA</translation>
+<translation id="5089763948477033443">Rukoväť na zmenu veľkosti bočného panela</translation>
 <translation id="5090637338841444533">Nemôže sledovať pozíciu vašej kamery</translation>
 <translation id="5093569275467863761">Podrám v režime inkognito v spätnej vyrovnávacej pamäti: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Pomocou tejto aplikácie môžete otvárať a upravovať podporované súbory z aplikácie Súbory alebo iných. Ak chcete ovládať, ktoré súbory predvolene otvoria túto aplikáciu, prečítajte si, <ph name="BEGIN_LINK" />ako v zariadení nastaviť predvolené aplikácie<ph name="END_LINK" />.</translation>
@@ -4452,6 +4459,7 @@
 <translation id="5258992782919386492">Nainštalovať v tomto zariadení</translation>
 <translation id="5260334392110301220">Inteligentné úvodzovky</translation>
 <translation id="5260508466980570042">Vašu e-mailovú adresu alebo vaše heslo sa nepodarilo overiť. Skúste to znova.</translation>
+<translation id="5260958083445173099">Ak to bude možné, weby sa budú zobrazovať vo vašich preferovaných jazykoch</translation>
 <translation id="5261683757250193089">Otvoriť v Internetovom obchode</translation>
 <translation id="5262178194499261222">Odstrániť heslo</translation>
 <translation id="5262784498883614021">Automaticky pripojiť k sieti</translation>
@@ -4492,6 +4500,7 @@
 <translation id="5294097441441645251">Musí sa začínať malým znakom alebo podčiarkovníkom</translation>
 <translation id="5294618183559481278">Zariadenie <ph name="DEVICE_TYPE" /> rozpoznáva ľudí pred svojou obrazovkou vstavaným senzorom. Všetky dáta sa spracúvajú vo vašom zariadení a potom sú odstránené. Dáta senzorov sa nikdy neodosielajú Googlu. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Počúvajte hovorenú spätnú väzbu a používajte zariadenie bez pozerania na obrazovku. Spätná väzba k Braillovmu písmu je k dispozícii pomocou pripojeného zariadenia.</translation>
+<translation id="5297005732522718715">Obnoviť konfiguráciu zdieľania dátového pripojenia</translation>
 <translation id="5297082477358294722">Heslo bolo uložené. Uložené heslá si môžete zobraziť a spravovať v časti <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Nastavte, aby sa v pravom dolnom rohu vašej obrazovky zobrazila ikona ochrany súkromného zobrazenia, keď sa na obrazovku pozerá iná osoba</translation>
 <translation id="5298219193514155779">Autor motívu:</translation>
@@ -4662,6 +4671,7 @@
 <translation id="5466374726908360271">Prilepiť a &amp;vyhľadať „<ph name="SEARCH_TERMS" />“</translation>
 <translation id="5467207440419968613">Blokované: <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Hľadajú sa zdieľané úložiská</translation>
+<translation id="5468330507528805311">Stav zdieľania dátového pripojenia:</translation>
 <translation id="5468881191994555667">Vybrať súbor</translation>
 <translation id="5469852975082458401">Stránkami môžete prechádzať pomocou textového kurzora. Stlačením klávesa F7 túto funkciu vypnete.</translation>
 <translation id="5470735824776589490">Pred resetovaním zariadenia pomocou funkcie Powerwash sa vyžaduje jeho reštart. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation>
@@ -4814,7 +4824,6 @@
 <translation id="5601503069213153581">Kód PIN</translation>
 <translation id="5601823921345337195">Nemôže sa pripájať sa k zariadeniam MIDI</translation>
 <translation id="5602765853043467355">Vymazať záložky, históriu, heslá a ďalší obsah z tohto zariadenia</translation>
-<translation id="5605623530403479164">Iné vyhľadávače</translation>
 <translation id="5605758115928394442">Do vášho telefónu bolo odoslané upozornenie, ktorým overíte, že ste to vy.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Toto rozšírenie je blokované}few{Tieto rozšírenia sú blokované}many{Tieto rozšírenia sú blokované}other{Tieto rozšírenia sú blokované}}</translation>
 <translation id="560834977503641186">Synchronizácia Wi-Fi, ďalšie informácie</translation>
@@ -4938,6 +4947,7 @@
 <translation id="5734362860645681824">Komunikácia</translation>
 <translation id="5734697361979786483">Pridať zdieľanie súboru</translation>
 <translation id="5736796278325406685">Zadajte platné používateľské meno</translation>
+<translation id="5738093759615225354">Tento prístupový kľúč potrebujete na prihlásenie do počítača</translation>
 <translation id="5739017626473506901">Ak chce dieťaťu <ph name="USER_NAME" /> pomôcť pridať školský účet, prihláste sa</translation>
 <translation id="5739235828260127894">Čaká sa na overenie. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Veľmi veľké</translation>
@@ -5099,6 +5109,7 @@
 <translation id="589541317545606110">Hľadať na stránke pomocou služby <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Nepovoliť</translation>
 <translation id="5900186025777217044">Funkcia Smart Lock sa zmenila</translation>
+<translation id="5900243355162006650">Konfigurácia zdieľania dátového pripojenia:</translation>
 <translation id="5900302528761731119">Fotografia profilu Google</translation>
 <translation id="590036993063074298">Podrobnosti o kvalite zrkadlenia</translation>
 <translation id="5901069264981746702">Údaje odtlačkov prstov sú uložené bezpečne a nikdy sa nedostanú mimo zariadenia <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation>
@@ -5113,6 +5124,7 @@
 <translation id="5909379458939060601">Chcete odstrániť tento profil a dáta prehliadania?</translation>
 <translation id="5910363049092958439">Uložiť &amp;obrázok ako...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> je offline</translation>
+<translation id="5911030830365207728">Prekladač Google</translation>
 <translation id="5911533659001334206">Zobrazovač skratiek</translation>
 <translation id="5914724413750400082">Modul (<ph name="MODULUS_NUM_BITS" /> bitov):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5402,6 +5414,7 @@
 <translation id="6196640612572343990">Blokovať súbory cookie tretích strán</translation>
 <translation id="6196854373336333322">Toto rozšírenie „<ph name="EXTENSION_NAME" />“ prevzalo kontrolu nad vašimi nastaveniami servera proxy, čo znamená, že môže zmeniť, prerušiť alebo zachytiť všetku vašu činnosť online. Ak neviete, prečo k tomu došlo, pravdepodobne si to neželáte.</translation>
 <translation id="6197128521826316819">Vytvoriť QR kód pre túto stránku</translation>
+<translation id="6197223946499512637">Tieto prístupové kľúče uchováva Windows Hello v tomto počítači. Do vášho účtu Google sa neukladajú.</translation>
 <translation id="6198252989419008588">Zmeniť PIN</translation>
 <translation id="6200047250927636406">Zahodiť súbor</translation>
 <translation id="6200151268994853226">Spravovať rozšírenie</translation>
@@ -5699,6 +5712,7 @@
 <translation id="6482559668224714696">Lupa na celú obrazovku</translation>
 <translation id="6483485061007832714">Otvorenie stiahnutého súboru</translation>
 <translation id="6483805311199035658">Otváranie súboru <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">Ak chcete spravovať prístupové kľúče, použite novšiu verziu systému Windows</translation>
 <translation id="6488384360522318064">Výber jazyka</translation>
 <translation id="648927581764831596">Nie je k dispozícii</translation>
 <translation id="6490471652906364588">Zariadenie USB-C (port vpravo)</translation>
@@ -6289,6 +6303,7 @@
 <translation id="7029307918966275733">Systém Crostini nie je nainštalovaný. Ak si chcete zobraziť poďakovania, nainštalujte si Crostini.</translation>
 <translation id="7029809446516969842">Heslá</translation>
 <translation id="7030304022046916278">Odosiela Bezpečnému prehliadaniu webové adresy na kontrolu</translation>
+<translation id="7030695672997239647">Pravým tlačidlom kliknite na kartu a vyberte Pridať kartu do skupiny. Potom vyberte položku Nová skupina.</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> – sériový port je pripojený</translation>
 <translation id="7033616203784997570">Vstup môže mať maximálne 62 znakov</translation>
 <translation id="7034692021407794547">Správca s oprávneniami na správu fakturácie musí najprv prijať zmluvné podmienky súpravy Google Meet hardware v sekcii Google Meet Hardware v správcovskej konzole.</translation>
@@ -7390,6 +7405,7 @@
 <translation id="8101987792947961127">Pri ďalšom spustení sa bude vyžadovať funkcia Powerwash</translation>
 <translation id="81020759409809034">Miestne umiestnenie</translation>
 <translation id="8102139037507939978">Odstraňovať zo súboru system_logs.txt údaje umožňujúce zistenie totožnosti</translation>
+<translation id="810362914482827094">Vyhľadávanie prístupových kľúčov</translation>
 <translation id="8104088837833760645">Stiahnuť profil eSIM</translation>
 <translation id="8105368624971345109">Vypnúť</translation>
 <translation id="8107015733319732394">Inštaluje sa Obchod Google Play na zariadení <ph name="DEVICE_TYPE" />. Môžete to chvíľu trvať.</translation>
@@ -7837,6 +7853,7 @@
 <translation id="8557022314818157177">Klepte na bezpečnostný kľúč, dokým sa odtlačok prsta nenasníma</translation>
 <translation id="8557180006508471423">V sekcii Lokalizačné služby v Macu zapnite Google Chrome</translation>
 <translation id="8557856025359704738">Ďalšie stiahnutie nastane o <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Prístupové kľúče</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Otvoriť všetky v novom okne}=1{Otvoriť v novom okne}few{Otvoriť všetky ({COUNT}) v novom okne}many{Otvoriť všetky ({COUNT}) v novom okne}other{Otvoriť všetky ({COUNT}) v novom okne}}</translation>
 <translation id="8561206103590473338">Slon</translation>
 <translation id="8561565784790166472">Postupujte opatrne</translation>
@@ -7963,6 +7980,7 @@
 <translation id="8677212948402625567">Zbaliť všetky...</translation>
 <translation id="867767487203716855">Ďalšia aktualizácia</translation>
 <translation id="8677859815076891398">Žiadne albumy Vytvorte album vo <ph name="LINK_BEGIN" />Fotkách Google<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Reštartovať a dostávať automatické aktualizácie</translation>
 <translation id="8678538439778360739">Údaje boli o <ph name="TIME" /> šifrované pomocou vašej prístupovej frázy synchronizácie. Nezahŕňa to spôsoby platby ani adresy zo služby Google Pay.</translation>
 <translation id="8678582529642151449">Karty sa nezmenšia</translation>
 <translation id="8678933587484842200">Ako sa má táto aplikácia spúšťať?</translation>
@@ -8211,6 +8229,7 @@
 <translation id="8910987510378294980">Skryť zoznam zariadení</translation>
 <translation id="8912362522468806198">účtu Google</translation>
 <translation id="8912810933860534797">Aktivovať automatické prehľadávanie</translation>
+<translation id="8915307125957890427">Pravým tlačidlom kliknite na kartu a vyberte Pridať kartu do skupiny. Potom vyberte položku Nová skupina.</translation>
 <translation id="8915370057835397490">Načítavajú sa návrhy</translation>
 <translation id="8916476537757519021">Podrámec inkognito: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138">Zariadenie <ph name="DEVICE_TYPE" /> používateľa <ph name="GIVEN_NAME" /></translation>
@@ -8285,6 +8304,7 @@
 <translation id="8986362086234534611">Odstrániť</translation>
 <translation id="8986494364107987395">Automaticky odosielať Googlu štatistiky používania a správy o zlyhaní</translation>
 <translation id="8987927404178983737">Mesiac</translation>
+<translation id="8989359959810288806">Obnoviť stav zdieľania dátového pripojenia</translation>
 <translation id="8991520179165052608">Web môže používať váš mikrofón</translation>
 <translation id="899384117894244799">Odobrať obmedzeného používateľa</translation>
 <translation id="899403249577094719">Netscape – základná webová adresa certifikátu</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 2ae3ff8..37d2f45 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -4832,7 +4832,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Ni dovoljena povezava z napravami MIDI</translation>
 <translation id="5602765853043467355">Počistite zaznamke, zgodovino, gesla in drugo v tej napravi</translation>
-<translation id="5605623530403479164">Drugi iskalniki</translation>
 <translation id="5605758115928394442">V vaš telefon smo poslali obvestilo, da potrdite, da ste to res vi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Ta razširitev je blokirana}one{Te razširitve so blokirane}two{Te razširitve so blokirane}few{Te razširitve so blokirane}other{Te razširitve so blokirane}}</translation>
 <translation id="560834977503641186">Sinhronizacija poverilnic za Wi-Fi, več o tem</translation>
@@ -5132,6 +5131,7 @@
 <translation id="5909379458939060601">Želite izbrisati ta profil in podatke o brskanju?</translation>
 <translation id="5910363049092958439">Sh&amp;rani sliko kot ...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> nima vzpostavljene povezave</translation>
+<translation id="5911030830365207728">Google Prevajalnik</translation>
 <translation id="5911533659001334206">Pregledovalnik bližnjic</translation>
 <translation id="5914724413750400082">Modul (št. bitov: <ph name="MODULUS_NUM_BITS" />):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index fa5a4e9..28d9339 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -892,6 +892,7 @@
 <translation id="1829129547161959350">Pinguini</translation>
 <translation id="1829192082282182671">&amp;Zvogëlo</translation>
 <translation id="1830550083491357902">I pa identifikuar</translation>
+<translation id="1831848493690504725">Nuk mund të lidhemi me Google nëpërmjet rrjetit të lidhur. Provo të zgjedhësh një rrjet tjetër ose të kontrollosh cilësimet e rrjetit ose cilësimet e proxy-it (nëse po përdor një proxy).</translation>
 <translation id="1832459821645506983">Po, jam dakord</translation>
 <translation id="1832511806131704864">Ndryshimi i telefonit u përditësua</translation>
 <translation id="1832848789136765277">Për t'u siguruar që mund të qasesh gjithmonë te të dhënat e tua të sinkronizuara, verifiko që je ti</translation>
@@ -2191,6 +2192,7 @@
 <translation id="3021065318976393105">Gjatë kohës me bateri</translation>
 <translation id="3021066826692793094">Flutur</translation>
 <translation id="3021678814754966447">&amp;Shiko burimin e kornizës</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> do të hiqet nga ky Chromebook dhe nuk do të ruhet te <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Nuk e kuptova.</translation>
 <translation id="3023464535986383522">Zgjidh që të thuhet</translation>
 <translation id="3024374909719388945">Përdor ciklin 24 orësh</translation>
@@ -3729,6 +3731,7 @@
 <translation id="4535127706710932914">Profili i parazgjedhur</translation>
 <translation id="4535767533210902251">Sensori i gjurmës së gishtit është tasti lart djathtas në tastierë. Preke lehtë me një gisht.</translation>
 <translation id="4536140153723794651">Sajtet mund t'i përdorin gjithmonë kukit</translation>
+<translation id="4536769240747010177">Aftësitë e ndarjes së internetit:</translation>
 <translation id="4538417792467843292">Fshi fjalën</translation>
 <translation id="4538792345715658285">U instalua nga politika e ndërmarrjes.</translation>
 <translation id="4541123282641193691">Llogaria jote nuk mund të verifikohej. Provo sërish ose rinise pajisjen Chromebook.</translation>
@@ -3756,6 +3759,7 @@
 <translation id="4561893854334016293">Nuk ka leje të ndryshuara së fundi</translation>
 <translation id="4562155214028662640">Shto një gjurmë gishti</translation>
 <translation id="4563210852471260509">Gjuha fillestare e hyrjes është kinezishtja</translation>
+<translation id="4563382028841851106">Hiq nga llogaria</translation>
 <translation id="4563880231729913339">Gishti 3</translation>
 <translation id="4564245002465020751">Përfundo konfigurimin në telefonin tënd</translation>
 <translation id="4565377596337484307">Fshih fjalëkalimin</translation>
@@ -4732,6 +4736,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> dëshiron</translation>
 <translation id="5534304873398226603">Hiq fotografinë dhe videon</translation>
 <translation id="5537725057119320332">Transmeto</translation>
+<translation id="5539070192556911367">Google nuk mund të arrihet</translation>
 <translation id="5539221284352502426">Fjalëkalimi që fute u refuzua nga serveri. Arsyet e mundshme përfshijnë: fjalëkalimi është tepër i shkurtër. Fjalëkalimi duhet të përfshijë numra ose simbole. Fjalëkalimi duhet të jetë i ndryshëm nga fjalëkalimet e mëparshme.</translation>
 <translation id="5541694225089836610">Veprimi është çaktivizuar nga administratori yt</translation>
 <translation id="5542132724887566711">Profili</translation>
@@ -4795,6 +4800,7 @@
 <translation id="5585912436068747822">Formatimi dështoi</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Po ngarkon aplikacionet...</translation>
+<translation id="5590418976913374224">Luaj tingullin në momentin e nisjes së pajisjes</translation>
 <translation id="5592595402373377407">Nuk ofrohen ende të dhëna të mjaftueshme.</translation>
 <translation id="5595307023264033512">Hapësira ruajtëse në total e përdorur nga sajtet: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Redakto adresën</translation>
@@ -4804,7 +4810,6 @@
 <translation id="5601503069213153581">Kodi PIN</translation>
 <translation id="5601823921345337195">Nuk lejohen të lidhen me pajisjet MIDI</translation>
 <translation id="5602765853043467355">Pastro faqeshënuesit, historikun, fjalëkalimet dhe më shumë nga kjo pajisje</translation>
-<translation id="5605623530403479164">Motorët e tjerë të kërkimit</translation>
 <translation id="5605758115928394442">Një njoftim është dërguar te telefoni yt për të konfirmuar që je ti.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Kjo shtesë është bllokuar}other{Këto shtesa janë bllokuar}}</translation>
 <translation id="560834977503641186">"Sinkronizimi i Wi-Fi", Mëso më shumë</translation>
@@ -5103,6 +5108,7 @@
 <translation id="5909379458939060601">Të fshihet ky profil dhe këto të dhëna të shfletimit?</translation>
 <translation id="5910363049092958439">Ru&amp;aje imazhin si...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> është jashtë linje</translation>
+<translation id="5911030830365207728">Përkthe me Google</translation>
 <translation id="5911533659001334206">Shikuesi i shkurtoreve</translation>
 <translation id="5914724413750400082">Vlera absolute (<ph name="MODULUS_NUM_BITS" /> bit):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6172,6 +6178,10 @@
 <translation id="6943939122536910181">E shkëputur nga <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Përzgjidhe</translation>
 <translation id="694592694773692225">Ridrejtimi u bllokua në këtë faqe.</translation>
+<translation id="6947015141909171112">Po shikon receta bazuar në aktivitetin tënd të fundit te "Kërko" për receta.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Mund t'i menaxhosh cilësimet nga menyja e kartave ose të shikosh opsione të tjera te "Personalizo Chrome".</translation>
 <translation id="6949434160682548041">Fjalëkalimi (opsional)</translation>
 <translation id="6950627417367801484">Rivendos aplikacionet</translation>
 <translation id="6952242901357037157">Mund të shfaqësh gjithashtu fjalëkalimet nga <ph name="BEGIN_LINK" />Llogaria jote e Google<ph name="END_LINK" /> këtu</translation>
@@ -6339,6 +6349,7 @@
 <translation id="7102687220333134671">Përditësimet automatike janë të aktivizuara</translation>
 <translation id="7102832101143475489">Kërkesa skadoi</translation>
 <translation id="710640343305609397">Hap cilësimet e rrjetit</translation>
+<translation id="7107609441453408294">Luaj të njëjtën audio në të gjithë altoparlantët</translation>
 <translation id="7108338896283013870">Fshih</translation>
 <translation id="7108668606237948702">hyr</translation>
 <translation id="7108933416628942903">Kyç tani</translation>
@@ -6569,6 +6580,7 @@
 <translation id="7364745943115323529">Transmeto...</translation>
 <translation id="7364796246159120393">Zgjidh skedarin</translation>
 <translation id="7365076891350562061">Madhësia e monitorit</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> - gozhduar</translation>
 <translation id="7366316827772164604">Po skanon për pajisje në afërsi...</translation>
 <translation id="7366415735885268578">Shto një sajt</translation>
 <translation id="7366909168761621528">Të dhënat e shfletimit</translation>
@@ -6965,6 +6977,7 @@
 <translation id="7737115349420013392">Po çiftohet me "<ph name="DEVICE_NAME" />" ...</translation>
 <translation id="7737846262459425222">Këtë mund ta ndryshosh në çdo kohë te Cilësimet &gt; Asistenti i Google &gt; Konteksti i ekranit.</translation>
 <translation id="7737948071472253612">Nuk lejohen të përdorin kamerën tënde</translation>
+<translation id="77381465218432215">Shfaq shenjat e theksimit dhe karakteret e veçanta</translation>
 <translation id="7740996059027112821">Standard</translation>
 <translation id="7741307896921365578">Aktivizon një panel anësor në nivelin e shfletuesit për një mënyrë të dobishme të vazhdueshme për t'u qasur te "Lista e leximit" dhe "Faqeshënuesit".</translation>
 <translation id="7742558784808143689">Të pastrohen të gjitha të dhënat e sajtit dhe lejet për <ph name="SITE_NAME" />, çdo sajt në të dhe të gjitha aplikacionet e instaluara?</translation>
@@ -7752,6 +7765,7 @@
 <translation id="8486666913807228950">Arsyeja: Rregulli i anasjellë <ph name="REVERT_RULE" /> u gjet në listën "Hap me forcë në".</translation>
 <translation id="848666842773560761">Një aplikacion po përpiqet të ketë qasje te kamera. Çaktivizo çelësin e privatësisë të kamerës për të lejuar qasjen.</translation>
 <translation id="8487678622945914333">Zmadho</translation>
+<translation id="8487699605742506766">Zona e qasjes për internet</translation>
 <translation id="8489156414266187072">Sugjerimet personale tregohen vetëm në llogarinë tënde</translation>
 <translation id="8490896350101740396">Aplikacionet e mëposhtme të kioskës "<ph name="UPDATED_APPS" />" janë përditësuar. Rindize pajisjen për të përfunduar procesin e përditësimit.</translation>
 <translation id="8492685019009920170">Prek me gisht sensorin e gjurmës së gishtit. Të dhënat e tua ruhen në mënyrë të sigurt dhe asnjëherë nuk largohen nga pajisja jote <ph name="DEVICE_TYPE" />.</translation>
@@ -8245,6 +8259,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" dhe 1 skedë tjetër}other{"<ph name="TAB_TITLE" />" dhe # skeda të tjera}}</translation>
 <translation id="8977811652087512276">Fjalëkalim i pasaktë ose skedar i dëmtuar</translation>
 <translation id="8978154919215542464">Aktiv - sinkronizo çdo gjë</translation>
+<translation id="8978670037548431647">Rifresko aftësitë e ndarjes së internetit</translation>
 <translation id="897939795688207351">Në <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Raportet mbi reagimet</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - u ndërpre aksidentalisht</translation>
@@ -8509,6 +8524,7 @@
 <translation id="935854577147268200">Telefoni i Smart Lock ndryshoi. Fut fjalëkalimin për të përditësuar Smart Lock. Herën tjetër, telefoni yt do të shkyçë pajisjen tënde <ph name="DEVICE_TYPE" />. Mund të çaktivizosh Smart Lock te "Cilësimet"</translation>
 <translation id="936646668635477464">Kamera dhe mikrofoni</translation>
 <translation id="936801553271523408">Të dhënat diagnostikuese të sistemit</translation>
+<translation id="937053962468712792">Të hiqet <ph name="DEVICE" /> nga <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Riparo shtesën</translation>
 <translation id="938568644810664664">Provo “Ok Google, çfarë kënge është kjo?” ose “Ok Google, çfarë kam në ekran?”</translation>
 <translation id="938623846785894166">Skedar i pazakontë</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index 84e4ba6..52d8526 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Korišćenje mikrofona i kamere</translation>
 <translation id="1005333234656240382">Želite da omogućite ADB otklanjanje grešaka?</translation>
 <translation id="1006873397406093306">Ovaj dodatak može da čita i menja podatke na sajtovima. Možete da kontrolišete kojim sajtovima dodatak može da pristupa.</translation>
+<translation id="1007057452468855774">Uključite Google Play prodavnicu</translation>
 <translation id="1008186147501209563">Izvezi obeleživače</translation>
 <translation id="1008557486741366299">Ne sada</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" /> lokacija</translation>
 <translation id="1009663062402466586">Kontrole za igre su sada dostupne</translation>
 <translation id="1010498023906173788">Ova kartica je povezana sa serijskim portom.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Stranica se ne odaziva}one{Stranice se ne odazivaju}few{Stranice se ne odazivaju}other{Stranice se ne odazivaju}}</translation>
+<translation id="1011003645819296594">Sačuvani uređaji</translation>
 <translation id="1011355516189274711">Jačina zvuka za pretvaranje teksta u govor</translation>
 <translation id="1012794136286421601">Datoteke iz Dokumenata, Tabela, Prezentacija i Crteža se sinhronizuju. Otvorite aplikaciju Google disk da biste im pristupili onlajn ili oflajn.</translation>
 <translation id="1012876632442809908">Uređaj sa USB priključkom tipa C (prednji port)</translation>
@@ -493,6 +495,7 @@
 <translation id="1470350905258700113">Koristi ovaj uređaj</translation>
 <translation id="1470946456740188591">Da biste uključili ili isključili navigaciju kursorom, koristite prečicu Ctrl+Search+7</translation>
 <translation id="1472675084647422956">Prikaži više</translation>
+<translation id="1473223074251193484">Podesi konfiguraciju privezivanja</translation>
 <translation id="1474785664565228650">Promena podešavanja mikrofona zahteva ponovno pokretanje Parallels Desktop-a. Ponovo pokrenite Parallels Desktop da biste nastavili.</translation>
 <translation id="1474893630593443211">Veća kontrola nad oglasima koje vidite</translation>
 <translation id="1475502736924165259">Na datoteci ima sertifikata koji se ne uklapaju ni u jednu drugu kategoriju</translation>
@@ -1112,6 +1115,7 @@
 <translation id="2044014337866019681">Uverite se da verifikujete <ph name="ACCOUNT" /> da biste otključali sesiju.</translation>
 <translation id="204497730941176055">Naziv šablona Microsoft sertifikata</translation>
 <translation id="2045117674524495717">Pomoćnik za tasterske prečice</translation>
+<translation id="2045211794962848221">Više vam se neće prikazivati ova konkretna poruka</translation>
 <translation id="2045969484888636535">Nastavi sa blokiranjem kolačića</translation>
 <translation id="204622017488417136">Uređaj će biti vraćen na prethodno instaliranu verziju Chrome-a. Svi korisnički nalozi i lokalni podaci će biti uklonjeni. Ova radnja ne može da se opozove.</translation>
 <translation id="2046702855113914483">Ramen</translation>
@@ -3797,6 +3801,7 @@
 <translation id="4594577641390224176">Tražite stranicu sa osnovnim podacima o sistemu? Posetite</translation>
 <translation id="4595560905247879544">Aplikacije i dodatke može da menja samo menadžer (<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">Imate sačuvane sertifikate koji identifikuju ove servere</translation>
+<translation id="4598345735110653698">Upravljajte pristupnim kodovima</translation>
 <translation id="4598556348158889687">Upravljanje memorijskim prostorom</translation>
 <translation id="4598776695426288251">Dostupan je WiFi preko više uređaja</translation>
 <translation id="4601426376352205922">Označi kao nepročitano</translation>
@@ -4022,6 +4027,7 @@
 <translation id="4823894915586516138">Ovaj PIN ili lozinka štiti podatke na ovom <ph name="DEVICE_TYPE" />-u, uključujući sve informacije kojima pristupate sa telefona</translation>
 <translation id="4824037980212326045">Linux rezervne kopije i vraćanje</translation>
 <translation id="4824958205181053313">Želite li da otkažete sinhronizaciju?</translation>
+<translation id="4825532258163983651">Brisanje pristupnog koda nije uspelo</translation>
 <translation id="4827675678516992122">Povezivanje nije uspelo</translation>
 <translation id="4827784381479890589">Poboljšana provera pravopisa u pregledaču Chrome (tekst se šalje Google-u da biste dobijali predloge za pravopis)</translation>
 <translation id="4827904420700932487">Napravi QR kôd za ovu sliku</translation>
@@ -4284,6 +4290,7 @@
 <translation id="5087249366037322692">Dodala je treća strana</translation>
 <translation id="5087580092889165836">Dodaj karticu</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 sa RSA šifrovanjem</translation>
+<translation id="5089763948477033443">Regulator za promenu veličine bočne table</translation>
 <translation id="5090637338841444533">Nije im dozvoljeno da prate položaj kamere</translation>
 <translation id="5093569275467863761">Ceo keširani podokvir bez arhiviranja: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Pomoću ove aplikacije možete da otvarate i menjate podržane fajlove iz aplikacije Fajlovi ili drugih aplikacija. Da biste kontrolisali koji fajlovi podrazumevano otvaraju ovu aplikaciju, <ph name="BEGIN_LINK" />saznajte kako da podesite podrazumevane aplikacije na uređaju<ph name="END_LINK" />.</translation>
@@ -4449,6 +4456,7 @@
 <translation id="5258992782919386492">Instaliraj na ovom uređaju</translation>
 <translation id="5260334392110301220">Pametni navodnici</translation>
 <translation id="5260508466980570042">Žao nam je, nismo uspeli da verifikujemo imejl ili lozinku. Probajte ponovo.</translation>
+<translation id="5260958083445173099">Veb-sajtovi će prikazivati sadržaj na željenim jezicima kada je to moguće</translation>
 <translation id="5261683757250193089">Otvori u Veb-prodavnici</translation>
 <translation id="5262178194499261222">Ukloni lozinku</translation>
 <translation id="5262784498883614021">Automatski se poveži na mrežu</translation>
@@ -4489,6 +4497,7 @@
 <translation id="5294097441441645251">Mora da počinje malim slovom ili donjom crtom</translation>
 <translation id="5294618183559481278"><ph name="DEVICE_TYPE" /> koristi ugrađeni senzor za otkrivanje ljudi koji se nalaze ispred uređaja. Svi podaci se odmah obrađuju na uređaju, a zatim brišu. Podaci senzora se nikada ne šalju Google-u. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Slušajte govorne povratne informacije da biste mogli da koristite uređaj bez gledanja u ekran. Povratne informacije sa Brajevom azbukom dostupne su pomoću povezanog uređaja.</translation>
+<translation id="5297005732522718715">Osveži konfiguraciju privezivanja</translation>
 <translation id="5297082477358294722">Lozinka je sačuvana. Pregledajte sačuvane lozinke i upravljajte njima sa <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Kada vam neko drugi pogleda ekran, prikazuje se ikona za privatnost sa okom u donjem desnom uglu ekrana</translation>
 <translation id="5298219193514155779">Temu je napravio/la</translation>
@@ -4658,11 +4667,13 @@
 <translation id="5466374726908360271">Nalepi i pretraži „<ph name="SEARCH_TERMS" />“</translation>
 <translation id="5467207440419968613">Blokirano je: <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Traže se deljenja datoteka</translation>
+<translation id="5468330507528805311">Status privezivanja:</translation>
 <translation id="5468881191994555667">Odaberi fajl</translation>
 <translation id="5469852975082458401">Možete da se krećete stranicama pomoću kursora za tekst. Pritisnite F7 da biste to isključili.</translation>
 <translation id="5470735824776589490">Morate da restartujete uređaj da biste mogli da ga resetujete pomoću Powerwash-a. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Zdravo! Ja sam glas za pretvaranje teksta u govor.</translation>
 <translation id="5472627187093107397">Čuvaj lozinke za ovaj sajt</translation>
+<translation id="5473062644742711742">Pronađite još alatki za pristupačnost u Chrome veb-prodavnici</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">Ako nastavite, prihvatate da ovaj uređaj može i automatski da preuzima i instalira ažuriranja i aplikacije od Google-a, detetovog mobilnog operatera i proizvođača ovog uređaja, uz moguć prenos podataka preko mobilnog operatera. Neke od ovih aplikacija možda nude kupovine u aplikacijama.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN mora da sadrži bar jedan znak}one{PIN mora da sadrži bar # znak}few{PIN mora da sadrži bar # znaka}other{PIN mora da sadrži bar # znakova}}</translation>
@@ -4810,7 +4821,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Nije im dozvoljeno da se povezuju sa MIDI uređajima</translation>
 <translation id="5602765853043467355">Obriši obeleživače, istoriju, lozinke i drugo sa ovog uređaja</translation>
-<translation id="5605623530403479164">Ostali pretraživači</translation>
 <translation id="5605758115928394442">Poslali smo vam obaveštenje na telefon da biste potvrdili da ste to vi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Ovaj dodatak je blokiran}one{Ovi dodaci su blokirani}few{Ovi dodaci su blokirani}other{Ovi dodaci su blokirani}}</translation>
 <translation id="560834977503641186">WiFi sinhronizacija, saznajte više</translation>
@@ -4935,6 +4945,7 @@
 <translation id="5734362860645681824">Komunikacije</translation>
 <translation id="5734697361979786483">Dodaj deljenje datoteka</translation>
 <translation id="5736796278325406685">Unesite važeće korisničko ime</translation>
+<translation id="5738093759615225354">Treba vam ovaj pristupni kôd da biste se prijavili na računar</translation>
 <translation id="5739017626473506901">Prijavite se i omogućite da <ph name="USER_NAME" /> doda školski nalog</translation>
 <translation id="5739235828260127894">Čeka se verifikacija. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Jako veliki</translation>
@@ -5096,6 +5107,7 @@
 <translation id="589541317545606110">Pretraži stranicu pomoću usluge <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Ne dozvoli</translation>
 <translation id="5900186025777217044">Smart Lock je promenjen</translation>
+<translation id="5900243355162006650">Konfiguracija privezivanja:</translation>
 <translation id="5900302528761731119">Slika Google profila</translation>
 <translation id="590036993063074298">Detalji kvaliteta preslikavanja</translation>
 <translation id="5901069264981746702">Podaci o otisku prsta se bezbedno čuvaju isključivo na uređaju <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
@@ -5110,6 +5122,7 @@
 <translation id="5909379458939060601">Želite da izbrišete ovaj profil i podatke pregledanja?</translation>
 <translation id="5910363049092958439">Sa&amp;čuvaj sliku kao...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> je oflajn</translation>
+<translation id="5911030830365207728">Google prevodilac</translation>
 <translation id="5911533659001334206">Prikazivač prečica</translation>
 <translation id="5914724413750400082">Modul (<ph name="MODULUS_NUM_BITS" /> bit(ov)a):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5399,6 +5412,7 @@
 <translation id="6196640612572343990">Blokiraj kolačiće treće strane</translation>
 <translation id="6196854373336333322">Dodatak „<ph name="EXTENSION_NAME" />“ je preuzeo kontrolu nad podešavanjima proksija, što znači da može da menja, prekida ili špijunira sve što radite onlajn. Ako niste sigurni zašto je došlo do ove promene, verovatno vam nije potrebna.</translation>
 <translation id="6197128521826316819">Napravi QR kôd za ovu stranicu</translation>
+<translation id="6197223946499512637">Ovi pristupni kodovi se čuvaju u Windows Hello-u na ovom računaru. Oni se ne čuvaju na Google nalogu.</translation>
 <translation id="6198252989419008588">Promeni PIN</translation>
 <translation id="6200047250927636406">Odbaci fajl</translation>
 <translation id="6200151268994853226">Upravljajte dodatkom</translation>
@@ -5696,6 +5710,7 @@
 <translation id="6482559668224714696">Lupa za ceo ekran</translation>
 <translation id="6483485061007832714">Otvorite preuzimanje</translation>
 <translation id="6483805311199035658">Otvaranje datoteke <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">Da biste upravljali pristupnim kodovima, koristite noviju verziju Windows-a</translation>
 <translation id="6488384360522318064">Izaberite jezik</translation>
 <translation id="648927581764831596">Nije dostupno</translation>
 <translation id="6490471652906364588">Uređaj sa USB priključkom tipa C (desni port)</translation>
@@ -6286,6 +6301,7 @@
 <translation id="7029307918966275733">Crostini nije instaliran. Instalirajte Crostini da biste videli impresum.</translation>
 <translation id="7029809446516969842">Lozinke</translation>
 <translation id="7030304022046916278">Šalje URL-ove u Bezbedno pregledanje na proveru</translation>
+<translation id="7030695672997239647">Kliknite desnim tasterom na karticu i izaberite prvo Dodaj karticu u grupu, pa Nova grupa</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> – serijski port je povezan</translation>
 <translation id="7033616203784997570">Unos može da ima najviše 62 znaka</translation>
 <translation id="7034692021407794547">Administrator sa privilegijama Upravljanje obračunom mora prvo da prihvati uslove korišćenja usluge za Google Meet hardver u odeljku Google Meet hardver na administratorskoj konzoli.</translation>
@@ -7387,6 +7403,7 @@
 <translation id="8101987792947961127">Powerwash je obavezan pri sledećem ponovnom pokretanju</translation>
 <translation id="81020759409809034">Lokalna lokacija</translation>
 <translation id="8102139037507939978">Ukloni podatke koji mogu da otkriju identitet iz datoteke system_logs.txt.</translation>
+<translation id="810362914482827094">Pretražite pristupne kodove</translation>
 <translation id="8104088837833760645">Preuzmite eSIM profil</translation>
 <translation id="8105368624971345109">Isključi</translation>
 <translation id="8107015733319732394">Google Play prodavnica se instalira na uređaju <ph name="DEVICE_TYPE" />. To može da potraje par minuta.</translation>
@@ -7834,6 +7851,7 @@
 <translation id="8557022314818157177">Nastavite da dodirujete bezbednosni ključ dok ne snimimo otisak prsta</translation>
 <translation id="8557180006508471423">Uključite Google Chrome u uslugama lokacije na Mac-u</translation>
 <translation id="8557856025359704738">Sledeće preuzimanje je: <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Pristupni kodovi</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Otvori sve u &amp;novom prozoru}=1{Otvori u &amp;novom prozoru}one{Otvori sve ({COUNT}) u &amp;novom prozoru}few{Otvori sve ({COUNT}) u &amp;novom prozoru}other{Otvori sve ({COUNT}) u &amp;novom prozoru}}</translation>
 <translation id="8561206103590473338">Slon</translation>
 <translation id="8561565784790166472">Budite oprezni</translation>
@@ -7960,6 +7978,7 @@
 <translation id="8677212948402625567">Skupi sve...</translation>
 <translation id="867767487203716855">Sledeće ažuriranje</translation>
 <translation id="8677859815076891398">Nema albuma. Napravite album u <ph name="LINK_BEGIN" />Google slikama<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Restartuj i preuzimaj automatska ažuriranja</translation>
 <translation id="8678538439778360739">Podaci se šifruju pomoću pristupne fraze za sinhronizaciju <ph name="TIME" />. To ne obuhvata načine plaćanja i adrese iz Google Pay-a.</translation>
 <translation id="8678582529642151449">Kartice se ne skupljaju</translation>
 <translation id="8678933587484842200">Kako želite da se ova aplikacija pokreće?</translation>
@@ -8208,6 +8227,7 @@
 <translation id="8910987510378294980">Sakrijte listu uređaja</translation>
 <translation id="8912362522468806198">Google naloga</translation>
 <translation id="8912810933860534797">Omogući automatsko skeniranje</translation>
+<translation id="8915307125957890427">Kliknite desnim tasterom na karticu i izaberite prvo Dodaj karticu u grupu, pa Nova grupa</translation>
 <translation id="8915370057835397490">Učitavanje predloga</translation>
 <translation id="8916476537757519021">Podokvir Bez arhiviranja: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="DEVICE_TYPE" /> korisnika <ph name="GIVEN_NAME" /></translation>
@@ -8282,6 +8302,7 @@
 <translation id="8986362086234534611">Zaboravi</translation>
 <translation id="8986494364107987395">Automatski šalji Google-u statističke podatke o korišćenju i izveštaje o otkazivanju</translation>
 <translation id="8987927404178983737">Mesec</translation>
+<translation id="8989359959810288806">Osveži status privezivanja</translation>
 <translation id="8991520179165052608">Sajt može da koristi mikrofon</translation>
 <translation id="899384117894244799">Uklonite korisnika sa ograničenim pristupom</translation>
 <translation id="899403249577094719">Osnovna URL adresa za Netscape sertifikat</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 382f740a..5d7900a 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Коришћење микрофона и камере</translation>
 <translation id="1005333234656240382">Желите да омогућите ADB отклањање грешака?</translation>
 <translation id="1006873397406093306">Овај додатак може да чита и мења податке на сајтовима. Можете да контролишете којим сајтовима додатак може да приступа.</translation>
+<translation id="1007057452468855774">Укључите Google Play продавницу</translation>
 <translation id="1008186147501209563">Извези обележиваче</translation>
 <translation id="1008557486741366299">Не сада</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" /> локација</translation>
 <translation id="1009663062402466586">Контроле за игре су сада доступне</translation>
 <translation id="1010498023906173788">Ова картица је повезана са серијским портом.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Страница се не одазива}one{Странице се не одазивају}few{Странице се не одазивају}other{Странице се не одазивају}}</translation>
+<translation id="1011003645819296594">Сачувани уређаји</translation>
 <translation id="1011355516189274711">Јачина звука за претварање текста у говор</translation>
 <translation id="1012794136286421601">Датотеке из Докумената, Табела, Презентација и Цртежа се синхронизују. Отворите апликацију Google диск да бисте им приступили онлајн или офлајн.</translation>
 <translation id="1012876632442809908">Уређај са USB прикључком типа C (предњи порт)</translation>
@@ -493,6 +495,7 @@
 <translation id="1470350905258700113">Користи овај уређај</translation>
 <translation id="1470946456740188591">Да бисте укључили или искључили навигацију курсором, користите пречицу Ctrl+Search+7</translation>
 <translation id="1472675084647422956">Прикажи више</translation>
+<translation id="1473223074251193484">Подеси конфигурацију привезивања</translation>
 <translation id="1474785664565228650">Промена подешавања микрофона захтева поновно покретање Parallels Desktop-а. Поново покрените Parallels Desktop да бисте наставили.</translation>
 <translation id="1474893630593443211">Већа контрола над огласима које видите</translation>
 <translation id="1475502736924165259">На датотеци има сертификата који се не уклапају ни у једну другу категорију</translation>
@@ -1112,6 +1115,7 @@
 <translation id="2044014337866019681">Уверите се да верификујете <ph name="ACCOUNT" /> да бисте откључали сесију.</translation>
 <translation id="204497730941176055">Назив шаблона Microsoft сертификата</translation>
 <translation id="2045117674524495717">Помоћник за тастерске пречице</translation>
+<translation id="2045211794962848221">Више вам се неће приказивати ова конкретна порука</translation>
 <translation id="2045969484888636535">Настави са блокирањем колачића</translation>
 <translation id="204622017488417136">Уређај ће бити враћен на претходно инсталирану верзију Chrome-а. Сви кориснички налози и локални подаци ће бити уклоњени. Ова радња не може да се опозове.</translation>
 <translation id="2046702855113914483">Рамен</translation>
@@ -3797,6 +3801,7 @@
 <translation id="4594577641390224176">Тражите страницу са основним подацима о систему? Посетите</translation>
 <translation id="4595560905247879544">Апликације и додатке може да мења само менаџер (<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">Имате сачуване сертификате који идентификују ове сервере</translation>
+<translation id="4598345735110653698">Управљајте приступним кодовима</translation>
 <translation id="4598556348158889687">Управљање меморијским простором</translation>
 <translation id="4598776695426288251">Доступан је WiFi преко више уређаја</translation>
 <translation id="4601426376352205922">Означи као непрочитано</translation>
@@ -4022,6 +4027,7 @@
 <translation id="4823894915586516138">Овај PIN или лозинка штити податке на овом <ph name="DEVICE_TYPE" />-у, укључујући све информације којима приступате са телефона</translation>
 <translation id="4824037980212326045">Linux резервне копије и враћање</translation>
 <translation id="4824958205181053313">Желите ли да откажете синхронизацију?</translation>
+<translation id="4825532258163983651">Брисање приступног кода није успело</translation>
 <translation id="4827675678516992122">Повезивање није успело</translation>
 <translation id="4827784381479890589">Побољшана провера правописа у прегледачу Chrome (текст се шаље Google-у да бисте добијали предлоге за правопис)</translation>
 <translation id="4827904420700932487">Направи QR кôд за ову слику</translation>
@@ -4284,6 +4290,7 @@
 <translation id="5087249366037322692">Додала је трећа страна</translation>
 <translation id="5087580092889165836">Додај картицу</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 са RSA шифровањем</translation>
+<translation id="5089763948477033443">Регулатор за промену величине бочне табле</translation>
 <translation id="5090637338841444533">Није им дозвољено да прате положај камере</translation>
 <translation id="5093569275467863761">Цео кеширани подоквир без архивирања: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Помоћу ове апликације можете да отварате и мењате подржане фајлове из апликације Фајлови или других апликација. Да бисте контролисали који фајлови подразумевано отварају ову апликацију, <ph name="BEGIN_LINK" />сазнајте како да подесите подразумеване апликације на уређају<ph name="END_LINK" />.</translation>
@@ -4449,6 +4456,7 @@
 <translation id="5258992782919386492">Инсталирај на овом уређају</translation>
 <translation id="5260334392110301220">Паметни наводници</translation>
 <translation id="5260508466980570042">Жао нам је, нисмо успели да верификујемо имејл или лозинку. Пробајте поново.</translation>
+<translation id="5260958083445173099">Веб-сајтови ће приказивати садржај на жељеним језицима када је то могуће</translation>
 <translation id="5261683757250193089">Отвори у Веб-продавници</translation>
 <translation id="5262178194499261222">Уклони лозинку</translation>
 <translation id="5262784498883614021">Аутоматски се повежи на мрежу</translation>
@@ -4489,6 +4497,7 @@
 <translation id="5294097441441645251">Мора да почиње малим словом или доњом цртом</translation>
 <translation id="5294618183559481278"><ph name="DEVICE_TYPE" /> користи уграђени сензор за откривање људи који се налазе испред уређаја. Сви подаци се одмах обрађују на уређају, а затим бришу. Подаци сензора се никада не шаљу Google-у. <ph name="LINK_BEGIN" />Сазнајте више<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Слушајте говорне повратне информације да бисте могли да користите уређај без гледања у екран. Повратне информације са Брајевом азбуком доступне су помоћу повезаног уређаја.</translation>
+<translation id="5297005732522718715">Освежи конфигурацију привезивања</translation>
 <translation id="5297082477358294722">Лозинка је сачувана. Прегледајте сачуване лозинке и управљајте њима са <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5297946558563358707">Када вам неко други погледа екран, приказује се икона за приватност са оком у доњем десном углу екрана</translation>
 <translation id="5298219193514155779">Тему је направио/ла</translation>
@@ -4658,11 +4667,13 @@
 <translation id="5466374726908360271">Налепи и претражи „<ph name="SEARCH_TERMS" />“</translation>
 <translation id="5467207440419968613">Блокирано је: <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Траже се дељења датотека</translation>
+<translation id="5468330507528805311">Статус привезивања:</translation>
 <translation id="5468881191994555667">Одабери фајл</translation>
 <translation id="5469852975082458401">Можете да се крећете страницама помоћу курсора за текст. Притисните F7 да бисте то искључили.</translation>
 <translation id="5470735824776589490">Морате да рестартујете уређај да бисте могли да га ресетујете помоћу Powerwash-а. <ph name="LINK_BEGIN" />Сазнајте више<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Здраво! Ја сам глас за претварање текста у говор.</translation>
 <translation id="5472627187093107397">Чувај лозинке за овај сајт</translation>
+<translation id="5473062644742711742">Пронађите још алатки за приступачност у Chrome веб-продавници</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">Ако наставите, прихватате да овај уређај може и аутоматски да преузима и инсталира ажурирања и апликације од Google-а, дететовог мобилног оператера и произвођача овог уређаја, уз могућ пренос података преко мобилног оператера. Неке од ових апликација можда нуде куповине у апликацијама.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN мора да садржи бар један знак}one{PIN мора да садржи бар # знак}few{PIN мора да садржи бар # знака}other{PIN мора да садржи бар # знакова}}</translation>
@@ -4810,7 +4821,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Није им дозвољено да се повезују са MIDI уређајима</translation>
 <translation id="5602765853043467355">Обриши обележиваче, историју, лозинке и друго са овог уређаја</translation>
-<translation id="5605623530403479164">Остали претраживачи</translation>
 <translation id="5605758115928394442">Послали смо вам обавештење на телефон да бисте потврдили да сте то ви.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Овај додатак је блокиран}one{Ови додаци су блокирани}few{Ови додаци су блокирани}other{Ови додаци су блокирани}}</translation>
 <translation id="560834977503641186">WiFi синхронизација, сазнајте више</translation>
@@ -4935,6 +4945,7 @@
 <translation id="5734362860645681824">Комуникације</translation>
 <translation id="5734697361979786483">Додај дељење датотека</translation>
 <translation id="5736796278325406685">Унесите важеће корисничко име</translation>
+<translation id="5738093759615225354">Треба вам овај приступни кôд да бисте се пријавили на рачунар</translation>
 <translation id="5739017626473506901">Пријавите се и омогућите да <ph name="USER_NAME" /> дода школски налог</translation>
 <translation id="5739235828260127894">Чека се верификација. <ph name="LINK_BEGIN" />Сазнајте више<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Јако велики</translation>
@@ -5096,6 +5107,7 @@
 <translation id="589541317545606110">Претражи страницу помоћу услуге <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Не дозволи</translation>
 <translation id="5900186025777217044">Smart Lock је промењен</translation>
+<translation id="5900243355162006650">Конфигурација привезивања:</translation>
 <translation id="5900302528761731119">Слика Google профила</translation>
 <translation id="590036993063074298">Детаљи квалитета пресликавања</translation>
 <translation id="5901069264981746702">Подаци о отиску прста се безбедно чувају искључиво на уређају <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Сазнајте више<ph name="LINK_END" /></translation>
@@ -5110,6 +5122,7 @@
 <translation id="5909379458939060601">Желите да избришете овај профил и податке прегледања?</translation>
 <translation id="5910363049092958439">Са&amp;чувај слику као...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> је офлајн</translation>
+<translation id="5911030830365207728">Google преводилац</translation>
 <translation id="5911533659001334206">Приказивач пречица</translation>
 <translation id="5914724413750400082">Модул (<ph name="MODULUS_NUM_BITS" /> бит(ов)а):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5399,6 +5412,7 @@
 <translation id="6196640612572343990">Блокирај колачиће треће стране</translation>
 <translation id="6196854373336333322">Додатак „<ph name="EXTENSION_NAME" />“ је преузео контролу над подешавањима проксија, што значи да може да мења, прекида или шпијунира све што радите онлајн. Ако нисте сигурни зашто је дошло до ове промене, вероватно вам није потребна.</translation>
 <translation id="6197128521826316819">Направи QR кôд за ову страницу</translation>
+<translation id="6197223946499512637">Ови приступни кодови се чувају у Windows Hello-у на овом рачунару. Они се не чувају на Google налогу.</translation>
 <translation id="6198252989419008588">Промени PIN</translation>
 <translation id="6200047250927636406">Одбаци фајл</translation>
 <translation id="6200151268994853226">Управљајте додатком</translation>
@@ -5696,6 +5710,7 @@
 <translation id="6482559668224714696">Лупа за цео екран</translation>
 <translation id="6483485061007832714">Отворите преузимање</translation>
 <translation id="6483805311199035658">Отварање датотеке <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">Да бисте управљали приступним кодовима, користите новију верзију Windows-а</translation>
 <translation id="6488384360522318064">Изаберите језик</translation>
 <translation id="648927581764831596">Није доступно</translation>
 <translation id="6490471652906364588">Уређај са USB прикључком типа C (десни порт)</translation>
@@ -6286,6 +6301,7 @@
 <translation id="7029307918966275733">Crostini није инсталиран. Инсталирајте Crostini да бисте видели импресум.</translation>
 <translation id="7029809446516969842">Лозинке</translation>
 <translation id="7030304022046916278">Шаље URL-ове у Безбедно прегледање на проверу</translation>
+<translation id="7030695672997239647">Кликните десним тастером на картицу и изаберите прво Додај картицу у групу, па Нова група</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> – серијски порт је повезан</translation>
 <translation id="7033616203784997570">Унос може да има највише 62 знака</translation>
 <translation id="7034692021407794547">Администратор са привилегијама Управљање обрачуном мора прво да прихвати услове коришћења услуге за Google Meet хардвер у одељку Google Meet хардвер на администраторској конзоли.</translation>
@@ -7387,6 +7403,7 @@
 <translation id="8101987792947961127">Powerwash је обавезан при следећем поновном покретању</translation>
 <translation id="81020759409809034">Локална локација</translation>
 <translation id="8102139037507939978">Уклони податке који могу да открију идентитет из датотеке system_logs.txt.</translation>
+<translation id="810362914482827094">Претражите приступне кодове</translation>
 <translation id="8104088837833760645">Преузмите eSIM профил</translation>
 <translation id="8105368624971345109">Искључи</translation>
 <translation id="8107015733319732394">Google Play продавница се инсталира на уређају <ph name="DEVICE_TYPE" />. То може да потраје пар минута.</translation>
@@ -7834,6 +7851,7 @@
 <translation id="8557022314818157177">Наставите да додирујете безбедносни кључ док не снимимо отисак прста</translation>
 <translation id="8557180006508471423">Укључите Google Chrome у услугама локације на Mac-у</translation>
 <translation id="8557856025359704738">Следеће преузимање је: <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Приступни кодови</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Отвори све у &amp;новом прозору}=1{Отвори у &amp;новом прозору}one{Отвори све ({COUNT}) у &amp;новом прозору}few{Отвори све ({COUNT}) у &amp;новом прозору}other{Отвори све ({COUNT}) у &amp;новом прозору}}</translation>
 <translation id="8561206103590473338">Слон</translation>
 <translation id="8561565784790166472">Будите опрезни</translation>
@@ -7960,6 +7978,7 @@
 <translation id="8677212948402625567">Скупи све...</translation>
 <translation id="867767487203716855">Следеће ажурирање</translation>
 <translation id="8677859815076891398">Нема албума. Направите албум у <ph name="LINK_BEGIN" />Google сликама<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Рестартуј и преузимај аутоматска ажурирања</translation>
 <translation id="8678538439778360739">Подаци се шифрују помоћу приступне фразе за синхронизацију <ph name="TIME" />. То не обухвата начине плаћања и адресе из Google Pay-а.</translation>
 <translation id="8678582529642151449">Картице се не скупљају</translation>
 <translation id="8678933587484842200">Како желите да се ова апликација покреће?</translation>
@@ -8208,6 +8227,7 @@
 <translation id="8910987510378294980">Сакријте листу уређаја</translation>
 <translation id="8912362522468806198">Google налога</translation>
 <translation id="8912810933860534797">Омогући аутоматско скенирање</translation>
+<translation id="8915307125957890427">Кликните десним тастером на картицу и изаберите прво Додај картицу у групу, па Нова група</translation>
 <translation id="8915370057835397490">Учитавање предлога</translation>
 <translation id="8916476537757519021">Подоквир Без архивирања: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="DEVICE_TYPE" /> корисника <ph name="GIVEN_NAME" /></translation>
@@ -8282,6 +8302,7 @@
 <translation id="8986362086234534611">Заборави</translation>
 <translation id="8986494364107987395">Аутоматски шаљи Google-у статистичке податке о коришћењу и извештаје о отказивању</translation>
 <translation id="8987927404178983737">Месец</translation>
+<translation id="8989359959810288806">Освежи статус привезивања</translation>
 <translation id="8991520179165052608">Сајт може да користи микрофон</translation>
 <translation id="899384117894244799">Уклоните корисника са ограниченим приступом</translation>
 <translation id="899403249577094719">Основна URL адреса за Netscape сертификат</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 4599dfe..6adc34b67 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -906,6 +906,7 @@
 <translation id="1829129547161959350">Pingvin</translation>
 <translation id="1829192082282182671">Zooma ut</translation>
 <translation id="1830550083491357902">Inte inloggad</translation>
+<translation id="1831848493690504725">Det går inte att nå Google via det anslutna nätverket. Testa att välja ett annat nätverk eller kontrollera nätverks- eller proxyinställningarna (om du använder en proxy).</translation>
 <translation id="1832459821645506983">Ja</translation>
 <translation id="1832511806131704864">Mobiländringen har uppdaterats</translation>
 <translation id="1832848789136765277">Verifiera din identitet så att du alltid får åtkomst till din synkroniserade data</translation>
@@ -2208,6 +2209,7 @@
 <translation id="3021065318976393105">Vid batteridrift</translation>
 <translation id="3021066826692793094">Fjäril</translation>
 <translation id="3021678814754966447">&amp;Visa ramkälla</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> tas bort från denna Chromebook och sparas inte i <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Jag hörde inte.</translation>
 <translation id="3023464535986383522">Textuppläsning</translation>
 <translation id="3024374909719388945">Använd 24-timmars klocka</translation>
@@ -3747,6 +3749,7 @@
 <translation id="4535127706710932914">Standardprofil</translation>
 <translation id="4535767533210902251">Fingeravtryckssensorn är tangenten högst upp till höger på tangentbordet. Tryck lätt på den med valfritt finger.</translation>
 <translation id="4536140153723794651">Webbplatser som alltid kan använda cookies</translation>
+<translation id="4536769240747010177">Internetdelningfunktioner:</translation>
 <translation id="4538417792467843292">Ta bort ord</translation>
 <translation id="4538792345715658285">Installerad på grund av företagets principer.</translation>
 <translation id="4541123282641193691">Det gick inte att verifiera kontot. Försök igen eller starta om Chromebook.</translation>
@@ -3774,6 +3777,7 @@
 <translation id="4561893854334016293">Inga behörigheter har ändrats nyligen</translation>
 <translation id="4562155214028662640">Lägg till fingeravtryck</translation>
 <translation id="4563210852471260509">Det ursprungliga inmatningsspråket är kinesiska</translation>
+<translation id="4563382028841851106">Ta bort från konto</translation>
 <translation id="4563880231729913339">Finger 3</translation>
 <translation id="4564245002465020751">Slutför konfigureringen på telefonen</translation>
 <translation id="4565377596337484307">Dölj lösenord</translation>
@@ -4750,6 +4754,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> vill</translation>
 <translation id="5534304873398226603">Släng fotot eller videon</translation>
 <translation id="5537725057119320332">Casta</translation>
+<translation id="5539070192556911367">Det går inte att nå Google</translation>
 <translation id="5539221284352502426">Det angivna lösenordet avvisades av servern. Möjliga orsaker: Lösenordet är för kort. Lösenordet måste innehålla siffror eller symboler. Det får inte vara ett återanvänt lösenord.</translation>
 <translation id="5541694225089836610">Åtgärden har inaktiverats av administratören</translation>
 <translation id="5542132724887566711">Profil</translation>
@@ -4813,6 +4818,7 @@
 <translation id="5585912436068747822">Formateringen misslyckades</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Läser in appar …</translation>
+<translation id="5590418976913374224">Spela upp ljud vid start av enheten</translation>
 <translation id="5592595402373377407">Det finns inte tillräckligt mycket data ännu.</translation>
 <translation id="5595307023264033512">Totalt lagringsutrymme som används av webbplatser: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Redigera adress</translation>
@@ -4822,7 +4828,6 @@
 <translation id="5601503069213153581">Pinkod</translation>
 <translation id="5601823921345337195">Får inte ansluta till MIDI-enheter</translation>
 <translation id="5602765853043467355">Rensa bokmärken, historik , lösenord med mera från den här enheten</translation>
-<translation id="5605623530403479164">Andra sökmotorer</translation>
 <translation id="5605758115928394442">En avisering har skickats till din mobil för att bekräfta att det är du.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Detta tillägg har blockerats}other{Dessa tillägg har blockerats}}</translation>
 <translation id="560834977503641186">wifi-synkronisering, läs mer</translation>
@@ -5121,6 +5126,7 @@
 <translation id="5909379458939060601">Vill du radera den här profilen och tillhörande webbinformation?</translation>
 <translation id="5910363049092958439">S&amp;para bild som...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> är offline</translation>
+<translation id="5911030830365207728">Google Översätt</translation>
 <translation id="5911533659001334206">Kortkommandovisare</translation>
 <translation id="5914724413750400082">Modulus (<ph name="MODULUS_NUM_BITS" /> bitar):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6190,6 +6196,10 @@
 <translation id="6943939122536910181">Frånkopplad från <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Välj</translation>
 <translation id="694592694773692225">Omdirigering blockerad på den här sidan.</translation>
+<translation id="6947015141909171112">Receptförslag visas utifrån dina senaste receptsökningar på Sök.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Du kan hantera inställningarna i kortmenyn. Det finns även fler alternativ i Anpassa Chrome.</translation>
 <translation id="6949434160682548041">Lösenord (valfritt)</translation>
 <translation id="6950627417367801484">Återställ appar</translation>
 <translation id="6952242901357037157">Du kan även visa lösenord från <ph name="BEGIN_LINK" />Google-kontot<ph name="END_LINK" /> här</translation>
@@ -6357,6 +6367,7 @@
 <translation id="7102687220333134671">Automatiska uppdateringar har aktiverats</translation>
 <translation id="7102832101143475489">Begäran tog för lång tid</translation>
 <translation id="710640343305609397">Öppna nätverksinställningar</translation>
+<translation id="7107609441453408294">Spela upp samma ljud i alla högtalare</translation>
 <translation id="7108338896283013870">Dölj</translation>
 <translation id="7108668606237948702">retur</translation>
 <translation id="7108933416628942903">Lås nu</translation>
@@ -6587,6 +6598,7 @@
 <translation id="7364745943115323529">Casta …</translation>
 <translation id="7364796246159120393">Välj fil</translation>
 <translation id="7365076891350562061">Skärmstorlek</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> – fäst</translation>
 <translation id="7366316827772164604">Söker efter enheter i närheten …</translation>
 <translation id="7366415735885268578">Lägg till en webbplats</translation>
 <translation id="7366909168761621528">Webbinformation</translation>
@@ -6983,6 +6995,7 @@
 <translation id="7737115349420013392">Parkopplas med <ph name="DEVICE_NAME" /> …</translation>
 <translation id="7737846262459425222">Du kan när som helst ändra detta i Inställningar &gt; Google Assistent &gt; Innehållet på skärmen.</translation>
 <translation id="7737948071472253612">Får inte använda kameran</translation>
+<translation id="77381465218432215">Visa accenttecken och specialtecken</translation>
 <translation id="7740996059027112821">Standard</translation>
 <translation id="7741307896921365578">Aktiverar en sidopanel på webbläsarnivå för ett användbart och beständigt sätt att få åtkomst till läslistan och bokmärken.</translation>
 <translation id="7742558784808143689">Vill du rensa webbplatsdata och behörigheter för <ph name="SITE_NAME" />, alla underordnade webbplatser och installerade appar?</translation>
@@ -7773,6 +7786,7 @@
 <translation id="8486666913807228950">Orsak: Den inverterade regeln <ph name="REVERT_RULE" /> hittades i listan Tvinga att öppna i.</translation>
 <translation id="848666842773560761">En app försöker använda kameran. Om du vill låta den göra detta måste du inaktivera integritetsinställningen som blockerar kameran.</translation>
 <translation id="8487678622945914333">Zooma in</translation>
+<translation id="8487699605742506766">Surfzon</translation>
 <translation id="8489156414266187072">Personliga förslag visas bara i ditt konto</translation>
 <translation id="8490896350101740396">Följande kioskappar <ph name="UPDATED_APPS" /> har uppdaterats. Starta om enheten för att slutföra uppdateringen.</translation>
 <translation id="8492685019009920170">Tryck på fingeravtryckssensorn med fingret. Data lagras på ett säkert sätt och lämnar aldrig din <ph name="DEVICE_TYPE" />.</translation>
@@ -8266,6 +8280,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{<ph name="TAB_TITLE" />}=1{<ph name="TAB_TITLE" /> och 1 flik till}other{<ph name="TAB_TITLE" /> och # flikar till}}</translation>
 <translation id="8977811652087512276">Felaktigt lösenord eller skadad fil</translation>
 <translation id="8978154919215542464">På – synkronisera allt</translation>
+<translation id="8978670037548431647">Uppdatera internetdelningsfunktioner</translation>
 <translation id="897939795688207351">På <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Feedbackrapporter</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – kraschat</translation>
@@ -8530,6 +8545,7 @@
 <translation id="935854577147268200">Smart Lock används med en annan mobil än tidigare. Ange lösenordet och uppdatera Smart Lock. Nästa gång låser mobilen upp denna <ph name="DEVICE_TYPE" />. Du kan inaktivera Smart Lock i inställningarna</translation>
 <translation id="936646668635477464">Kamera och mikrofon</translation>
 <translation id="936801553271523408">Systemets diagnostikresultat</translation>
+<translation id="937053962468712792">Vill du ta bort <ph name="DEVICE" /> från <ph name="PRIMARY_EMAIL" />?</translation>
 <translation id="93766956588638423">Reparera tillägg</translation>
 <translation id="938568644810664664">Testa att säga ”Hey Google, vad är det här för låt?” eller ”Hey Google, vad visas på skärmen?”</translation>
 <translation id="938623846785894166">Ovanlig fil</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index 78ebb4f..6c5dfca2 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -903,6 +903,7 @@
 <translation id="1829129547161959350">Ngwini</translation>
 <translation id="1829192082282182671">Fif&amp;iza</translation>
 <translation id="1830550083491357902">Haijaingiwa</translation>
+<translation id="1831848493690504725">Hatuwezi kuifikia Google kupitia mtandao uliounganishwa. Jaribu kuchagua mtandao mwingine au uangalie mipangilio ya mtandao wako au mipangilio ya seva mbadala (ikiwa unatumia seva mbadala).</translation>
 <translation id="1832459821645506983">Ndiyo, ninakubali</translation>
 <translation id="1832511806131704864">Mabadiliko ya simu yamesasishwa</translation>
 <translation id="1832848789136765277">Ili uhakikishe kwamba unaweza kufikia data yako inayosawazishwa wakati wowote, thibitisha kwamba ni wewe</translation>
@@ -2205,6 +2206,7 @@
 <translation id="3021065318976393105">Inapotumia betri</translation>
 <translation id="3021066826692793094">Kipepeo</translation>
 <translation id="3021678814754966447">&amp;Ona Asili ya Fremu</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> kitaondolewa kwenye Chromebook hii na hakitahifadhiwa kwenye <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="3022978424994383087">Imeshindwa kutafsiri.</translation>
 <translation id="3023464535986383522">Chagua ili izungumze</translation>
 <translation id="3024374909719388945">Tumia mfumo wa saa 24</translation>
@@ -3742,6 +3744,7 @@
 <translation id="4535127706710932914">Wasifu Chaguomsingi</translation>
 <translation id="4535767533210902251">Kitambua alama ya kidole kiko kwenye kitufe cha upande wa kulia juu katika kibodi yako. Kiguse taratibu ukitumia kidole chako.</translation>
 <translation id="4536140153723794651">Tovuti ambazo zinaweza kutumia vidakuzi kila wakati</translation>
+<translation id="4536769240747010177">Vipengele vya Kusambaza mtandao:</translation>
 <translation id="4538417792467843292">Futa neno</translation>
 <translation id="4538792345715658285">Imesanidiwa na sera ya biashara.</translation>
 <translation id="4541123282641193691">Imeshindwa kuthibitisha akaunti yako. Tafadhali jaribu tena au zima kisha uwashe Chromebook yako.</translation>
@@ -3769,6 +3772,7 @@
 <translation id="4561893854334016293">Hamna ruhusa ambazo zimebadilishwa hivi majuzi</translation>
 <translation id="4562155214028662640">Ongeza Alama ya Kidole</translation>
 <translation id="4563210852471260509">Lugha ingizo ya kwanza ni Kichina</translation>
+<translation id="4563382028841851106">Ondoa kifaa kilichohifadhiwa kwenye akaunti</translation>
 <translation id="4563880231729913339">Kidole cha 3</translation>
 <translation id="4564245002465020751">Maliza kuweka mipangilio kwenye simu yako</translation>
 <translation id="4565377596337484307">Ficha nenosiri</translation>
@@ -4672,6 +4676,7 @@
 <translation id="5470735824776589490">Unahitaji kuwasha upya kabla ya kuweka mipangilio kwenye kifaa chako ukitumia Powerwash. <ph name="LINK_BEGIN" />Pata maelezo zaidi<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Hujambo! Mimi ni sauti yako inayobadilisha maandishi kwenda usemi.</translation>
 <translation id="5472627187093107397">Hifadhi manenosiri ya tovuti hii</translation>
+<translation id="5473062644742711742">Pata zana zaidi za ufikivu katika Duka la Chrome kwenye Wavuti</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">Kwa kuendelea, unakubali kwamba kifaa hiki pia kinaweza kupakua na kusakinisha masasisho na programu kiotomatiki kutoka Google, kampuni inayompa mtoto wako huduma za simu na mtengenezaji wa kifaa hiki, kwa kutumia data ya mtandao wa simu (panapowezekana). Huenda baadhi ya programu hizi zikawa na ununuzi wa ndani ya programu.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Ni lazima PIN iwe na angalau herufi moja}other{Ni lazima PIN iwe na angalau herufi #}}</translation>
@@ -4745,6 +4750,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> inataka</translation>
 <translation id="5534304873398226603">Ondoa picha au video</translation>
 <translation id="5537725057119320332">Tuma</translation>
+<translation id="5539070192556911367">Imeshindwa kuifikia Google</translation>
 <translation id="5539221284352502426">Nenosiri uliloweka limekataliwa na seva. Hali hii inaweza kusababishwa na: Nenosiri kuwa fupi mno. Nenosiri lazima lijumuishe nambari na ishara. Nenosiri lazima liwe tofauti na manenosiri ya awali.</translation>
 <translation id="5541694225089836610">Kitendo kimezimwa na msimamizi wako</translation>
 <translation id="5542132724887566711">Wasifu</translation>
@@ -4808,6 +4814,7 @@
 <translation id="5585912436068747822">Uumbizaji umeshindwa</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Inapakia programu...</translation>
+<translation id="5590418976913374224">Cheza sauti wakati kifaa kinawaka</translation>
 <translation id="5592595402373377407">Bado hakuna data ya kutosha.</translation>
 <translation id="5595307023264033512">Jumla ya hifadhi iliyotumiwa na tovuti: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Badilisha anwani</translation>
@@ -4817,7 +4824,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Zisizoruhusiwa kuunganisha kwenye vifaa vya MIDI</translation>
 <translation id="5602765853043467355">Futa alamisho, historia, manenosiri na mengineyo kwenye kifaa hiki</translation>
-<translation id="5605623530403479164">Mitambo mingine ya kutafuta</translation>
 <translation id="5605758115928394442">Arifa imetumwa kwenye simu yako ili kuthibitisha ni wewe.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Kiendelezi hiki kimezuiwa}other{Viendelezi hivi vimezuiwa}}</translation>
 <translation id="560834977503641186">Usawazishaji Wi-Fi, Pata Maelezo Zaidi</translation>
@@ -5116,6 +5122,7 @@
 <translation id="5909379458939060601">Ungependa kufuta wasifu huu na data ya kuvinjari?</translation>
 <translation id="5910363049092958439">&amp;Hifadhi Picha Kama...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> iko nje ya mtandao</translation>
+<translation id="5911030830365207728">Google Tafsiri</translation>
 <translation id="5911533659001334206">Kitazamaji cha njia ya mkato</translation>
 <translation id="5914724413750400082">Modyuli (biti <ph name="MODULUS_NUM_BITS" />):
   <ph name="MODULUS_HEX_DUMP" />
@@ -6185,6 +6192,10 @@
 <translation id="6943939122536910181">Imetenganishwa na <ph name="DEVICE" /></translation>
 <translation id="6945221475159498467">Chagua</translation>
 <translation id="694592694773692225">Uelekezaji kwingine kwenye ukurasa huu umezuiwa.</translation>
+<translation id="6947015141909171112">Unaona maelekezo ya mapishi kulingana na shughuli zako za utafutaji maelekezo ya mapishi za hivi karibuni.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Unaweza kudhibiti mipangilio kwenye menyu ya kadi au angalia chaguo zaidi katika kipengele cha Weka Mipangilio ya Chrome Upendavyo.</translation>
 <translation id="6949434160682548041">Nenosiri (si lazima)</translation>
 <translation id="6950627417367801484">Rejesha programu</translation>
 <translation id="6952242901357037157">Unaweza pia kuonyesha manenosiri kutoka <ph name="BEGIN_LINK" />Akaunti yako ya Google<ph name="END_LINK" /> hapa</translation>
@@ -6352,6 +6363,7 @@
 <translation id="7102687220333134671">Masasisho ya kiotomatiki yamewashwa</translation>
 <translation id="7102832101143475489">Muda wa ombi umekwisha</translation>
 <translation id="710640343305609397">Fungua mipangilio ya mtandao</translation>
+<translation id="7107609441453408294">Cheza aina moja ya maudhui ya sauti kwenye spika zote</translation>
 <translation id="7108338896283013870">Ficha</translation>
 <translation id="7108668606237948702">ingiza</translation>
 <translation id="7108933416628942903">Funga sasa</translation>
@@ -6582,6 +6594,7 @@
 <translation id="7364745943115323529">Tuma...</translation>
 <translation id="7364796246159120393">Chagua Faili</translation>
 <translation id="7365076891350562061">Ukubwa wa skrini</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> - kimebandikwa</translation>
 <translation id="7366316827772164604">Inatafuta vifaa vilivyo karibu...</translation>
 <translation id="7366415735885268578">Ongeza tovuti</translation>
 <translation id="7366909168761621528">Data ya kuvinjari</translation>
@@ -6978,6 +6991,7 @@
 <translation id="7737115349420013392">Inaoanisha na "<ph name="DEVICE_NAME" />" ...</translation>
 <translation id="7737846262459425222">Unaweza kubadilisha hali hii wakati wowote katika Mipangilio &gt; Mratibu wa Google &gt; Muktadha wa skrini.</translation>
 <translation id="7737948071472253612">Zisizoruhusiwa kutumia kamera yako</translation>
+<translation id="77381465218432215">Onyesha herufi maalum na alama za kuonyesha mkazo wa jinsi herufi inavyotamkwa.</translation>
 <translation id="7740996059027112821">Wastani</translation>
 <translation id="7741307896921365578">Huwasha kidirisha cha pembeni kwenye kivinjari ili uweze kufikia Orodha ya Kusoma na Alamisho zako kwa njia rahisi inayokufaa.</translation>
 <translation id="7742558784808143689">Ungependa kufuta data na ruhusa za tovuti ya <ph name="SITE_NAME" />, tovuti zote zilizomo na programu zilizosakinishwa?</translation>
@@ -7769,6 +7783,7 @@
 <translation id="8486666913807228950">Sababu: Amri iliyogeuzwa ya <ph name="REVERT_RULE" /> imepatikana katika orodha ya "Force open in".</translation>
 <translation id="848666842773560761">Kuna programu inayojaribu kufikia kamera. Zima swichi ya faragha ya kamera ili uruhusu ifikiwe.</translation>
 <translation id="8487678622945914333">Kuza</translation>
+<translation id="8487699605742506766">Mtandaopepe</translation>
 <translation id="8489156414266187072">Mapendekezo binafsi yanaonyeshwa tu kwenye akaunti yako</translation>
 <translation id="8490896350101740396">Programu za skrini nzima zifuatazo "<ph name="UPDATED_APPS" />" zimesasishwa. Tafadhali washa tena kifaa ili kukamilisha mchakato wa kusasisha.</translation>
 <translation id="8492685019009920170">Gusa kitambua alama ya kidole kwa kidole chako. Data yako itahifadhiwa kwa usalama na itasalia kwenye <ph name="DEVICE_TYPE" /> yako.</translation>
@@ -8262,6 +8277,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" na kichupo kingine 1}other{"<ph name="TAB_TITLE" />" na vichupo vingine #}}</translation>
 <translation id="8977811652087512276">Nenosiri si sahihi au faili imeharibika</translation>
 <translation id="8978154919215542464">Imewashwa - sawazisha kila kitu</translation>
+<translation id="8978670037548431647">Onyesha Upya Vipengele vya Kusambaza Mtandao</translation>
 <translation id="897939795688207351">Kwenye <ph name="ORIGIN" /></translation>
 <translation id="8980345560318123814">Ripoti za maoni</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Imeacha kufanya kazi</translation>
@@ -8526,6 +8542,7 @@
 <translation id="935854577147268200">Umebadilisha simu inayotumia Smart Lock. Weka nenosiri lako ili usasishe Smart Lock. Wakati ujao, simu yako itafungua <ph name="DEVICE_TYPE" /> yako. Unaweza kuzima Smart Lock katika Mipangilio</translation>
 <translation id="936646668635477464">Kamera na maikrofoni</translation>
 <translation id="936801553271523408">Data ya uchungzi wa mfumo</translation>
+<translation id="937053962468712792">Ungependa kuondoa kifaa cha <ph name="DEVICE" /> kwenye <ph name="PRIMARY_EMAIL" />.</translation>
 <translation id="93766956588638423">Karabati kiendelezi</translation>
 <translation id="938568644810664664">Jaribu kusema “Ok Google, huu ni wimbo gani?” au “Ok Google, ni nini kilicho kwenye skrini yangu?”</translation>
 <translation id="938623846785894166">Faili isiyo ya kawaida</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index b4d4783..5f083e27 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -4828,7 +4828,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI சாதனங்களுடன் இணைப்பதற்கு அனுமதி இல்லாத தளங்கள்</translation>
 <translation id="5602765853043467355">இந்தச் சாதனத்திலிருந்து புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் மற்றும் பலவற்றை அழிக்கவும்</translation>
-<translation id="5605623530403479164">பிற தேடல் இன்ஜின்கள்</translation>
 <translation id="5605758115928394442">அது நீங்கள்தான் என்பதை உறுதிப்படுத்த உங்கள் ஃபோனுக்கு ஓர் அறிவிப்பு அனுப்பப்பட்டுள்ளது.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{இந்த நீட்டிப்பு தடுக்கப்பட்டுள்ளது}other{இந்த நீட்டிப்புகள் தடுக்கப்பட்டுள்ளன}}</translation>
 <translation id="560834977503641186">வைஃபை ஒத்திசைவு, மேலும் அறிக</translation>
@@ -5128,6 +5127,7 @@
 <translation id="5909379458939060601">இந்தச் சுயவிவரத்தையும் உலாவிய தரவையும் நீக்கவா?</translation>
 <translation id="5910363049092958439">படத்தை இவ்வாறு சே&amp;மி...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ஆஃப்லைனில் உள்ளது</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">Shortcut viewer</translation>
 <translation id="5914724413750400082">தனிமதிப்பு (<ph name="MODULUS_NUM_BITS" /> பிட்கள்):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index c8b8800..7d1d52f 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -908,6 +908,7 @@
 <translation id="1829129547161959350">పెంగ్విన్</translation>
 <translation id="1829192082282182671">&amp;దూరంగా జూమ్ చేయి</translation>
 <translation id="1830550083491357902">సైన్ ఇన్ చేయలేదు</translation>
+<translation id="1831848493690504725">కనెక్ట్ చేయబడిన నెట్‌వర్క్ ద్వారా Googleను చేరుకోవడం మాకు సాధ్యపడలేదు. వేరే నెట్‌వర్క్‌ను ఎంచుకోవడానికి ట్రై చేయండి లేదా మీ నెట్‌వర్క్ సెట్టింగ్‌లను లేదా ప్రాక్సీ సెట్టింగ్‌లను (మీరు ప్రాక్సీని ఉపయోగిస్తున్నట్లయితే) చెక్ చేయడానికి ట్రై చేయండి.</translation>
 <translation id="1832459821645506983">అవును, అంగీకరిస్తున్నాను</translation>
 <translation id="1832511806131704864">ఫోన్ మార్పు అప్‌డేట్ చేయబడింది</translation>
 <translation id="1832848789136765277">మీ సింక్ చేసిన డేటాను మీరు ఎల్లప్పుడూ యాక్సెస్ చేయగలరని నిర్ధారించుకోవడానికి, అది మీరేనని వెరిఫై చేయండి</translation>
@@ -1238,7 +1239,7 @@
 <translation id="2140788884185208305">బ్యాటరీ సామర్థ్యం</translation>
 <translation id="2142328300403846845">లింక్‌ను దీని తరపున తెరువు</translation>
 <translation id="2142582065325732898">ఇటీవలి Chrome ట్యాబ్‌లను చూడటానికి, <ph name="LINK1_BEGIN" />Chrome సింక్<ph name="LINK1_END" />ను ఆన్ చేయండి. <ph name="LINK2_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK2_END" /></translation>
-<translation id="2143765403545170146">ఫుల్-స్క్రీన్‌లో ఎల్లప్పుడూ సాధన పట్టీని చూపు</translation>
+<translation id="2143765403545170146">ఫుల్-స్క్రీన్‌లో ఎల్లప్పుడూ సాధన బార్‌ను చూపు</translation>
 <translation id="2143778271340628265">మాన్యువల్ ప్రాక్సీ కాన్ఫిగరేషన్</translation>
 <translation id="2143915448548023856">ప్రదర్శన సెట్టింగ్‌లు</translation>
 <translation id="2144536955299248197">సర్టిఫికెట్ వ్యూవర్: <ph name="CERTIFICATE_NAME" /></translation>
@@ -4107,7 +4108,7 @@
 <translation id="4878653975845355462">మీ నిర్వాహకుడి ద్వారా అనుకూల బ్యాక్‌గ్రౌండ్‌లు ఆపివేయబడ్డాయి</translation>
 <translation id="4878718769565915065">ఈ సెక్యూరిటీ కీకి వేలిముద్రను జోడంచడం విఫలమైంది</translation>
 <translation id="4879491255372875719">ఆటోమేటిక్ (డిఫాల్ట్)</translation>
-<translation id="4880827082731008257">శోధన చరిత్ర</translation>
+<translation id="4880827082731008257">హిస్టరీలో సెర్చ్ చేయండి</translation>
 <translation id="4881685975363383806">నాకు మళ్లీ గుర్తు చేయవద్దు</translation>
 <translation id="4881695831933465202">తెరువు</translation>
 <translation id="488211015466188466">సైట్‌ను ఫాలో చేయండి</translation>
@@ -4763,6 +4764,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> వీటిని చేయాలనుకుంటోంది</translation>
 <translation id="5534304873398226603">ఫోటో లేదా వీడియోను విస్మరించు</translation>
 <translation id="5537725057119320332">Cast</translation>
+<translation id="5539070192556911367">Googleను చేరుకోవడం సాధ్యం కాలేదు</translation>
 <translation id="5539221284352502426">మీరు నమోదు చేసిన పాస్‌వర్డ్‌ను సర్వర్ తిరస్కరించింది. సంభావ్య కారణాలు: పాస్‌వర్డ్ చాలా చిన్నదిగా ఉంది. పాస్‌వర్డ్ తప్పనిసరిగా సంఖ్యలు లేదా గుర్తులను కలిగి ఉండాలి. మునుపు ఉపయోగించిన పాస్‌వర్డ్‌లలో దేనినీ తిరిగి ఉపయోగించకూడదు.</translation>
 <translation id="5541694225089836610">మీ నిర్వాహకుల ద్వారా చర్య నిలిపివేయబడింది</translation>
 <translation id="5542132724887566711">ప్రొఫైల్</translation>
@@ -4826,6 +4828,7 @@
 <translation id="5585912436068747822">ఫార్మాటింగ్ విఫలమైంది</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">యాప్‌లను లోడ్ చేస్తోంది...</translation>
+<translation id="5590418976913374224">పరికరం ప్రారంభమయినప్పుడు సౌండ్ ప్లే చేయి</translation>
 <translation id="5592595402373377407">ఇంకా తగినంత డేటా అందుబాటులో లేదు.</translation>
 <translation id="5595307023264033512">సైట్‌లు ఉపయోగించిన మొత్తం స్టోరేజ్: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">అడ్రస్‌ను ఎడిట్ చేయండి</translation>
@@ -4835,7 +4838,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI పరికరాలకు కనెక్ట్ చేయడానికి అనుమతించబడలేదు</translation>
 <translation id="5602765853043467355">ఈ పరికరం నుండి బుక్‌మార్క్‌లు, చరిత్ర, పాస్‌వర్డ్‌లు వంటివాటిని తీసివేయండి</translation>
-<translation id="5605623530403479164">ఇతర సెర్చ్ ఇంజిన్‌లు</translation>
 <translation id="5605758115928394442">మీరేనని నిర్ధారించుకోవడానికి మీ ఫోన్‌కు ఒక నోటిఫికేషన్ పంపబడింది.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ఈ ఎక్స్‌టెన్షన్ బ్లాక్ చేయబడింది}other{ఈ ఎక్స్‌టెన్షన్‌లు బ్లాక్ చేయబడ్డాయి}}</translation>
 <translation id="560834977503641186">Wi-Fi సింక్, మరింత తెలుసుకోండి</translation>
@@ -5136,6 +5138,7 @@
 <translation id="5909379458939060601">ఈ ప్రొఫైల్‌ను, దానిలోని బ్రౌజింగ్ డేటాను తొలగించాలా?</translation>
 <translation id="5910363049092958439">చిత్రాన్ని ఇలా సే&amp;వ్ చేయి...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ఆఫ్‌లైన్‌లో ఉంది</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">షార్ట్‌కట్ వ్యూయర్</translation>
 <translation id="5914724413750400082">మధ్యగుణకము (<ph name="MODULUS_NUM_BITS" /> బిట్‌లు):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5923,7 +5926,7 @@
 <translation id="6674571176963658787">సింక్‌ను ప్రారంభించడానికి, రహస్య పదబంధాన్ని ఎంటర్ చేయండి</translation>
 <translation id="6675665718701918026">కర్సర్‌ను నియంత్రించే పరికరం కనెక్ట్ చేయబడింది</translation>
 <translation id="6676212663108450937">మీ వాయిస్‌ను గుర్తించేలా శిక్షణ ఇచ్చే సమయంలో హెడ్‌ఫోన్స్ ఉపయోగించండి</translation>
-<translation id="6678717876183468697">ప్రశ్న URL</translation>
+<translation id="6678717876183468697">క్వెరీ URL</translation>
 <translation id="6680442031740878064">అందుబాటులో ఉంది: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">రేట్</translation>
 <translation id="6681668084120808868">ఫోటోను తీయి</translation>
@@ -6379,6 +6382,7 @@
 <translation id="7102687220333134671">ఆటోమేటిక్‌ అప్‌డేట్‌లు ఆన్ చేయబడ్డాయి</translation>
 <translation id="7102832101143475489">రిక్వెస్ట్‌ సమయం ముగిసింది</translation>
 <translation id="710640343305609397">నెట్‌వర్క్ సెట్టింగ్‌లను తెరవండి</translation>
+<translation id="7107609441453408294">అన్ని స్పీకర్‌లలో ఒకే ఆడియోను ప్లే చేస్తుంది</translation>
 <translation id="7108338896283013870">దాచిపెట్టు</translation>
 <translation id="7108668606237948702">ఎంటర్</translation>
 <translation id="7108933416628942903">ఇప్పుడు లాక్ చేయి</translation>
@@ -6609,6 +6613,7 @@
 <translation id="7364745943115323529">ప్రసారం చేయి...</translation>
 <translation id="7364796246159120393">ఫైల్‌ను ఎంచుకోండి</translation>
 <translation id="7365076891350562061">మానిటర్ పరిమాణం</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> - పిన్ చేయబడింది</translation>
 <translation id="7366316827772164604">సమీపంలోని పరికరాల కోసం స్కాన్ చేస్తోంది…</translation>
 <translation id="7366415735885268578">సైట్‌ను జోడించండి</translation>
 <translation id="7366909168761621528">బ్రౌజింగ్ డేటా</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index a1e38377..c5dec69e 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -2494,7 +2494,7 @@
 <translation id="3348038390189153836">พบอุปกรณ์แบบถอดออกได้</translation>
 <translation id="3348131053948466246">มีการแนะนำอีโมจิ กดขึ้นหรือลงเพื่อไปยังอีโมจิที่ต้องการแล้วกด Enter เพื่อแทรก</translation>
 <translation id="3349933790966648062">หน่วยความจำที่ใช้</translation>
-<translation id="3353786022389205125">เปิด "แสดงหน้าจอล็อกเมื่อปลุกระบบให้ทำงานจากโหมดสลีป" แล้วลองอีกครั้ง</translation>
+<translation id="3353786022389205125">เปิด "แสดงหน้าจอล็อกเมื่อปลุกให้ทำงานจากโหมดสลีป" แล้วลองอีกครั้ง</translation>
 <translation id="3354972872297836698">จับคู่กับอุปกรณ์ <ph name="DEVICE_NAME" /> ไม่ได้ เลือกอุปกรณ์เพื่อลองอีกครั้ง</translation>
 <translation id="3355936511340229503">ข้อผิดพลาดในการเชื่อมต่อ</translation>
 <translation id="3356469410714175391">(บัตรเสมือนเปิดใช้งานอยู่)</translation>
@@ -4812,7 +4812,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">ไม่ได้รับอนุญาตให้เชื่อมต่ออุปกรณ์ MIDI</translation>
 <translation id="5602765853043467355">ล้างบุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และอื่นๆ จากอุปกรณ์นี้</translation>
-<translation id="5605623530403479164">เครื่องมือค้นหาอื่นๆ</translation>
 <translation id="5605758115928394442">เราส่งการแจ้งเตือนให้คุณทางโทรศัพท์แล้วเพื่อยืนยันตัวตน</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ส่วนขยายนี้ถูกบล็อก}other{ส่วนขยายเหล่านี้ถูกบล็อก}}</translation>
 <translation id="560834977503641186">การซิงค์ Wi-Fi ดูข้อมูลเพิ่มเติม</translation>
@@ -5109,6 +5108,7 @@
 <translation id="5909379458939060601">ลบโปรไฟล์นี้และข้อมูลการท่องเว็บใช่ไหม</translation>
 <translation id="5910363049092958439">&amp;บันทึกรูปภาพเป็น...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ออฟไลน์</translation>
+<translation id="5911030830365207728">Google แปลภาษา</translation>
 <translation id="5911533659001334206">การดูแป้นพิมพ์ลัด</translation>
 <translation id="5914724413750400082">โมดูลัส (<ph name="MODULUS_NUM_BITS" /> บิต):
   <ph name="MODULUS_HEX_DUMP" />
@@ -7940,6 +7940,7 @@
 <translation id="8666759526542103597">เกี่ยวกับการปรับโฆษณาตามโปรไฟล์ของผู้ใช้ด้วยข้อมูลจากเบราว์เซอร์</translation>
 <translation id="8667328578593601900"><ph name="FULLSCREEN_ORIGIN" /> แสดงแบบเต็มหน้าจออยู่และได้ปิดใช้งานเคอร์เซอร์เมาส์แล้ว</translation>
 <translation id="8667760277771450375">เรากำลังพัฒนาวิธีจำกัดการติดตามข้ามเว็บไซต์ ในขณะเดียวกันก็กำลังทำให้เว็บไซต์สามารถหยุดสแปมโฆษณาและการประพฤติมิชอบได้</translation>
+<translation id="8668378421690365723">อุปกรณ์อาจทำงานไม่ถูกต้องอีกต่อไป และอาจมีปัญหาด้านความปลอดภัยและประสิทธิภาพ</translation>
 <translation id="8669284339312441707">อบอุ่น</translation>
 <translation id="8670537393737592796">หากต้องการกลับมาที่นี่อย่างรวดเร็ว ให้ติดตั้ง <ph name="APP_NAME" /> โดยคลิกปุ่มติดตั้ง</translation>
 <translation id="867085395664725367">เกิดข้อผิดพลาดของเซิร์ฟเวอร์ชั่วคราว</translation>
@@ -8420,6 +8421,7 @@
 <translation id="9120693811286642342"><ph name="BEGIN_PARAGRAPH1" />ติดตั้ง <ph name="DEVICE_OS" /> ในดิสก์ภายในเพื่อให้ได้รับประสบการณ์การใช้งานที่ดีที่สุด คุณอาจติดตั้งภายหลังจากหน้าจอการเข้าสู่ระบบก็ได้<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />หากยังไม่พร้อมติดตั้ง คุณจะลองเรียกใช้งานจาก USB ดูก่อนก็ได้ วิธีนี้จะเก็บระบบปฏิบัติการและข้อมูลที่มีอยู่เอาไว้ แต่คุณอาจเห็นว่ามีขีดจำกัดของพื้นที่เก็บข้อมูลและประสิทธิภาพในการทำงาน<ph name="END_PARAGRAPH2" /></translation>
 <translation id="9121814364785106365">เปิดเป็นแท็บที่ปักหมุดไว้</translation>
+<translation id="9123287046453017203">อุปกรณ์ของคุณไม่ใช่เวอร์ชันล่าสุด</translation>
 <translation id="9124003689441359348">รหัสผ่านที่บันทึกไว้จะแสดงที่นี่</translation>
 <translation id="9126149354162942022">สีของเคอร์เซอร์</translation>
 <translation id="9128317794749765148">ตั้งค่าไม่สำเร็จ</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 86a8571d..42e6f41 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Mikrofonunuzu ve kameranızı kullanma</translation>
 <translation id="1005333234656240382">ADB hata ayıklama işlevi etkinleştirilsin mi?</translation>
 <translation id="1006873397406093306">Bu uzantı, sitelerdeki verilerinizi okuyabilir ve değiştirebilir. Uzantının hangi sitelere erişebileceğini kontrol edebilirsiniz.</translation>
+<translation id="1007057452468855774">Google Play Store'u aç</translation>
 <translation id="1008186147501209563">Yer işaretlerini dışa aktar</translation>
 <translation id="1008557486741366299">Şimdi Değil</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" /> Konumu</translation>
 <translation id="1009663062402466586">Oyun denetimleri artık kullanılabilir</translation>
 <translation id="1010498023906173788">Bu sekme bir seri bağlantı noktasına bağlıdır.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Sayfa Yanıt Vermiyor}other{Sayfalar Yanıt Vermiyor}}</translation>
+<translation id="1011003645819296594">Kayıtlı cihazlar</translation>
 <translation id="1011355516189274711">Metin okuma ses düzeyi</translation>
 <translation id="1012794136286421601">Google Dokümanlar, E-Tablolar, Slaytlar ve Çizimler dosyalarınız senkronize ediliyor. Bunlara çevrimiçi veya çevrimdışı olarak erişmek için Google Drive uygulamasını açın.</translation>
 <translation id="1012876632442809908">USB-C cihaz (ön bağlantı noktası)</translation>
@@ -491,6 +493,7 @@
 <translation id="1470350905258700113">Bu cihazı kullan</translation>
 <translation id="1470946456740188591">Metin imleciyle göz atmayı açmak veya kapatmak için Ctrl+Arama+7 kısayolunu kullanın</translation>
 <translation id="1472675084647422956">Daha fazla göster</translation>
+<translation id="1473223074251193484">Tethering Yapılandırmasını Ayarla</translation>
 <translation id="1474785664565228650">Mikrofon ayarında yapılan değişiklik, Parallels Desktop'ın yeniden başlatılmasını gerektirir. Devam etmek için Parallels Desktop'ı yeniden başlatın.</translation>
 <translation id="1474893630593443211">Gördüğünüz reklamlar üzerinde daha fazla kontrol</translation>
 <translation id="1475502736924165259">Dosyanızda diğer kategorilerin hiçbirine uymayan sertifikalar var</translation>
@@ -895,6 +898,7 @@
 <translation id="1829129547161959350">Penguen</translation>
 <translation id="1829192082282182671">U&amp;zaklaştır</translation>
 <translation id="1830550083491357902">Oturum açılmadı</translation>
+<translation id="1831848493690504725">Bağlı ağ üzerinden Google'a ulaşılamıyor. Farklı bir ağ seçmeyi veya ağ ayarlarınızı ya da proxy ayarlarınızı (proxy kullanıyorsanız) kontrol etmeyi deneyin.</translation>
 <translation id="1832459821645506983">Evet, kabul ediyorum</translation>
 <translation id="1832511806131704864">Telefon değişikliği güncellendi</translation>
 <translation id="1832848789136765277">Senkronize edilen verilerinize her zaman erişebileceğinizden emin olmak için kimliğinizi doğrulayın</translation>
@@ -1112,6 +1116,7 @@
 <translation id="2044014337866019681">Oturumun kilidini açmak için lütfen <ph name="ACCOUNT" /> hesabını doğruladığınızdan emin olun.</translation>
 <translation id="204497730941176055">Microsoft Sertifika Şablonu Adı</translation>
 <translation id="2045117674524495717">Klavye Kısayolu Yardımcısı</translation>
+<translation id="2045211794962848221">Bu mesajı bir daha görmeyeceksiniz</translation>
 <translation id="2045969484888636535">Çerezleri engellemeye devam et</translation>
 <translation id="204622017488417136">Cihazınız Chrome'un bundan önce yüklenmiş olan sürümüne geri dönecektir. Tüm kullanıcı hesapları ve yerel veriler silinecektir. Bu işlem geri alınamaz.</translation>
 <translation id="2046702855113914483">Japon eriştesi</translation>
@@ -2191,6 +2196,7 @@
 <translation id="3021065318976393105">Pil kullanılırken</translation>
 <translation id="3021066826692793094">Kelebek</translation>
 <translation id="3021678814754966447">Çerçeve Kaynağını &amp;Görüntüle</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> bu Chromebook'tan kaldırılacak ve <ph name="PRIMARY_EMAIL" /> hesabına kaydedilmeyecek.</translation>
 <translation id="3022978424994383087">Anlaşılmadı.</translation>
 <translation id="3023464535986383522">Seç ve dinle</translation>
 <translation id="3024374909719388945">24 saatlik biçimi kullan</translation>
@@ -3729,6 +3735,7 @@
 <translation id="4535127706710932914">Varsayılan Profil</translation>
 <translation id="4535767533210902251">Parmak izi sensörü, klavyenizdeki sağ üst tuştur. Herhangi bir parmağınızla bu tuşa hafifçe dokunun.</translation>
 <translation id="4536140153723794651">Her zaman çerez kullanabilen siteler</translation>
+<translation id="4536769240747010177">Tethering Özellikleri:</translation>
 <translation id="4538417792467843292">Kelime sil</translation>
 <translation id="4538792345715658285">Kurumsal politika tarafından yüklenmiş.</translation>
 <translation id="4541123282641193691">Hesabınız doğrulanamadı. Lütfen tekrar deneyin veya Chromebook'unuzu yeniden başlatın.</translation>
@@ -3756,6 +3763,7 @@
 <translation id="4561893854334016293">Yakın zamanda değiştirilmiş izin yok</translation>
 <translation id="4562155214028662640">Parmak İzi Ekle</translation>
 <translation id="4563210852471260509">Başlangıç giriş dili Çince</translation>
+<translation id="4563382028841851106">Hesaptan kaldır</translation>
 <translation id="4563880231729913339">3. parmak</translation>
 <translation id="4564245002465020751">Kurulumu telefonunuzda tamamlayın</translation>
 <translation id="4565377596337484307">Şifreyi gizle</translation>
@@ -3792,6 +3800,7 @@
 <translation id="4594577641390224176">Sistem bilgisi sayfasını mı arıyorsunuz? Şu adresi ziyaret edin:</translation>
 <translation id="4595560905247879544">Uygulamalar ve uzantılar sadece yönetici (<ph name="CUSTODIAN_NAME" />) tarafından değiştirilebilir.</translation>
 <translation id="4596295440756783523">Dosyada şu sunucuları tanımlayan sertifikalarınız var</translation>
+<translation id="4598345735110653698">Şifre anahtarlarını yönet</translation>
 <translation id="4598556348158889687">Depolama alanı yönetimi</translation>
 <translation id="4598776695426288251">Kablosuz bağlantı çeşitli cihazlar üzerinden kullanılabilir</translation>
 <translation id="4601426376352205922">Okunmadı Olarak İşaretle</translation>
@@ -4017,6 +4026,7 @@
 <translation id="4823894915586516138">Bu PIN veya şifre, telefonunuzdan eriştiğiniz bilgiler de dahil olmak üzere <ph name="DEVICE_TYPE" /> cihazındaki verilerinizi korur</translation>
 <translation id="4824037980212326045">Linux yedekleme ve geri yükleme</translation>
 <translation id="4824958205181053313">Senkronizasyon iptal edilsin mi?</translation>
+<translation id="4825532258163983651">Şifre anahtarı silinemiyor</translation>
 <translation id="4827675678516992122">Bağlanılamadı</translation>
 <translation id="4827784381479890589">Chrome tarayıcı için gelişmiş yazım denetimi (metin, yazım önerileri için Google'a gönderilir)</translation>
 <translation id="4827904420700932487">Bu resim için QR Kodu oluştur</translation>
@@ -4279,6 +4289,7 @@
 <translation id="5087249366037322692">Üçüncü tarafça eklendi</translation>
 <translation id="5087580092889165836">Kart ekle</translation>
 <translation id="5088534251099454936">PKCS #1 RSA Şifrelemeli SHA-512</translation>
+<translation id="5089763948477033443">Yan Panel Yeniden Boyutlandırma Tutamacı</translation>
 <translation id="5090637338841444533">Kameranızın konumunu izlemesine izin verilmeyen siteler</translation>
 <translation id="5093569275467863761">Gizli Geri/İleri Önbelleğe Alınmış Alt Çerçeve: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Bu uygulamayı kullanarak, desteklenen dosyaları Dosyalar uygulamasından veya diğer uygulamalardan açıp düzenleyebilirsiniz. Bu uygulamada varsayılan olarak hangi dosyaların açılacağını kontrol etmek için <ph name="BEGIN_LINK" />cihazınızda varsayılan uygulamaları nasıl ayarlayacağınızı öğrenin<ph name="END_LINK" />.</translation>
@@ -4444,6 +4455,7 @@
 <translation id="5258992782919386492">Bu cihaza yükle</translation>
 <translation id="5260334392110301220">Akıllı Tırnaklar</translation>
 <translation id="5260508466980570042">Maalesef, e-posta adresiniz veya şifreniz doğrulanamadı. Lütfen tekrar deneyin.</translation>
+<translation id="5260958083445173099">Web siteleri, mümkün olduğunda tercih ettiğiniz dillerde gösterilir</translation>
 <translation id="5261683757250193089">Web Mağazası'nda aç</translation>
 <translation id="5262178194499261222">Şifreyi kaldır</translation>
 <translation id="5262784498883614021">Ağa otomatik olarak bağlan</translation>
@@ -4484,6 +4496,7 @@
 <translation id="5294097441441645251">Küçük harf veya alt çizgi ile başlamalıdır</translation>
 <translation id="5294618183559481278"><ph name="DEVICE_TYPE" /> cihazınızda, önündeki kişileri algılamaya yarayan yerleşik bir sensör kullanılır. Tüm veriler hemen cihazınızda işlenir ve silinir. Sensör verileri hiçbir zaman Google'a gönderilmez. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Cihazınızı ekrana bakmadan kullanabilmek için sözlü geri bildirimleri dinleyin. Braille geri bildirimi, bağlı bir cihazla kullanılabilir.</translation>
+<translation id="5297005732522718715">Tethering Yapılandırmasını Yenile</translation>
 <translation id="5297082477358294722">Şifre kaydedildi. Kayıtlı şifrelerinizi <ph name="SAVED_PASSWORDS_STORE" /> üzerinde görüntüleyebilir ve yönetebilirsiniz.</translation>
 <translation id="5297946558563358707">Başka birisi ekranınıza baktığında sağ altta Gizlilik göz simgesi gösterilir</translation>
 <translation id="5298219193514155779">Temayı oluşturan:</translation>
@@ -4654,6 +4667,7 @@
 <translation id="5466374726908360271">Ya&amp;pıştır ve “<ph name="SEARCH_TERMS" />” sorgusunu ara</translation>
 <translation id="5467207440419968613">Engellendi: <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Dosya paylaşımı aranıyor</translation>
+<translation id="5468330507528805311">Tethering Durumu:</translation>
 <translation id="5468881191994555667">Dosya seç</translation>
 <translation id="5469852975082458401">Sayfalarda metin imleciyle gezinebilirsiniz. Kapatmak için F7'ye basın.</translation>
 <translation id="5470735824776589490">Cihazınızın Powerwash ile sıfırlanabilmesi için yeniden başlatılması gerekir. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation>
@@ -4732,6 +4746,7 @@
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> şunu yapmak istiyor:</translation>
 <translation id="5534304873398226603">Fotoğraf veya videoyu sil</translation>
 <translation id="5537725057119320332">Yayınla</translation>
+<translation id="5539070192556911367">Google'a erişilemiyor</translation>
 <translation id="5539221284352502426">Girdiğiniz şifre, sunucu tarafından reddedildi. Bu durumun olası nedenleri şunlardır: Şifre çok kısadır. Şifre, sayılar veya semboller içermelidir. Şifre, önceki şifrelerden farklı olmalıdır.</translation>
 <translation id="5541694225089836610">İşlem, yöneticiniz tarafından devre dışı bırakıldı</translation>
 <translation id="5542132724887566711">Profil</translation>
@@ -4795,6 +4810,7 @@
 <translation id="5585912436068747822">Biçimlendirme başarısız oldu</translation>
 <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
 <translation id="558918721941304263">Uygulamalar yükleniyor...</translation>
+<translation id="5590418976913374224">Cihaz başlatılırken ses çal</translation>
 <translation id="5592595402373377407">Henüz yeterli veri yok.</translation>
 <translation id="5595307023264033512">Siteler tarafından kullanılan toplam depolama alanı: <ph name="TOTAL_USAGE" /></translation>
 <translation id="5595485650161345191">Adresi düzenle</translation>
@@ -4804,7 +4820,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI cihazlarına bağlanmasına izin verilmeyen siteler</translation>
 <translation id="5602765853043467355">Yer işaretleri, geçmiş, şifreler ve diğer bilgileri bu cihazdan temizle</translation>
-<translation id="5605623530403479164">Diğer arama motorları</translation>
 <translation id="5605758115928394442">Telefonunuza kimliğinizi doğrulamak için bir bildirim gönderildi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Bu uzantı engellendi}other{Bu uzantılar engellendi}}</translation>
 <translation id="560834977503641186">Wi-Fi Senkronizasyonu, Daha Fazla Bilgi</translation>
@@ -4929,6 +4944,7 @@
 <translation id="5734362860645681824">İletişim</translation>
 <translation id="5734697361979786483">Dosya paylaşımı ekle</translation>
 <translation id="5736796278325406685">Lütfen geçerli bir kullanıcı adı girin</translation>
+<translation id="5738093759615225354">Bu şifre anahtarı, bilgisayarınızda oturum açabilmeniz için gereklidir</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> kullanıcısının okul hesabı eklemesine yardımcı olmak için oturum açın</translation>
 <translation id="5739235828260127894">Doğrulama bekleniyor. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Çok büyük</translation>
@@ -5090,6 +5106,7 @@
 <translation id="589541317545606110">Sayfada <ph name="VISUAL_SEARCH_PROVIDER" /> ile Arama Yap</translation>
 <translation id="5896436821193322561">İzin Verme</translation>
 <translation id="5900186025777217044">Smart Lock değişti</translation>
+<translation id="5900243355162006650">Tethering Yapılandırması:</translation>
 <translation id="5900302528761731119">Google Profil fotoğrafı</translation>
 <translation id="590036993063074298">Yansıtma Kalitesi Ayrıntıları</translation>
 <translation id="5901069264981746702">Parmak izi verileriniz güvenli şekilde depolanır ve her zaman <ph name="DEVICE_TYPE" /> cihazınızda tutulur. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation>
@@ -5104,6 +5121,7 @@
 <translation id="5909379458939060601">Bu profil ve tarama verileri silinsin mi?</translation>
 <translation id="5910363049092958439">Resmi Farklı Ka&amp;ydet...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> çevrimdışı</translation>
+<translation id="5911030830365207728">Google Çeviri</translation>
 <translation id="5911533659001334206">Kısayol görüntüleyici</translation>
 <translation id="5914724413750400082">Katsayı (<ph name="MODULUS_NUM_BITS" /> bit):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5393,6 +5411,7 @@
 <translation id="6196640612572343990">Üçüncü taraf çerezlerini engelle</translation>
 <translation id="6196854373336333322">"<ph name="EXTENSION_NAME" />" uzantısı proxy ayarlarınızın denetimini ele geçirdi. Bu, uzantının çevrimiçinde yaptıklarınızı değiştirebileceği, kesebileceği veya dinleyebileceği anlamına gelir. Bu değişikliğin neden gerçekleştiğinden emin değilseniz muhtemelen bu değişikliği yapmayı istememişsinizdir.</translation>
 <translation id="6197128521826316819">Bu Sayfa için QR Kodu oluştur</translation>
+<translation id="6197223946499512637">Bu şifre anahtarları bu bilgisayarda Windows Hello'da depolanır ve Google Hesabınıza kaydedilmez.</translation>
 <translation id="6198252989419008588">PIN'i değiştir</translation>
 <translation id="6200047250927636406">Dosyayı sil</translation>
 <translation id="6200151268994853226">Uzantıyı Yönet</translation>
@@ -5690,6 +5709,7 @@
 <translation id="6482559668224714696">Tam ekran büyüteci</translation>
 <translation id="6483485061007832714">İndirilen dosyayı aç</translation>
 <translation id="6483805311199035658"><ph name="FILE" /> açılıyor...</translation>
+<translation id="6486301003991593638">Şifre anahtarlarını yönetmek için Windows'un daha yeni bir sürümünü kullanın</translation>
 <translation id="6488384360522318064">Dil seçin</translation>
 <translation id="648927581764831596">Hiçbiri mevcut değil</translation>
 <translation id="6490471652906364588">USB-C cihaz (sağ bağlantı noktası)</translation>
@@ -6173,6 +6193,10 @@
 <translation id="6943939122536910181"><ph name="DEVICE" /> adlı cihazın bağlantısı kesildi</translation>
 <translation id="6945221475159498467">Seç</translation>
 <translation id="694592694773692225">Yönlendirme bu sayfada engellendi.</translation>
+<translation id="6947015141909171112">Yemek tarifleriyle ilgili en son arama etkinliğinize göre belirlenen yemek tariflerini görüyorsunuz.
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        Ayarları kart menüsünden yönetebilir veya Chrome'u Özelleştir bölümünden daha fazla seçeneğe erişebilirsiniz.</translation>
 <translation id="6949434160682548041">Şifre (isteğe bağlı)</translation>
 <translation id="6950627417367801484">Uygulamaları geri yükle</translation>
 <translation id="6952242901357037157"><ph name="BEGIN_LINK" />Google Hesabınızdaki<ph name="END_LINK" /> şifreleri burada da gösterebilirsiniz</translation>
@@ -6272,6 +6296,7 @@
 <translation id="7029307918966275733">Crostini yüklü değil. Kredileri görüntülemek için lütfen Crostini yükleyin.</translation>
 <translation id="7029809446516969842">Şifreler</translation>
 <translation id="7030304022046916278">URL'leri kontrol etmek için Güvenli Tarama'ya gönderir</translation>
+<translation id="7030695672997239647">Bir sekmeyi sağ tıklayıp "Sekmeyi Gruba Ekle"yi ve ardından "Yeni Grup"u seçin</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - Seri bağlantı noktası bağlandı</translation>
 <translation id="7033616203784997570">Yapacağınız giriş en fazla 62 karakter olabilir</translation>
 <translation id="7034692021407794547">Faturalandırma Yönetimi ayrıcalıklarına sahip yönetici, önce Yönetici konsolunun Google Meet Hardware bölümünde Google Meet Hardware Hizmet Şartları'nı kabul etmelidir.</translation>
@@ -6340,6 +6365,7 @@
 <translation id="7102687220333134671">Otomatik güncellemeler açık</translation>
 <translation id="7102832101143475489">İstek zaman aşımına uğradı</translation>
 <translation id="710640343305609397">Ağ ayarlarını aç</translation>
+<translation id="7107609441453408294">Tüm hoparlörlerde aynı sesi çal</translation>
 <translation id="7108338896283013870">Gizle</translation>
 <translation id="7108668606237948702">enter</translation>
 <translation id="7108933416628942903">Şimdi kilitle</translation>
@@ -6570,6 +6596,7 @@
 <translation id="7364745943115323529">Yayınla...</translation>
 <translation id="7364796246159120393">Dosya Seç</translation>
 <translation id="7365076891350562061">Monitör boyutu</translation>
+<translation id="7365995455115045224"><ph name="WINDOW_TITLE" /> - Sabitlendi</translation>
 <translation id="7366316827772164604">Yakındaki cihazlar taranıyor...</translation>
 <translation id="7366415735885268578">Site ekle</translation>
 <translation id="7366909168761621528">Göz atma verileri</translation>
@@ -6966,6 +6993,7 @@
 <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />" ile eşleniyor...</translation>
 <translation id="7737846262459425222">Bu tercihinizi istediğiniz zaman Ayarlar &gt; Google Asistan &gt; Ekran bağlamı'ndan değiştirebilirsiniz.</translation>
 <translation id="7737948071472253612">Kameranızı kullanmasına izin verilmeyen siteler</translation>
+<translation id="77381465218432215">Aksan işaretlerini ve özel karakterleri göster</translation>
 <translation id="7740996059027112821">Standart</translation>
 <translation id="7741307896921365578">Tarayıcınızda Okuma Listenize ve Yer İşaretlerinize erişebileceğiniz faydalı ve kalıcı bir yan paneli etkinleştirir.</translation>
 <translation id="7742558784808143689"><ph name="SITE_NAME" /> sitesi, buna bağlı tüm siteler ve yüklü uygulamalarındaki site verileri ile izinler temizlensin mi?</translation>
@@ -7370,6 +7398,7 @@
 <translation id="8101987792947961127">Gelecek yeniden başlatmada Powerwash gerekli</translation>
 <translation id="81020759409809034">Yerel Konum</translation>
 <translation id="8102139037507939978">Kimliği Tanımlayabilecek Bilgiler'i system_logs.txt dosyasından çıkar.</translation>
+<translation id="810362914482827094">Şifre anahtarı arama</translation>
 <translation id="8104088837833760645">eSIM profili indir</translation>
 <translation id="8105368624971345109">Kapat</translation>
 <translation id="8107015733319732394">Google Play Store <ph name="DEVICE_TYPE" /> cihazınıza yükleniyor. Bu işlem birkaç dakika sürebilir.</translation>
@@ -7755,6 +7784,7 @@
 <translation id="8486666913807228950">Neden: "Şurada açmaya zorlayın" listesinde <ph name="REVERT_RULE" /> ters kuralı bulundu.</translation>
 <translation id="848666842773560761">Bir uygulama kameraya erişmeye çalışıyor. Erişime izin vermek için kamera gizliliğini kapatın.</translation>
 <translation id="8487678622945914333">Yakınlaştır</translation>
+<translation id="8487699605742506766">Hotspot</translation>
 <translation id="8489156414266187072">Kişisel öneriler yalnızca hesabınızda gösterilir</translation>
 <translation id="8490896350101740396">Takip eden kiosk uygulamaları "<ph name="UPDATED_APPS" />" güncellendi. Lütfen güncelleme işlemini tamamlamak için cihazınızı yeniden başlatın.</translation>
 <translation id="8492685019009920170">Parmağınızla parmak izi sensörüne dokunun. Güvenli bir şekilde depolanan parmak izi verileriniz hiçbir zaman <ph name="DEVICE_TYPE" /> cihazınızdan dışarı çıkmaz.</translation>
@@ -7816,6 +7846,7 @@
 <translation id="8557022314818157177">Parmak iziniz alınana kadar güvenlik anahtarınıza dokunmaya devam edin</translation>
 <translation id="8557180006508471423">Mac'inizdeki Konum Hizmetlerinde "Google Chrome"u açın</translation>
 <translation id="8557856025359704738">Sonraki indirme işlemi <ph name="NEXT_DATE_DOWNLOAD" /> tarihinde gerçekleşecek.</translation>
+<translation id="8559858985063901027">Şifre anahtarları</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Tümünü &amp;Yeni Pencerede Aç}=1{&amp;Yeni Pencerede Aç}other{Tümünü ({COUNT}) &amp;Yeni Pencerede Aç}}</translation>
 <translation id="8561206103590473338">Fil</translation>
 <translation id="8561565784790166472">Dikkatli bir şekilde ilerleyin</translation>
@@ -7942,6 +7973,7 @@
 <translation id="8677212948402625567">Tümünü daralt...</translation>
 <translation id="867767487203716855">Sonraki güncelleme</translation>
 <translation id="8677859815076891398">Albüm yok. <ph name="LINK_BEGIN" />Google Fotoğraflar<ph name="LINK_END" />'da albüm oluşturun.</translation>
+<translation id="8678378565142776698">Yeniden başlat ve otomatik güncellemeleri al</translation>
 <translation id="8678538439778360739">Veriler, <ph name="TIME" /> itibarıyla senkronizasyon parolanızla şifrelendi. Google Pay'deki adresler ve ödeme yöntemleri bu kapsamda değildir.</translation>
 <translation id="8678582529642151449">Sekmeler daralmaz</translation>
 <translation id="8678933587484842200">Bu uygulamanın nasıl başlatılmasını istersiniz?</translation>
@@ -8188,6 +8220,7 @@
 <translation id="8910987510378294980">Cihaz listesini gizle</translation>
 <translation id="8912362522468806198">Google Hesabı</translation>
 <translation id="8912810933860534797">Otomatik taramayı etkinleştir</translation>
+<translation id="8915307125957890427">Bir sekmeyi sağ tıklayıp "Sekmeyi gruba ekle"yi ve ardından "Yeni grup"u seçin</translation>
 <translation id="8915370057835397490">Öneriler yükleniyor</translation>
 <translation id="8916476537757519021">Gizli Alt Çerçeve: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" /> adlı kişinin <ph name="DEVICE_TYPE" /> cihazı</translation>
@@ -8248,6 +8281,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" ve 1 diğer sekme}other{"<ph name="TAB_TITLE" />" ve # diğer sekme}}</translation>
 <translation id="8977811652087512276">Yanlış şifre veya bozuk dosya</translation>
 <translation id="8978154919215542464">Açık - her şeyi senkronize et</translation>
+<translation id="8978670037548431647">Tethering Özelliklerini Yenile</translation>
 <translation id="897939795688207351"><ph name="ORIGIN" /> üzerinde</translation>
 <translation id="8980345560318123814">Geri bildirim raporları</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Kilitlendi</translation>
@@ -8261,6 +8295,7 @@
 <translation id="8986362086234534611">Unut</translation>
 <translation id="8986494364107987395">Kullanım istatistiklerini ve çökme raporlarını otomatik olarak Google'a gönder</translation>
 <translation id="8987927404178983737">Ay</translation>
+<translation id="8989359959810288806">Tethering Durumunu Yenile</translation>
 <translation id="8991520179165052608">Site, mikrofonunuzu kullanabilir</translation>
 <translation id="899384117894244799">Kısıtlanmış kullanıcıyı kaldır</translation>
 <translation id="899403249577094719">Netscape Sertifikası Temel URL'si</translation>
@@ -8512,6 +8547,7 @@
 <translation id="935854577147268200">Smart Lock telefonu değişti. Smart Lock'u güncellemek için şifrenizi girin. Böylece, bir dahaki sefere telefonunuzu kullanarak <ph name="DEVICE_TYPE" /> cihazınızın kilidini açabilirsiniz. Ayarlar'dan Smart Lock'u kapatabilirsiniz.</translation>
 <translation id="936646668635477464">Kamera ve mikrofon</translation>
 <translation id="936801553271523408">Sistem teşhis verileri</translation>
+<translation id="937053962468712792"><ph name="DEVICE" />, <ph name="PRIMARY_EMAIL" /> hesabından kaldırılsın mı?</translation>
 <translation id="93766956588638423">Uzantıyı onar</translation>
 <translation id="938568644810664664">"Ok Google, bu hangi şarkı?" veya "Ok Google, ekranımda ne var?" diye sormayı deneyin.</translation>
 <translation id="938623846785894166">Yaygın olmayan dosya</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 3a7ed436..b3a0c784 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -4831,7 +4831,6 @@
 <translation id="5601503069213153581">PIN-код</translation>
 <translation id="5601823921345337195">Заборонено підключатися до пристроїв MIDI</translation>
 <translation id="5602765853043467355">Видалити закладки, історію, паролі тощо з цього пристрою</translation>
-<translation id="5605623530403479164">Інші пошукові системи</translation>
 <translation id="5605758115928394442">Ми надіслали сповіщення на ваш телефон, щоб підтвердити вашу особу.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Це розширення заблоковано}one{Ці розширення заблоковано}few{Ці розширення заблоковано}many{Ці розширення заблоковано}other{Ці розширення заблоковано}}</translation>
 <translation id="560834977503641186">Докладніше про синхронізацію Wi-Fi</translation>
@@ -5128,6 +5127,7 @@
 <translation id="5909379458939060601">Видалити цей профіль і дані веб-перегляду?</translation>
 <translation id="5910363049092958439">Збер&amp;егти зображення як...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> у режимі офлайн</translation>
+<translation id="5911030830365207728">Google Перекладач</translation>
 <translation id="5911533659001334206">Засіб перегляду комбінацій клавіш</translation>
 <translation id="5914724413750400082">Модуль (<ph name="MODULUS_NUM_BITS" /> біт.):
   <ph name="MODULUS_HEX_DUMP" />
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 16dc109..7618e11b 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">اپنا مائیکروفون اور کیمرا استعمال کریں</translation>
 <translation id="1005333234656240382">‏ADB ڈیبگنگ فعال کریں؟</translation>
 <translation id="1006873397406093306">یہ ایکسٹینشن سائٹس پر آپ کا ڈیٹا پڑھ اور اسے تبدیل کر سکتی ہے۔ آپ کنٹرول کر سکتے ہیں کہ ایکسٹینشن کن سائٹس تک رسائی حاصل کر سکتی ہے۔</translation>
+<translation id="1007057452468855774">‏Google Play اسٹور آن کریں</translation>
 <translation id="1008186147501209563">بُک مارکس برآمد کریں</translation>
 <translation id="1008557486741366299">ابھی نہیں</translation>
 <translation id="1009476156254802388"><ph name="WEB_DRIVE" /> مقام</translation>
 <translation id="1009663062402466586">گیم کنٹرولز اب دستیاب ہے</translation>
 <translation id="1010498023906173788">یہ ٹیب سیریل پورٹ سے منسلک ہے۔</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{صفحہ غیر اثرپذیر ہے}other{صفحات غیر اثرپذیر ہیں}}</translation>
+<translation id="1011003645819296594">محفوظ کردہ آلات</translation>
 <translation id="1011355516189274711">ٹیکسٹ ٹو اسپیچ کا والیوم</translation>
 <translation id="1012794136286421601">‏آپ کی Docs, Sheets, Slides اور Drawings فائلوں کی مطابقت پذیری کی جا رہی ہے۔ آن لائن یا آف لائن ان تک رسائی کیلئے Google Drive ایپ کھولیں۔</translation>
 <translation id="1012876632442809908">‏USB-C آلہ (سانے کا پورٹ)</translation>
@@ -491,6 +493,7 @@
 <translation id="1470350905258700113">یہ آلہ استعمال کریں</translation>
 <translation id="1470946456740188591">‏کیرٹ براؤزنگ کو آن یا آف کرنے کے لیے Ctrl+Search+7 شارٹ کٹ کا استعمال کریں</translation>
 <translation id="1472675084647422956">مزید دکھائیں</translation>
+<translation id="1473223074251193484">ٹیدرنگ کنفیگریشن سیٹ کریں</translation>
 <translation id="1474785664565228650">‏مائیکروفون کی ترتیب میں تبدیلی کے لیے، Parallels ڈیسک ٹاپ کو بند کر کے دوبارہ چلانے کی ضرورت ہے۔ آگے بڑھنے کے لیے Parallels ڈیسک ٹاپ کو بند کر کے دوبارہ چلائیں۔</translation>
 <translation id="1474893630593443211">آپ کے دیکھے جانے والے اشتہارات پر مزید کنٹرول</translation>
 <translation id="1475502736924165259">آپ کے پاس فائل پر ایسے سرٹیفیکیٹس ہیں جو کسی دوسرے زمرے میں فٹ نہیں ہوتے</translation>
@@ -1113,6 +1116,7 @@
 <translation id="2044014337866019681">براہ کرم یقینی بنائیں کہ سیشن کو غیر مقفل کرنے کیلئے آپ <ph name="ACCOUNT" /> کی توثیق کر رہے ہیں۔</translation>
 <translation id="204497730941176055">‏Microsoft سرٹیفکیٹ تمثیل کا نام</translation>
 <translation id="2045117674524495717">کی بورڈ شارٹ کٹ کا مددگار</translation>
+<translation id="2045211794962848221">آپ کو یہ مخصوص پیغام دوبارہ نظر نہیں آئے گا</translation>
 <translation id="2045969484888636535">کوکیز کو مسدود کرنا جاری رکھیں</translation>
 <translation id="204622017488417136">‏آپ کا آلہ Chrome کے پچھلے انسٹال کردہ ورژن پر لوٹا دیا جائے گا۔ سبھی صارفین کے اکاؤنٹس اور مقامی ڈیٹا کو ہٹا دیا جائے گا۔ اسے کالعدم نہیں کیا جا سکتا ہے۔</translation>
 <translation id="2046702855113914483">رامین</translation>
@@ -3800,6 +3804,7 @@
 <translation id="4594577641390224176">سسٹم کے تعارف کا صفحہ تلاش کر رہے ہیں؟ ملاحظہ کریں</translation>
 <translation id="4595560905247879544">ایپس اور ایکسٹینشنز میں صرف مینیجر (<ph name="CUSTODIAN_NAME" />) ترمیم کر سکتا ہے۔</translation>
 <translation id="4596295440756783523">آپ کے پاس فائل پر ان سرورز کی شناخت کرنے والے سرٹیفیکیٹس ہیں</translation>
+<translation id="4598345735110653698">پاس کیز کا نظم کریں</translation>
 <translation id="4598556348158889687">اسٹوریج کا نظم</translation>
 <translation id="4598776695426288251">‏متعدد آلات کے ذریعے Wi-Fi دستیاب ہے</translation>
 <translation id="4601426376352205922">بغیر پڑھا ہوا کے بطور نشان زد کریں</translation>
@@ -4025,6 +4030,7 @@
 <translation id="4823894915586516138">‏یہ PIN یا پاس ورڈ اس <ph name="DEVICE_TYPE" /> پر آپ کے ڈیٹا کی حفاظت کرتا ہے، بشمول کسی بھی معلومات کے جس تک آپ اپنے فون سے رسائی حاصل کرتے ہیں</translation>
 <translation id="4824037980212326045">‏Linux کا بیک اپ اور بحالی</translation>
 <translation id="4824958205181053313">مطابقت پذیری منسوخ کریں؟</translation>
+<translation id="4825532258163983651">پاس کی کو حذف نہیں کیا جا سکتا</translation>
 <translation id="4827675678516992122">منسلک نہیں ہو سکا</translation>
 <translation id="4827784381479890589">‏Chrome براؤزر میں بہتر کردہ املا کی جانچ (املا کی تجاویز کے لیے ٹیکسٹ Google کو بھیجا جاتا ہے)</translation>
 <translation id="4827904420700932487">‏اس تصویر کیلئے QR کوڈ تخلیق کریں</translation>
@@ -4287,6 +4293,7 @@
 <translation id="5087249366037322692">ایک فریق ثالث نے شامل کر دیا</translation>
 <translation id="5087580092889165836">کارڈ شامل کریں</translation>
 <translation id="5088534251099454936">‏PKCS #1 SHA-512 مع RSA مرموز کاری</translation>
+<translation id="5089763948477033443">سائیڈ پینل کا سائز تبدیل کرنے کا ہینڈل</translation>
 <translation id="5090637338841444533">آپ کے کیمرا کی پوزیشن کو ٹریک کرنے کی اجازت نہیں ہے</translation>
 <translation id="5093569275467863761">بیک/فارورڈ کیش کردہ پوشیدگی کا سب فریم: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">آپ اس ایپ کے ساتھ فائلز کی ایپس یا دیگر ایپس سے تعاون یافتہ فائلز کو کھول اور ان میں ترمیم کر سکتے ہیں۔ جو فائلز بطور ڈیفالٹ اس ایپ کو کھولتی ہیں انہیں کنٹرول کرنے کے لیے، <ph name="BEGIN_LINK" />جانیں کہ اپنے آلے پر ڈیفالٹ ایپس کیسے سیٹ کریں<ph name="END_LINK" />۔</translation>
@@ -4452,6 +4459,7 @@
 <translation id="5258992782919386492">اس آلہ پر انسٹال کریں</translation>
 <translation id="5260334392110301220">اسمارٹ علامات اقتباس</translation>
 <translation id="5260508466980570042">معذرت، آپ کے ای میل یا پاس ورڈ کی توثیق نہیں کی جا سکی۔ براہ کرم بعد میں کوشش کریں۔</translation>
+<translation id="5260958083445173099">ممکن ہونے پر ویب سائٹس آپ کی ترجیحی زبانوں میں مواد دکھائیں گی</translation>
 <translation id="5261683757250193089">ویب اسٹور میں کھولیں</translation>
 <translation id="5262178194499261222">پاس ورڈ ہٹائیں</translation>
 <translation id="5262784498883614021">خودکار طور پر نیٹ ورک سے منسلک ہوں</translation>
@@ -4492,6 +4500,7 @@
 <translation id="5294097441441645251">چھوٹے حرف یا انڈر سکور کے ساتھ شروع کرنا ضروری ہے</translation>
 <translation id="5294618183559481278">‏آپ کے آلے کے سامنے موجود لوگوں کا پتہ لگانے کے لیے آپ کا <ph name="DEVICE_TYPE" /> پہلے سے موجود سینسر کا استعمال کرتا ہے۔ آپ کے آلے پر تمام ڈیٹا پر فوری طور پر کاروائی کی جاتی ہے اور پھر حذف کر دی جاتی ہے۔ سینسر ڈیٹا Google کو کبھی بھی نہیں بھیجا جاتا ہے۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">صوتی تاثرات سنیں تاکہ آپ اسکرین پر دیکھے بغیر اپنا آلہ استعمال کر سکیں۔ بریل تاثرات منسلک آلہ کے ساتھ دستیاب ہے۔</translation>
+<translation id="5297005732522718715">ٹیدرنگ کنفیگریشن کو ریفریش کریں</translation>
 <translation id="5297082477358294722">پاس ورڈز محفوظ ہیں۔ اپنے <ph name="SAVED_PASSWORDS_STORE" /> میں محفوظ کردہ پاس ورڈز دیکھیں اور ان کا نظم کریں۔</translation>
 <translation id="5297946558563358707">جب کوئی آپ کی اسکرین پر دیکھتا ہے تو آپ کی اسکرین کے نیچے دائیں جانب پر رازداری کی آنکھ والا آئیکن دکھائی دیتا ہے</translation>
 <translation id="5298219193514155779">تھیم بنائی گئی بذریعہ</translation>
@@ -4661,11 +4670,13 @@
 <translation id="5466374726908360271">پیسٹ کریں اور “<ph name="SEARCH_TERMS" />” تلاش کریں</translation>
 <translation id="5467207440419968613"><ph name="PERMISSION_1" />، <ph name="PERMISSION_2" /> کو مسدود کر دیا گیا</translation>
 <translation id="5468173180030470402">فائل کے اشتراکات تلاش کر رہے ہیں</translation>
+<translation id="5468330507528805311">ٹیدرنگ کی صورتحال:</translation>
 <translation id="5468881191994555667">فائل منتخب کریں</translation>
 <translation id="5469852975082458401">‏آپ اپنے صفحات کو ٹیکسٹ کرسر سے نیویگیٹ کر سکتے ہیں۔ آف کرنے کے لیے F7 دبائیں۔</translation>
 <translation id="5470735824776589490">‏Powerwash کے ساتھ آپ کا آلہ دوبارہ ترتیب دینے سے پہلے ایک ری اسٹارٹ درکار ہے۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">آداب! میں آپ کی ٹیکسٹ ٹو اسپیچ آواز ہوں۔</translation>
 <translation id="5472627187093107397">اس سائٹ کے لیے پاس ورڈز محفوظ کریں</translation>
+<translation id="5473062644742711742">‏Chrome ویب اسٹور میں مزید ایکسیسبیلٹی ٹولز تلاش کریں</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">‏جاری رکھ کر، آپ اتفاق کرتے ہیں کہ یہ آلہ خودکار طور پر Google، آپ کے بچے کے کیریئر اور اس آلہ کے مینوفیکچرر سے، ممکنہ طور پر سیلولر ڈیٹا استعمال کرتے ہوئے اپ ڈیٹس اور ایپس بھی ڈاؤن لوڈ اور انسٹال کر سکتا ہے۔ ان میں سے کچھ ایپس درون ایپ خریداریاں بھی پیش کر سکتی ہیں۔</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{‏PIN میں کم از کم ایک حرف ہونا چاہیے}other{‏PIN میں کم از کم # حروف ہونا چاہیے}}</translation>
@@ -4813,7 +4824,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">‏MIDI آلات سے منسلک ہونے کی اجازت نہیں ہے</translation>
 <translation id="5602765853043467355">بُک مارکس، سرگزشت، پاس ورڈز وغیرہ اس آلہ سے صاف کريں</translation>
-<translation id="5605623530403479164">دیگر سرچ انجنز</translation>
 <translation id="5605758115928394442">اس بات کی تصدیق کرنے کیلئے کہ یہ آپ ہی ہیں، آپ کے فون پر ایک اطلاع بھیجی گئی۔</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{یہ ایکسٹینشن مسدود ہے}other{یہ ایکسٹینشنز مسدود ہیں}}</translation>
 <translation id="560834977503641186">‏Wi-Fi سِنک، مزید جانیں</translation>
@@ -4937,6 +4947,7 @@
 <translation id="5734362860645681824">مواصلات</translation>
 <translation id="5734697361979786483">فائل کا اشتراک شامل کریں</translation>
 <translation id="5736796278325406685">براہ کرم ایک درست صارف نام درج کریں</translation>
+<translation id="5738093759615225354">آپ کو اپنے کمپیوٹر میں سائن ان کرنے کے لیے اس پاس کی ضرورت ہے</translation>
 <translation id="5739017626473506901">اسکول کا اکاؤنٹ شامل کرنے میں <ph name="USER_NAME" /> کی مدد کرنے کیلئے سائن ان کریں</translation>
 <translation id="5739235828260127894">توثیق کا انتظار ہے۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">بہت بڑا</translation>
@@ -5098,6 +5109,7 @@
 <translation id="589541317545606110"><ph name="VISUAL_SEARCH_PROVIDER" /> کی مدد سے صفحہ تلاش کریں</translation>
 <translation id="5896436821193322561">اجازت نہ دیں</translation>
 <translation id="5900186025777217044">‏Smart Lock تبدیل ہو گیا ہے</translation>
+<translation id="5900243355162006650">ٹیدرنگ کنفیگریشن:</translation>
 <translation id="5900302528761731119">‏Google پروفائل تصویر</translation>
 <translation id="590036993063074298">معکوس بندی کے معیار کی تفصیلات</translation>
 <translation id="5901069264981746702">آپ کے فنگر پرنٹ ڈیٹا کو محفوظ طریقے سے اسٹور کیا جاتا ہے اور یہ کبھی بھی آپ کے <ph name="DEVICE_TYPE" /> سے باہر نہیں جاتا۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation>
@@ -5112,6 +5124,7 @@
 <translation id="5909379458939060601">اس پروفائل اور براؤزنگ ڈیٹا کو حذف کریں؟</translation>
 <translation id="5910363049092958439">تصویر مح&amp;فوظ کریں بطور…</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> آف لائن ہے</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">شارٹ کٹ ناظر</translation>
 <translation id="5914724413750400082">ماڈیولس (<ph name="MODULUS_NUM_BITS" /> بٹس):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5401,6 +5414,7 @@
 <translation id="6196640612572343990">فریق ثالث کوکیز کو مسدود کریں</translation>
 <translation id="6196854373336333322">ایکسٹینشن "<ph name="EXTENSION_NAME" />" نے آپ کی پراکسی ترتیبات کو کنٹرول میں لے لیا ہے، جس کا مطلب ہے کہ آپ آن لائن جو بھی کرتے ہیں وہ اسے تبدیل کر سکتی، بریک کر سکتی یا اس کی جاسوسی کر سکتی ہے۔ اگر آپ کو اس تبدیلی کی وجہ ٹھیک سے معلوم نہیں تو غالباً آپ کو اس کی ضرورت نہیں ہے۔</translation>
 <translation id="6197128521826316819">‏اس صفحہ کیلئے QR کوڈ تخلیق کریں</translation>
+<translation id="6197223946499512637">‏یہ پاس کیز اس کمپیوٹر پر Windows Hello میں محفوظ ہیں۔ وہ آپ کے Google اکاؤنٹ میں محفوظ نہیں ہیں۔</translation>
 <translation id="6198252989419008588">‏PIN تبدیل کریں</translation>
 <translation id="6200047250927636406">فائل مسترد کریں</translation>
 <translation id="6200151268994853226">ایکسٹینشن کا نظم کریں</translation>
@@ -5698,6 +5712,7 @@
 <translation id="6482559668224714696">پوری اسکرین مکبّر</translation>
 <translation id="6483485061007832714">ڈاؤن لوڈ کھولیں</translation>
 <translation id="6483805311199035658"><ph name="FILE" /> کھل رہی ہے…</translation>
+<translation id="6486301003991593638">‏پاس کیز کا نظم کرنے کے لیے، Windows کا نیا ورژن استعمال کریں</translation>
 <translation id="6488384360522318064">زبان منتخب کریں</translation>
 <translation id="648927581764831596">کوئی دستیاب نہیں ہے</translation>
 <translation id="6490471652906364588">‏USB-C آلہ (دایاں پورٹ)</translation>
@@ -6284,6 +6299,7 @@
 <translation id="7029307918966275733">‏Crostini انسٹال نہیں ہے۔ کریڈٹس دیکھنے کیلئے براہ کرم Crostini انسٹال کریں۔</translation>
 <translation id="7029809446516969842">پاس ورڈز</translation>
 <translation id="7030304022046916278">‏چیک کرنے کے لیے URLs کو محفوظ براؤزنگ کو بھیجتا ہے</translation>
+<translation id="7030695672997239647">ٹیب پر دایاں کلک کریں اور "گروپ میں ٹیب شامل کریں" کو منتخب کریں اور پھر "نیا گروپ" منتخب کریں</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - سیریل پورٹ منسلک ہے</translation>
 <translation id="7033616203784997570">ان پٹ میں زیادہ سے زیادہ 62 حروف ہونے چاہئیں</translation>
 <translation id="7034692021407794547">‏بلنگ کے نظم و نسق کے لئے خصوصی حقوق رکھنے والے منتظم کو پہلے منتظم کنسول کے Google Meet ہارڈ ویئر سیکشن میں Google Meet ہارڈ ویئر سروس کی شرائط کو قبول کرنا ہوگا۔</translation>
@@ -7384,6 +7400,7 @@
 <translation id="8101987792947961127">اگلے ریبوٹ پر پاور واش درکار ہوگا</translation>
 <translation id="81020759409809034">مقامی سسٹم پر ڈاؤن لوڈز کا مقام</translation>
 <translation id="8102139037507939978">‏system_logs.txt سے ذاتی طور پر قابل شناخت معلومات اسٹرپ۔</translation>
+<translation id="810362914482827094">پاس کیز تلاش کریں</translation>
 <translation id="8104088837833760645">‏eSIM پروفائل ڈاؤن لوڈ کریں</translation>
 <translation id="8105368624971345109">آف کریں</translation>
 <translation id="8107015733319732394">‏آپ کے <ph name="DEVICE_TYPE" /> پر Google Play اسٹور انسٹال کیا جا رہا ہے۔ اس میں کچھ منٹ کا وقت لگ سکتا ہے۔</translation>
@@ -7831,6 +7848,7 @@
 <translation id="8557022314818157177">آپ کے فنگر پرنٹ کیپچر ہو جانے تک اپنی سیکیورٹی کلید کو ٹچ کرتے رہیں</translation>
 <translation id="8557180006508471423">‏اپنے Mac پر مقام کی سروسز میں "Google Chrome" کو آن کریں</translation>
 <translation id="8557856025359704738">اگلا ڈاؤن لوڈ <ph name="NEXT_DATE_DOWNLOAD" /> کو ہے۔</translation>
+<translation id="8559858985063901027">پاس کیز</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{سبھی کو &amp;نئی ونڈو میں کھولیں}=1{&amp;نئی ونڈو میں کھولیں}other{سبھی ({COUNT}) کو &amp;نئی ونڈو میں کھولیں}}</translation>
 <translation id="8561206103590473338">ہاتھی</translation>
 <translation id="8561565784790166472">انتباہ کے ساتھ آگے بڑھیں</translation>
@@ -7957,6 +7975,7 @@
 <translation id="8677212948402625567">سبھی کو سکیڑیں…</translation>
 <translation id="867767487203716855">اگلا اپ ڈیٹ</translation>
 <translation id="8677859815076891398">‏کوئی البم نہیں ہے۔ <ph name="LINK_BEGIN" />Google تصاویر<ph name="LINK_END" /> میں ایک البم تخلیق کریں۔</translation>
+<translation id="8678378565142776698">دوبارہ شروع کریں اور خودکار اپ ڈیٹس حاصل کریں</translation>
 <translation id="8678538439778360739">‏<ph name="TIME" /> پر، آپ کے مطابقت پذیر پاس فریز کی مدد سے ڈيٹا کی مرموزکاری کر دی گئی۔ اس میں Google Pay سے ادائیگی کے طریقے اور پتے شامل نہیں ہوتے ہیں۔</translation>
 <translation id="8678582529642151449">ٹیبز چھوٹے نہیں کئے جاتے</translation>
 <translation id="8678933587484842200">آپ اس ایپلیکیشن کو کس طرح لانچ کرنا چاہیں گے؟</translation>
@@ -8203,6 +8222,7 @@
 <translation id="8910987510378294980">آلے کی فہرست چھپائیں</translation>
 <translation id="8912362522468806198">‏Google اکاؤنٹ</translation>
 <translation id="8912810933860534797">خودکار اسکین فعال کریں</translation>
+<translation id="8915307125957890427">ٹیب پر دایاں کلک کریں اور "گروپ میں ٹیب شامل کریں" کو منتخب کریں اور پھر "نیا گروپ" منتخب کریں</translation>
 <translation id="8915370057835397490">تجویز لوڈ ہو رہی ہے</translation>
 <translation id="8916476537757519021">پوشیدگی کا ذیلی فریم: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" /> کا <ph name="DEVICE_TYPE" /></translation>
@@ -8277,6 +8297,7 @@
 <translation id="8986362086234534611">بھول جائیں</translation>
 <translation id="8986494364107987395">‏خود کار طریقے سے Google کو استعمال کے اعداد و شمار اور کریش کی رپورٹیں بھیجیں</translation>
 <translation id="8987927404178983737">ماہ</translation>
+<translation id="8989359959810288806">ٹیدرنگ کی صورتحال کو ریفریش کریں</translation>
 <translation id="8991520179165052608">سائٹ آپ کا مائیکروفون استعمال کر سکتی ہے</translation>
 <translation id="899384117894244799">محدود صارف کو ہٹائیں</translation>
 <translation id="899403249577094719">‏Netscape سرٹیفکیٹ بیس URL</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index 79060cc..287f968 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -4826,7 +4826,6 @@
 <translation id="5601503069213153581">PIN kod</translation>
 <translation id="5601823921345337195">MIDI qurilmalarga ulanishga ruxsat berilmagan</translation>
 <translation id="5602765853043467355">Qurilmadagi xatcho‘plar, tarix, parollar va boshqa ma’lumotlarni tozalash</translation>
-<translation id="5605623530403479164">Boshqa qidiruv tizimlari</translation>
 <translation id="5605758115928394442">Telefoningizga bildirishnoma yuborildi. Shaxsingizni tasdiqlang.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Bu kengaytma bloklandi}other{Bu kengaytmalar bloklandi}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync, Batafsil</translation>
@@ -5127,6 +5126,7 @@
 <translation id="5909379458939060601">Bu profil va brauzerning ishlashi haqida axborot oʻchirib tashlansinmi?</translation>
 <translation id="5910363049092958439">&amp;Rasmni saqlab olish...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> oflayn</translation>
+<translation id="5911030830365207728">Google Tarjimon</translation>
 <translation id="5911533659001334206">Tezkor tugmalar</translation>
 <translation id="5914724413750400082">Modul (<ph name="MODULUS_NUM_BITS" /> bit):
 <ph name="MODULUS_HEX_DUMP" />
@@ -7963,6 +7963,7 @@
 <translation id="8666759526542103597">Reklamalarni brauzer asosida moslashtirish haqida</translation>
 <translation id="8667328578593601900"><ph name="FULLSCREEN_ORIGIN" /> to‘liq ekranda ochilib, sichqon kursorini yashirdi.</translation>
 <translation id="8667760277771450375">Biz saytlarda spam va firibgarlik reklamalaridan himoyani yoqish orqali kuzatuv mexanizmlarini taqiqlash yoʻllarini oʻrganib chiqmoqdamiz.</translation>
+<translation id="8668378421690365723">Endi qurilmangiz ishlashi, xavfsizlik va unumdorlikda muammolar yuz berishi mumkin.</translation>
 <translation id="8669284339312441707">Iliqroq</translation>
 <translation id="8670537393737592796">Buni tezroq ochish uchun <ph name="APP_NAME" /> ilovasini oʻrnatish tugmasini bosing</translation>
 <translation id="867085395664725367">Serverda xatolik yuz berdi.</translation>
@@ -8446,6 +8447,7 @@
 <translation id="9120693811286642342"><ph name="BEGIN_PARAGRAPH1" />Toʻliq foydalanish uchun <ph name="DEVICE_OS" /> tizimini tashqi diskka oʻrnating. Uni keyinroq kirish ekranidan oʻrnatish ham mumkin.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Oʻrnatish uchun tayyor boʻlmasangiz, uni USB orqali ishga tushirib, sinab koʻrishingiz mumkin. Mavjud operatsion tizim va maʼlumotlaringiz saqlanib qoladi, lekin xotira va unumdorlik cheklovlari oshishi mumkin.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="9121814364785106365">Qadalgan ichki oyna sifatida ochish</translation>
+<translation id="9123287046453017203">Qurilmangiz dasturi eskirdi</translation>
 <translation id="9124003689441359348">Saqlangan parollar shu yerda turadi</translation>
 <translation id="9126149354162942022">Kursor rangi</translation>
 <translation id="9128317794749765148">Oxirigacha sozlanmadi</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index bfd5624..81ab62ab 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -4691,6 +4691,7 @@
 <translation id="5470735824776589490">Bạn cần khởi động lại trước khi có thể đặt lại thiết bị của mình bằng Powerwash. <ph name="LINK_BEGIN" />Tìm hiểu thêm<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">Chào bạn! Đây là giọng nói của tính năng chuyển văn bản sang lời nói.</translation>
 <translation id="5472627187093107397">Lưu mật khẩu cho trang web này</translation>
+<translation id="5473062644742711742">Tìm thêm công cụ hỗ trợ tiếp cận trong Cửa hàng Chrome trực tuyến</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">Bằng cách tiếp tục, bạn đồng ý rằng thiết bị này cũng có thể tự động tải xuống và cài đặt các bản cập nhật và ứng dụng của Google, nhà mạng của con bạn và nhà sản xuất thiết bị (có thể dùng dữ liệu di động). Một vài ứng dụng trong số này có thể cung cấp các lựa chọn mua hàng trong ứng dụng.</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Mã PIN phải có ít nhất 1 ký tự}other{Mã PIN phải có ít nhất # ký tự}}</translation>
@@ -4838,7 +4839,6 @@
 <translation id="5601503069213153581">Mã PIN</translation>
 <translation id="5601823921345337195">Không được phép kết nối với các thiết bị MIDI</translation>
 <translation id="5602765853043467355">Xóa dấu trang, lịch sử, mật khẩu và nhiều nội dung khác từ thiết bị này</translation>
-<translation id="5605623530403479164">Công cụ tìm kiếm khác</translation>
 <translation id="5605758115928394442">Chúng tôi đã gửi một thông báo đến điện thoại của bạn để xác nhận đó là bạn.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Tiện ích này đã bị chặn}other{Các tiện ích này đã bị chặn}}</translation>
 <translation id="560834977503641186">Đồng bộ hóa Wi-Fi, Tìm hiểu thêm</translation>
@@ -5139,6 +5139,7 @@
 <translation id="5909379458939060601">Xoá hồ sơ và dữ liệu duyệt web này?</translation>
 <translation id="5910363049092958439">Lưu &amp;Hình ảnh Dưới dạng...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> hiện không có kết nối mạng</translation>
+<translation id="5911030830365207728">Google Dịch</translation>
 <translation id="5911533659001334206">Trình xem phím tắt</translation>
 <translation id="5914724413750400082">Mô-đun (<ph name="MODULUS_NUM_BITS" /> bit):
   <ph name="MODULUS_HEX_DUMP" />
@@ -8456,7 +8457,7 @@
 <translation id="9115675100829699941">&amp;Dấu trang</translation>
 <translation id="9116465289595958864">Sửa đổi lần cuối</translation>
 <translation id="9116799625073598554">Ứng dụng ghi chú</translation>
-<translation id="9117030152748022724">Quản lý các ứng dụng</translation>
+<translation id="9117030152748022724">Quản lý ứng dụng</translation>
 <translation id="9120693811286642342"><ph name="BEGIN_PARAGRAPH1" />Để có trải nghiệm tốt nhất, hãy cài đặt <ph name="DEVICE_OS" /> vào ổ đĩa trong của bạn. Bạn cũng có thể cài đặt ứng dụng vào lúc khác trên màn hình đăng nhập.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Nếu chưa sẵn sàng cài đặt, bạn có thể chạy ứng dụng từ USB để dùng thử trước. Thao tác này sẽ giữ lại hệ điều hành và dữ liệu hiện có, nhưng bạn có thể gặp phải các giới hạn về dung lượng lưu trữ và hiệu suất.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="9121814364785106365">Mở dưới dạng thẻ được ghim</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 40c60e7..283e3838 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">使用您的麦克风和摄像头</translation>
 <translation id="1005333234656240382">启用 ADB 调试?</translation>
 <translation id="1006873397406093306">此扩展程序可读取和更改您的网站数据。您可以控制此扩展程序能访问哪些网站。</translation>
+<translation id="1007057452468855774">开启 Google Play 商店</translation>
 <translation id="1008186147501209563">导出书签</translation>
 <translation id="1008557486741366299">以后再说</translation>
 <translation id="1009476156254802388">“<ph name="WEB_DRIVE" />”位置</translation>
 <translation id="1009663062402466586">游戏控件现已可供使用</translation>
 <translation id="1010498023906173788">此标签页已连接到一个串行端口。</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{1 个页面无响应}other{多个页面无响应}}</translation>
+<translation id="1011003645819296594">已保存的设备</translation>
 <translation id="1011355516189274711">文字转语音的音量</translation>
 <translation id="1012794136286421601">正在同步您的文档、表格、幻灯片和绘图文件。打开Google云端硬盘应用可在线或离线访问这些文件。</translation>
 <translation id="1012876632442809908">USB-C 设备(前方端口)</translation>
@@ -489,6 +491,7 @@
 <translation id="1470350905258700113">使用此设备</translation>
 <translation id="1470946456740188591">如需开启或关闭光标浏览模式,请使用快捷键 Ctrl + 搜索键 + 7</translation>
 <translation id="1472675084647422956">展开</translation>
+<translation id="1473223074251193484">设置网络共享配置</translation>
 <translation id="1474785664565228650">重新启动 Parallels Desktop 后,对麦克风设置做出的更改才能生效。请重新启动 Parallels Desktop 以继续。</translation>
 <translation id="1474893630593443211">更好地控制您看到的广告</translation>
 <translation id="1475502736924165259">您有一些证书不属于前面的任何类别</translation>
@@ -1106,6 +1109,7 @@
 <translation id="2044014337866019681">请确保您验证的帐号是 <ph name="ACCOUNT" /> 以解锁会话。</translation>
 <translation id="204497730941176055">Microsoft 证书模板名称</translation>
 <translation id="2045117674524495717">键盘快捷键助手</translation>
+<translation id="2045211794962848221">系统不会再显示这条特定消息</translation>
 <translation id="2045969484888636535">继续拦截 Cookie</translation>
 <translation id="204622017488417136">您的设备将还原到之前安装的 Chrome 版本。所有用户帐号和本地数据都将移除。此操作无法撤消。</translation>
 <translation id="2046702855113914483">拉面</translation>
@@ -2186,6 +2190,7 @@
 <translation id="3021065318976393105">使用电池时</translation>
 <translation id="3021066826692793094">蝴蝶</translation>
 <translation id="3021678814754966447">查看框架的源代码(&amp;V)</translation>
+<translation id="3022361196600037287">系统会将“<ph name="DEVICE" />”从此 Chromebook 中移除,并且不会将其保存到 <ph name="PRIMARY_EMAIL" />。</translation>
 <translation id="3022978424994383087">无法解析您所说的内容。</translation>
 <translation id="3023464535986383522">随选朗读</translation>
 <translation id="3024374909719388945">使用24小时制</translation>
@@ -3721,6 +3726,7 @@
 <translation id="4535127706710932914">默认个人资料</translation>
 <translation id="4535767533210902251">指纹传感器就是键盘右上方的按键。请用任一手指轻触该按键。</translation>
 <translation id="4536140153723794651">始终能使用 Cookie 的网站</translation>
+<translation id="4536769240747010177">网络共享功能:</translation>
 <translation id="4538417792467843292">删除字词</translation>
 <translation id="4538792345715658285">按企业政策安装。</translation>
 <translation id="4541123282641193691">无法验证您的帐号。请重试,或重新启动您的 Chromebook。</translation>
@@ -3748,6 +3754,7 @@
 <translation id="4561893854334016293">近期未更改过任何权限</translation>
 <translation id="4562155214028662640">添加指纹</translation>
 <translation id="4563210852471260509">初始输入语言是中文</translation>
+<translation id="4563382028841851106">从帐号中移除</translation>
 <translation id="4563880231729913339">手指 3</translation>
 <translation id="4564245002465020751">在手机上完成设置</translation>
 <translation id="4565377596337484307">隐藏密码</translation>
@@ -3784,6 +3791,7 @@
 <translation id="4594577641390224176">想要查看系统简介页面?请访问</translation>
 <translation id="4595560905247879544">只有管理员(<ph name="CUSTODIAN_NAME" />)可以修改应用和扩展程序。</translation>
 <translation id="4596295440756783523">您有证书可标识以下服务器</translation>
+<translation id="4598345735110653698">管理密钥</translation>
 <translation id="4598556348158889687">存储空间管理</translation>
 <translation id="4598776695426288251">可通过多部设备使用 Wi-Fi</translation>
 <translation id="4601426376352205922">标记为未读</translation>
@@ -4009,6 +4017,7 @@
 <translation id="4823894915586516138">该 PIN 码或密码会保护您在此 <ph name="DEVICE_TYPE" /> 上的数据,包括您通过手机访问的任何信息</translation>
 <translation id="4824037980212326045">Linux 备份和恢复</translation>
 <translation id="4824958205181053313">取消同步?</translation>
+<translation id="4825532258163983651">无法删除密钥</translation>
 <translation id="4827675678516992122">无法连接</translation>
 <translation id="4827784381479890589">在 Chrome 浏览器中使用增强的“拼写检查”功能(您输入的文字会被发送给 Google 以方便其提供拼写建议)</translation>
 <translation id="4827904420700932487">为此图片创建二维码</translation>
@@ -4271,6 +4280,7 @@
 <translation id="5087249366037322692">由第三方添加</translation>
 <translation id="5087580092889165836">添加新卡</translation>
 <translation id="5088534251099454936">PKCS #1,带有 RSA 加密的 SHA-512</translation>
+<translation id="5089763948477033443">侧边栏大小调整手柄</translation>
 <translation id="5090637338841444533">不允许跟踪您的摄像头位置</translation>
 <translation id="5093569275467863761">无痕式往返缓存版子框架:<ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">您可以在“文件”应用或其他应用中,使用此应用打开和编辑支持的文件。若要控制哪些文件默认打开此应用,请<ph name="BEGIN_LINK" />了解如何在设备上设置默认应用<ph name="END_LINK" />。</translation>
@@ -4436,6 +4446,7 @@
 <translation id="5258992782919386492">在此设备上安装</translation>
 <translation id="5260334392110301220">智能引号</translation>
 <translation id="5260508466980570042">抱歉,您的电子邮件地址或密码无法进行验证,请重试。</translation>
+<translation id="5260958083445173099">网站会尽可能以您的首选语言显示内容</translation>
 <translation id="5261683757250193089">在 Chrome 应用商店中打开</translation>
 <translation id="5262178194499261222">移除密码</translation>
 <translation id="5262784498883614021">自动连接到网络</translation>
@@ -4476,6 +4487,7 @@
 <translation id="5294097441441645251">必须以小写字符或下划线开头</translation>
 <translation id="5294618183559481278">您的 <ph name="DEVICE_TYPE" /> 使用内置传感器检测是否有人位于设备前。所有数据都会立即在您的设备上处理,完成后便会删除。传感器数据绝不会发送给 Google。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">收听语音反馈,让您无需看屏幕即可使用设备。通过已连接的设备可以获得盲文反馈。</translation>
+<translation id="5297005732522718715">刷新网络共享配置</translation>
 <translation id="5297082477358294722">密码已保存。您可以查看和管理 <ph name="SAVED_PASSWORDS_STORE" />中保存的密码。</translation>
 <translation id="5297946558563358707">当有其他人注视您的屏幕时,屏幕右下角会显示“隐私保护”眼睛图标</translation>
 <translation id="5298219193514155779">主题背景创建者:</translation>
@@ -4646,11 +4658,13 @@
 <translation id="5466374726908360271">粘贴并搜索“<ph name="SEARCH_TERMS" />”</translation>
 <translation id="5467207440419968613">禁用了“<ph name="PERMISSION_1" />”和“<ph name="PERMISSION_2" />”权限</translation>
 <translation id="5468173180030470402">正在查找文件共享</translation>
+<translation id="5468330507528805311">网络共享状态:</translation>
 <translation id="5468881191994555667">选择文件</translation>
 <translation id="5469852975082458401">您可以使用文本光标浏览网页。按 F7 可关闭。</translation>
 <translation id="5470735824776589490">必须先重启设备,然后才能通过 Powerwash 重置。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation>
 <translation id="5471768120198416576">您好!这是文字转语音的语音。</translation>
 <translation id="5472627187093107397">为此网站保存密码</translation>
+<translation id="5473062644742711742">在 Chrome 应用商店中查找更多无障碍工具</translation>
 <translation id="5473075389972733037">IBM</translation>
 <translation id="5473099001878321374">继续操作即表示您同意:此设备还可自动下载并安装来自 Google、您孩子的运营商和此设备的制造商的更新及应用(期间可能会使用移动数据网络),其中的部分应用可能会提供应用内购商品。</translation>
 <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN 码必须包含至少 1 个字符}other{PIN 码必须包含至少 # 个字符}}</translation>
@@ -4798,7 +4812,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">不允许连接到 MIDI 设备</translation>
 <translation id="5602765853043467355">清除此设备上的书签、历史记录、密码等信息</translation>
-<translation id="5605623530403479164">其他搜索引擎</translation>
 <translation id="5605758115928394442">系统向您的手机发送了一条通知,以确认您的身份。</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{这个扩展程序已被屏蔽}other{这些扩展程序已被屏蔽}}</translation>
 <translation id="560834977503641186">Wi-Fi 同步,了解详情</translation>
@@ -4920,6 +4933,7 @@
 <translation id="5734362860645681824">通讯</translation>
 <translation id="5734697361979786483">添加文件共享</translation>
 <translation id="5736796278325406685">请输入有效的用户名</translation>
+<translation id="5738093759615225354">您需要使用此密钥才能登录计算机</translation>
 <translation id="5739017626473506901">请登录以帮助<ph name="USER_NAME" />添加学校帐号</translation>
 <translation id="5739235828260127894">正在等待验证。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">特大</translation>
@@ -5081,6 +5095,7 @@
 <translation id="589541317545606110">使用<ph name="VISUAL_SEARCH_PROVIDER" />搜索网页</translation>
 <translation id="5896436821193322561">不允许</translation>
 <translation id="5900186025777217044">Smart Lock 的功能有变化</translation>
+<translation id="5900243355162006650">网络共享配置:</translation>
 <translation id="5900302528761731119">Google 个人资料照片</translation>
 <translation id="590036993063074298">镜像品质详细信息</translation>
 <translation id="5901069264981746702">您的指纹数据会安全地存储在您的 <ph name="DEVICE_TYPE" />上,绝不会外泄。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation>
@@ -5095,6 +5110,7 @@
 <translation id="5909379458939060601">删除这份个人资料及相关浏览数据?</translation>
 <translation id="5910363049092958439">图片存储为(&amp;V)...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> 处于离线状态</translation>
+<translation id="5911030830365207728">Google 翻译</translation>
 <translation id="5911533659001334206">快捷键查看器</translation>
 <translation id="5914724413750400082">模数(<ph name="MODULUS_NUM_BITS" />位):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5383,6 +5399,7 @@
 <translation id="6196640612572343990">阻止第三方 Cookie</translation>
 <translation id="6196854373336333322">“<ph name="EXTENSION_NAME" />”扩展程序控制了您的代理设置,也就是说,它可以更改、中断或窃听您在网上执行的任何操作。如果您不确定出现这种变化的原因,那么这种变化可能并不是您所希望的。</translation>
 <translation id="6197128521826316819">为此页面创建二维码</translation>
+<translation id="6197223946499512637">这些密钥存储在此计算机上的 Windows Hello 中。系统不会将它们保存到您的 Google 帐号。</translation>
 <translation id="6198252989419008588">更改 PIN</translation>
 <translation id="6200047250927636406">舍弃文件</translation>
 <translation id="6200151268994853226">管理扩展程序</translation>
@@ -5680,6 +5697,7 @@
 <translation id="6482559668224714696">全屏放大镜</translation>
 <translation id="6483485061007832714">打开下载的文件</translation>
 <translation id="6483805311199035658">正在打开 <ph name="FILE" />...</translation>
+<translation id="6486301003991593638">若要管理密钥,请使用较新版本的 Windows</translation>
 <translation id="6488384360522318064">选择语言</translation>
 <translation id="648927581764831596">没有可用设备</translation>
 <translation id="6490471652906364588">USB-C 设备(右侧端口)</translation>
@@ -6163,6 +6181,10 @@
 <translation id="6943939122536910181">已断开与“<ph name="DEVICE" />”的连接</translation>
 <translation id="6945221475159498467">选择</translation>
 <translation id="694592694773692225">已在此网页上阻止重定向。</translation>
+<translation id="6947015141909171112">系统会根据您近期在 Google 搜索中进行过的食谱搜索活动向您显示食谱。
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        您可从卡片菜单中管理设置,或者在“自定义 Chrome”部分中查看更多选项。</translation>
 <translation id="6949434160682548041">密码(选填)</translation>
 <translation id="6950627417367801484">还原应用</translation>
 <translation id="6952242901357037157">您还可在此处显示您 <ph name="BEGIN_LINK" />Google 帐号<ph name="END_LINK" />中存储的密码</translation>
@@ -6262,6 +6284,7 @@
 <translation id="7029307918966275733">未安装 Crostini。请安装 Crostini 以查看开发人员名单。</translation>
 <translation id="7029809446516969842">密码</translation>
 <translation id="7030304022046916278">会将网址发送给“安全浏览”功能进行检查</translation>
+<translation id="7030695672997239647">右键点击某个标签页,选择“向组中添加标签页”,然后选择“新建组”</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - 已连接到串行端口</translation>
 <translation id="7033616203784997570">所输入的内容不得超过 62 个字符</translation>
 <translation id="7034692021407794547">拥有结算管理权限的管理员必须先接受管理控制台的“Google Meet 设备”部分中的 Google Meet 设备服务条款。</translation>
@@ -6958,6 +6981,7 @@
 <translation id="7737115349420013392">正在与“<ph name="DEVICE_NAME" />”配对…</translation>
 <translation id="7737846262459425222">您随时可在“设置”&gt;“Google 助理”&gt;“屏幕上下文”下更改此设置。</translation>
 <translation id="7737948071472253612">不允许使用您的摄像头</translation>
+<translation id="77381465218432215">显示重音符号和特殊字符</translation>
 <translation id="7740996059027112821">标准</translation>
 <translation id="7741307896921365578">启用浏览器级侧边栏,以便通过一种实用方法随时访问您的阅读清单和书签。</translation>
 <translation id="7742558784808143689">清除 <ph name="SITE_NAME" />、其下属所有网站及其已安装的应用的网站数据和权限?</translation>
@@ -7362,6 +7386,7 @@
 <translation id="8101987792947961127">必须在下次重启时执行 Powerwash</translation>
 <translation id="81020759409809034">本地位置</translation>
 <translation id="8102139037507939978">从 system_logs.txt 中删除个人身份信息。</translation>
+<translation id="810362914482827094">搜索密钥</translation>
 <translation id="8104088837833760645">下载 eSIM 卡配置文件</translation>
 <translation id="8105368624971345109">关闭</translation>
 <translation id="8107015733319732394">正在在您的 <ph name="DEVICE_TYPE" /> 上安装 Google Play 商店。这可能需要几分钟的时间。</translation>
@@ -7747,6 +7772,7 @@
 <translation id="8486666913807228950">原因:系统在“会被强制在…中打开”列表中发现了反转规则“<ph name="REVERT_RULE" />”。</translation>
 <translation id="848666842773560761">有一款应用正在尝试使用摄像头。若要允许它使用摄像头,请关闭摄像头的隐私保护开关。</translation>
 <translation id="8487678622945914333">放大</translation>
+<translation id="8487699605742506766">热点</translation>
 <translation id="8489156414266187072">个性化建议仅会显示在您的帐号中</translation>
 <translation id="8490896350101740396">下列自助服务终端应用“<ph name="UPDATED_APPS" />”已更新完毕。请重启设备,以便完成更新流程。</translation>
 <translation id="8492685019009920170">用手指轻触指纹传感器。您的数据会安全地存储在您的 <ph name="DEVICE_TYPE" /> 上,绝不会外泄。</translation>
@@ -7808,6 +7834,7 @@
 <translation id="8557022314818157177">连续轻触您的安全密钥,直到您的指纹被捕获</translation>
 <translation id="8557180006508471423">在 Mac 上的“定位服务”中开启“Google Chrome”</translation>
 <translation id="8557856025359704738">下次下载将于 <ph name="NEXT_DATE_DOWNLOAD" />进行。</translation>
+<translation id="8559858985063901027">密钥</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{在新窗口中打开全部书签(&amp;N)}=1{在新窗口中打开(&amp;N)}other{在新窗口中打开全部({COUNT} 个)书签(&amp;N)}}</translation>
 <translation id="8561206103590473338">大象</translation>
 <translation id="8561565784790166472">继续操作有风险,请三思</translation>
@@ -7934,6 +7961,7 @@
 <translation id="8677212948402625567">全部收起...</translation>
 <translation id="867767487203716855">下一次更新</translation>
 <translation id="8677859815076891398">无任何影集。请在 <ph name="LINK_BEGIN" />Google 相册<ph name="LINK_END" />中创建一个影集。</translation>
+<translation id="8678378565142776698">重启设备并获取自动更新</translation>
 <translation id="8678538439778360739">数据已于 <ph name="TIME" />使用您的同步密码加密。这并不包括 Google Pay 中的付款方式和地址。</translation>
 <translation id="8678582529642151449">不收缩标签页</translation>
 <translation id="8678933587484842200">您希望通过何种方式启动此应用?</translation>
@@ -8180,6 +8208,7 @@
 <translation id="8910987510378294980">隐藏设备列表</translation>
 <translation id="8912362522468806198">Google 帐号</translation>
 <translation id="8912810933860534797">启用自动扫描</translation>
+<translation id="8915307125957890427">右键点击某个标签页,选择“向组中添加标签页”,然后选择“新建组”</translation>
 <translation id="8915370057835397490">正在加载建议</translation>
 <translation id="8916476537757519021">隐身辅助框架:<ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" />的 <ph name="DEVICE_TYPE" /></translation>
@@ -8240,6 +8269,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{“<ph name="TAB_TITLE" />”}=1{“<ph name="TAB_TITLE" />”和另外 1 个标签页}other{“<ph name="TAB_TITLE" />”和另外 # 个标签页}}</translation>
 <translation id="8977811652087512276">密码不正确或文件已损坏</translation>
 <translation id="8978154919215542464">开启 - 同步所有内容</translation>
+<translation id="8978670037548431647">刷新网络共享功能</translation>
 <translation id="897939795688207351">在 <ph name="ORIGIN" /> 上</translation>
 <translation id="8980345560318123814">反馈报告</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - 已崩溃</translation>
@@ -8253,6 +8283,7 @@
 <translation id="8986362086234534611">不保存</translation>
 <translation id="8986494364107987395">将使用情况统计信息和崩溃报告自动发送给 Google</translation>
 <translation id="8987927404178983737">月</translation>
+<translation id="8989359959810288806">刷新网络共享状态</translation>
 <translation id="8991520179165052608">该网站可能会使用您的麦克风</translation>
 <translation id="899384117894244799">移除受限用户</translation>
 <translation id="899403249577094719">Netscape 证书基本网址</translation>
@@ -8504,6 +8535,7 @@
 <translation id="935854577147268200">Smart Lock 所用的配对手机已更改。请输入您的密码以更新 Smart Lock。下次,您就能使用新的配对手机解锁您的 <ph name="DEVICE_TYPE" /> 了。您可在“设置”中关闭 Smart Lock。</translation>
 <translation id="936646668635477464">摄像头和麦克风</translation>
 <translation id="936801553271523408">系统诊断数据</translation>
+<translation id="937053962468712792">从 <ph name="PRIMARY_EMAIL" /> 中移除“<ph name="DEVICE" />”?</translation>
 <translation id="93766956588638423">修复扩展程序</translation>
 <translation id="938568644810664664">不妨试着这样问:“Ok Google,这是什么歌?”或“Ok Google,我的屏幕上显示的是什么?”</translation>
 <translation id="938623846785894166">不常用的文件</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index d379619..0e9919d6 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">使用您的麥克風和相機</translation>
 <translation id="1005333234656240382">要啟用 ADB 偵錯嗎?</translation>
 <translation id="1006873397406093306">此擴充程式可讀取及變更您在網站上的資料。您可控制擴充程式可以存取的網站。</translation>
+<translation id="1007057452468855774">開「Google Play 商店」</translation>
 <translation id="1008186147501209563">匯出書籤</translation>
 <translation id="1008557486741366299">暫時不要</translation>
 <translation id="1009476156254802388">「<ph name="WEB_DRIVE" />」位置</translation>
 <translation id="1009663062402466586">您現可使用遊戲控制項</translation>
 <translation id="1010498023906173788">此分頁已連線至序列連接埠。</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{網頁沒有回應}other{網頁沒有回應}}</translation>
+<translation id="1011003645819296594">已儲存的裝置</translation>
 <translation id="1011355516189274711">「文字轉語音」音量</translation>
 <translation id="1012794136286421601">系統正在同步處理您的文件、試算表、簡報和繪圖檔案。開啟「Google 雲端硬碟」應用程式即可上網或離線存取您的檔案。</translation>
 <translation id="1012876632442809908">USB-C 裝置 (前方連接埠)</translation>
@@ -494,6 +496,7 @@
 <translation id="1470350905258700113">使用此裝置</translation>
 <translation id="1470946456740188591">如要開啟或關閉「鍵盤瀏覽」功能,請使用快速鍵 Ctrl+Search+7</translation>
 <translation id="1472675084647422956">顯示更多</translation>
+<translation id="1473223074251193484">設定網絡共享設定</translation>
 <translation id="1474785664565228650">Parallels Desktop 需要重新啟動,麥克風設定的變更才會生效。重新啟動 Parallels Desktop 即可繼續。</translation>
 <translation id="1474893630593443211">更全面控制系統顯示的廣告</translation>
 <translation id="1475502736924165259">下列檔案上的憑證不屬於任何其他類別</translation>
@@ -1125,6 +1128,7 @@
 <translation id="2044014337866019681">請確保您驗證的是 <ph name="ACCOUNT" />,才能解鎖工作階段。</translation>
 <translation id="204497730941176055">Microsoft 憑證範本名稱</translation>
 <translation id="2045117674524495717">鍵盤快速鍵助手</translation>
+<translation id="2045211794962848221">您不會再看到此訊息</translation>
 <translation id="2045969484888636535">繼續封鎖 Cookie</translation>
 <translation id="204622017488417136">您的裝置將被重設為上次安裝的 Chrome 版本,且所有使用者帳戶和本機資料都會被移除。這項操作無法復原。</translation>
 <translation id="2046702855113914483">拉麵</translation>
@@ -2209,6 +2213,7 @@
 <translation id="3021065318976393105">使用電池時</translation>
 <translation id="3021066826692793094">蝴蝶</translation>
 <translation id="3021678814754966447">檢視頁框原始碼(&amp;V)</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> 將從這部 Chromebook 中移除,且不會儲存至 <ph name="PRIMARY_EMAIL" />。</translation>
 <translation id="3022978424994383087">無法辨識語音。</translation>
 <translation id="3023464535986383522">選取以朗讀</translation>
 <translation id="3024374909719388945">使用 24 小時制時鐘</translation>
@@ -3748,6 +3753,7 @@
 <translation id="4535127706710932914">預設設定檔</translation>
 <translation id="4535767533210902251">指紋感應器位於鍵盤右上方。請用任何一隻手指輕觸指紋感應器。</translation>
 <translation id="4536140153723794651">一律可以使用 Cookie 的網站</translation>
+<translation id="4536769240747010177">網路共用功能:</translation>
 <translation id="4538417792467843292">刪除文字</translation>
 <translation id="4538792345715658285">由公司政策安裝</translation>
 <translation id="4541123282641193691">無法驗證您的帳戶,請再試一次,或重新啟動 Chromebook。</translation>
@@ -3775,6 +3781,7 @@
 <translation id="4561893854334016293">最近沒有變更過任何權限</translation>
 <translation id="4562155214028662640">新增指紋</translation>
 <translation id="4563210852471260509">初始輸入語言為中文</translation>
+<translation id="4563382028841851106">從帳戶中移除</translation>
 <translation id="4563880231729913339">手指 3</translation>
 <translation id="4564245002465020751">在手機上完成設定</translation>
 <translation id="4565377596337484307">隱藏密碼</translation>
@@ -3811,6 +3818,7 @@
 <translation id="4594577641390224176">要查看系統的「關於」頁面嗎?請前往</translation>
 <translation id="4595560905247879544">只有管理員 (<ph name="CUSTODIAN_NAME" />) 才能修改應用程式和擴充程式。</translation>
 <translation id="4596295440756783523">您的檔案具備可以識別這些伺服器的憑證</translation>
+<translation id="4598345735110653698">管理密鑰</translation>
 <translation id="4598556348158889687">管理儲存空間</translation>
 <translation id="4598776695426288251">可透過多部裝置使用 Wi-Fi</translation>
 <translation id="4601426376352205922">標示為未讀取</translation>
@@ -4036,6 +4044,7 @@
 <translation id="4823894915586516138">此 PIN 或密碼會在此 <ph name="DEVICE_TYPE" /> 上保護您的資料,包括您從手機存取的任何資料</translation>
 <translation id="4824037980212326045">Linux 備份與還原</translation>
 <translation id="4824958205181053313">要取消同步功能嗎?</translation>
+<translation id="4825532258163983651">無法刪除密鑰</translation>
 <translation id="4827675678516992122">無法連線</translation>
 <translation id="4827784381479890589">Chrome 瀏覽器的進階拼字檢查功能 (文字會傳送給 Google 以提供拼字建議)</translation>
 <translation id="4827904420700932487">為此圖片建立 QR 碼</translation>
@@ -4298,6 +4307,7 @@
 <translation id="5087249366037322692">由第三方新增</translation>
 <translation id="5087580092889165836">加入新卡</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 (使用 RSA 加密)</translation>
+<translation id="5089763948477033443">側面板大小調整控點</translation>
 <translation id="5090637338841444533">不允許追蹤攝錄機位置</translation>
 <translation id="5093569275467863761">向前/返回快取中的無痕子頁框:<ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">您可在「檔案」應用程式或其他應用程式中,透過此應用程式開啟及編輯支援的檔案。如要控制在此應用程式預設開啟哪些檔案,請<ph name="BEGIN_LINK" />進一步瞭解如何在裝置上設定預設應用程式<ph name="END_LINK" />。</translation>
@@ -4463,6 +4473,7 @@
 <translation id="5258992782919386492">在此裝置上安裝</translation>
 <translation id="5260334392110301220">智能引號</translation>
 <translation id="5260508466980570042">抱歉,系統無法驗證您的電郵地址或密碼,請再試一次。</translation>
+<translation id="5260958083445173099">網站會按情況以您偏好的語言顯示內容</translation>
 <translation id="5261683757250193089">在「Chrome 網上應用程式商店」中開啟</translation>
 <translation id="5262178194499261222">移除密碼</translation>
 <translation id="5262784498883614021">自動連線至網絡</translation>
@@ -4503,6 +4514,7 @@
 <translation id="5294097441441645251">開頭必須為小寫字元或底線</translation>
 <translation id="5294618183559481278"><ph name="DEVICE_TYPE" /> 會使用內置感應器偵測裝置前的人。系統會在裝置上立即處理所有資料,然後刪除。系統不會將感應器資料傳送至 Google。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">使用朗讀功能,讓您無需查看螢幕亦可使用裝置。您可透過已連接裝置使用點字功能。</translation>
+<translation id="5297005732522718715">重新整理網絡共享設定</translation>
 <translation id="5297082477358294722">密碼已儲存。查看和管理儲存在「<ph name="SAVED_PASSWORDS_STORE" />」的密碼。</translation>
 <translation id="5297946558563358707">當有人窺探您的螢幕時,螢幕右下方會顯示「私隱權」眼睛圖示</translation>
 <translation id="5298219193514155779">主題製作者</translation>
@@ -4673,6 +4685,7 @@
 <translation id="5466374726908360271">貼上並搜尋「<ph name="SEARCH_TERMS" />」 (&amp;S)</translation>
 <translation id="5467207440419968613">已封鎖<ph name="PERMISSION_1" />、<ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">正在尋找檔案共用</translation>
+<translation id="5468330507528805311">網絡共享狀態:</translation>
 <translation id="5468881191994555667">選擇檔案</translation>
 <translation id="5469852975082458401">您可使用文字游標導覽網頁。按 F7 即可關閉。</translation>
 <translation id="5470735824776589490">您必須先重新啟動裝置,才能透過執行 Powerwash 重設裝置。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
@@ -4826,7 +4839,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">不允許連接 MIDI 裝置</translation>
 <translation id="5602765853043467355">清除此裝置上的書籤、記錄和密碼等資料。</translation>
-<translation id="5605623530403479164">其他搜尋引擎</translation>
 <translation id="5605758115928394442">已將通知傳送至您的手機,以確認您的身分。</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{已封鎖這個擴充程式}other{已封鎖這些擴充程式}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync,了解詳情</translation>
@@ -4948,6 +4960,7 @@
 <translation id="5734362860645681824">通訊工具</translation>
 <translation id="5734697361979786483">新增檔案共用</translation>
 <translation id="5736796278325406685">請輸入有效的使用者名稱</translation>
+<translation id="5738093759615225354">您需要使用此密鑰,才能在電腦上登入帳戶</translation>
 <translation id="5739017626473506901">需要登入才能為 <ph name="USER_NAME" /> 新增學校帳戶</translation>
 <translation id="5739235828260127894">正在等待驗證。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">非常大</translation>
@@ -5109,6 +5122,7 @@
 <translation id="589541317545606110">使用 <ph name="VISUAL_SEARCH_PROVIDER" /> 搜尋網頁</translation>
 <translation id="5896436821193322561">不允許</translation>
 <translation id="5900186025777217044">Smart Lock 功能已變更</translation>
+<translation id="5900243355162006650">網絡共享設定:</translation>
 <translation id="5900302528761731119">Google 個人檔案相片</translation>
 <translation id="590036993063074298">鏡像品質詳情</translation>
 <translation id="5901069264981746702">系統會妥善地將您的指紋資料儲存在 <ph name="DEVICE_TYPE" /> 上,絕不會外洩。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
@@ -5123,6 +5137,7 @@
 <translation id="5909379458939060601">要刪除此設定檔和瀏覽資料嗎?</translation>
 <translation id="5910363049092958439">另存圖片為(&amp;V)…</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> 已離線</translation>
+<translation id="5911030830365207728">Google 翻譯</translation>
 <translation id="5911533659001334206">快速鍵檢視器</translation>
 <translation id="5914724413750400082">模數 (<ph name="MODULUS_NUM_BITS" /> 位元):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5412,6 +5427,7 @@
 <translation id="6196640612572343990">封鎖第三方 Cookie</translation>
 <translation id="6196854373336333322">您的 Proxy 設定已受到擴充功能「<ph name="EXTENSION_NAME" />」控制,該擴充功能可變更、中斷、或監視您在網上的行為。如果您不確定這項變更為何發生,建議您停用該擴充功能。</translation>
 <translation id="6197128521826316819">為此頁面建立 QR 碼</translation>
+<translation id="6197223946499512637">這些密鑰會儲存在此電腦上的 Windows Hello,並未儲存至您的 Google 帳戶。</translation>
 <translation id="6198252989419008588">變更 PIN</translation>
 <translation id="6200047250927636406">捨棄檔案</translation>
 <translation id="6200151268994853226">管理擴充程式</translation>
@@ -5709,6 +5725,7 @@
 <translation id="6482559668224714696">全螢幕放大鏡</translation>
 <translation id="6483485061007832714">開啟下載檔案</translation>
 <translation id="6483805311199035658">正在開啟「<ph name="FILE" />」…</translation>
+<translation id="6486301003991593638">如要管理密鑰,請使用較新版的 Windows</translation>
 <translation id="6488384360522318064">選取語言</translation>
 <translation id="648927581764831596">沒有可用的相機或麥克風</translation>
 <translation id="6490471652906364588">USB-C 裝置 (右側連接埠)</translation>
@@ -6192,6 +6209,10 @@
 <translation id="6943939122536910181">中斷咗同 <ph name="DEVICE" /> 嘅連線</translation>
 <translation id="6945221475159498467">選取</translation>
 <translation id="694592694773692225">已在此網頁禁止重新導向。</translation>
+<translation id="6947015141909171112">系統會根據你最近搜尋的食譜,向你顯示食譜。
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        你可以透過資訊卡選單管理設定,或前往「自訂 Chrome」查看更多選項。</translation>
 <translation id="6949434160682548041">密碼 (選填)</translation>
 <translation id="6950627417367801484">還原應用程式</translation>
 <translation id="6952242901357037157">您亦可在此顯示 <ph name="BEGIN_LINK" />Google 帳戶<ph name="END_LINK" />的密碼</translation>
@@ -6291,6 +6312,7 @@
 <translation id="7029307918966275733">尚未安裝 Crostini。請安裝 Crostini 來查看製作人員名單。</translation>
 <translation id="7029809446516969842">密碼</translation>
 <translation id="7030304022046916278">將網址傳送至「安全瀏覽」功能檢查</translation>
+<translation id="7030695672997239647">在分頁上按一下右鍵,並選取「將分頁加入群組」和「新群組」</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - 連接咗序列連接埠</translation>
 <translation id="7033616203784997570">輸入文字不可多於 62 個字元</translation>
 <translation id="7034692021407794547">擁有「管理賬單」權限的管理員必須先前往管理控制台的「Google Meet 硬件」部分接受《Google Meet 硬件服務條款》。</translation>
@@ -6987,6 +7009,7 @@
 <translation id="7737115349420013392">正在與「<ph name="DEVICE_NAME" />」配對…</translation>
 <translation id="7737846262459425222">您可隨時在 [設定] &gt; [Google 助理] &gt; [畫面內容] 中變更此設定。</translation>
 <translation id="7737948071472253612">不允許使用攝錄機</translation>
+<translation id="77381465218432215">顯示重音標記和特殊字元</translation>
 <translation id="7740996059027112821">標準</translation>
 <translation id="7741307896921365578">啟用瀏覽器層級的側面板,以實用的方式持續存取「閱讀清單」和「書籤」。</translation>
 <translation id="7742558784808143689">要清除 <ph name="SITE_NAME" />、當中所有網站,以及已安裝應用程式的網站資料和權限嗎?</translation>
@@ -7392,6 +7415,7 @@
 <translation id="8101987792947961127">必須在下次重新啟動時執行 Powerwash</translation>
 <translation id="81020759409809034">本地位置</translation>
 <translation id="8102139037507939978">移除 system_logs.txt 中的個人識別資料。</translation>
+<translation id="810362914482827094">搜尋密鑰</translation>
 <translation id="8104088837833760645">下載 eSIM 卡設定檔</translation>
 <translation id="8105368624971345109">關閉</translation>
 <translation id="8107015733319732394">正在為 <ph name="DEVICE_TYPE" /> 安裝「Google Play 商店」。這可能需時幾分鐘。</translation>
@@ -7777,6 +7801,7 @@
 <translation id="8486666913807228950">原因:在「強制開啟方式」清單中找到反轉規則 <ph name="REVERT_RULE" />。</translation>
 <translation id="848666842773560761">一個應用程式正在嘗試存取攝錄機。如要允許存取,請將攝錄機的私隱開關切換至關閉。</translation>
 <translation id="8487678622945914333">放大</translation>
+<translation id="8487699605742506766">無線基地台</translation>
 <translation id="8489156414266187072">個人建議只會在您的帳戶上顯示</translation>
 <translation id="8490896350101740396">下列 Kiosk 應用程式 (<ph name="UPDATED_APPS" />) 已更新。請重新啟動裝置以完成更新程序。</translation>
 <translation id="8492685019009920170">用手指輕觸指紋感應器。系統會妥善地將您的資料儲存在 <ph name="DEVICE_TYPE" /> 上,絕不會外洩。</translation>
@@ -7838,6 +7863,7 @@
 <translation id="8557022314818157177">請持續輕觸安全密鑰,直至指紋擷取完成</translation>
 <translation id="8557180006508471423">請在 Mac 上的「定位服務」中開啟「Google Chrome」</translation>
 <translation id="8557856025359704738">下次下載日期為 <ph name="NEXT_DATE_DOWNLOAD" />。</translation>
+<translation id="8559858985063901027">密鑰</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{在新視窗中開啟所有書籤(&amp;N)}=1{在新視窗中開啟書籤(&amp;N)}other{在新視窗中開啟全部 {COUNT} 個書籤(&amp;N)}}</translation>
 <translation id="8561206103590473338">大象</translation>
 <translation id="8561565784790166472">執行時請特別注意</translation>
@@ -7964,6 +7990,7 @@
 <translation id="8677212948402625567">全部收合…</translation>
 <translation id="867767487203716855">下一個更新項目</translation>
 <translation id="8677859815076891398">沒有相簿。請在「<ph name="LINK_BEGIN" />Google 相片<ph name="LINK_END" />」中建立相簿。</translation>
+<translation id="8678378565142776698">重新啟動並取得自動更新</translation>
 <translation id="8678538439778360739">系統已於 <ph name="TIME" />使用您的同步密碼短語加密資料。Google Pay 的付款方法和地址不會包括在內。</translation>
 <translation id="8678582529642151449">分頁不可縮小</translation>
 <translation id="8678933587484842200">您想如何啟動此應用程式?</translation>
@@ -8210,6 +8237,7 @@
 <translation id="8910987510378294980">隱藏裝置清單</translation>
 <translation id="8912362522468806198">Google 帳戶</translation>
 <translation id="8912810933860534797">啟用自動掃瞄</translation>
+<translation id="8915307125957890427">在分頁上按一下右鍵,並選取「將分頁加入群組」和「新群組」</translation>
 <translation id="8915370057835397490">正在載入建議</translation>
 <translation id="8916476537757519021">無痕模式子頁框:<ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" />的 <ph name="DEVICE_TYPE" /></translation>
@@ -8270,6 +8298,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{「<ph name="TAB_TITLE" />」}=1{「<ph name="TAB_TITLE" />」和另外 1 個標籤}other{「<ph name="TAB_TITLE" />」和另外 # 個標籤}}</translation>
 <translation id="8977811652087512276">密碼不正確或檔案損毀</translation>
 <translation id="8978154919215542464">開啟 - 同步所有內容</translation>
+<translation id="8978670037548431647">重新整理網路共用功能</translation>
 <translation id="897939795688207351">在 <ph name="ORIGIN" /> 上</translation>
 <translation id="8980345560318123814">意見反映報告</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - 已當機</translation>
@@ -8283,6 +8312,7 @@
 <translation id="8986362086234534611">清除</translation>
 <translation id="8986494364107987395">自動將使用統計資料和當機報告傳送給 Google</translation>
 <translation id="8987927404178983737">月</translation>
+<translation id="8989359959810288806">重新整理網絡共享狀態</translation>
 <translation id="8991520179165052608">網站可以使用您的麥克風</translation>
 <translation id="899384117894244799">移除受限制的使用者</translation>
 <translation id="899403249577094719">Netscape 憑證基底網址</translation>
@@ -8534,6 +8564,7 @@
 <translation id="935854577147268200">Smart Lock 手機已變更,請輸入密碼以更新 Smart Lock。下次您便可使用手機來解鎖 <ph name="DEVICE_TYPE" />。您可在「設定」中停用 Smart Lock。</translation>
 <translation id="936646668635477464">攝錄機和麥克風</translation>
 <translation id="936801553271523408">系統診斷數據</translation>
+<translation id="937053962468712792">要從 <ph name="PRIMARY_EMAIL" /> 移除 <ph name="DEVICE" /> 嗎?</translation>
 <translation id="93766956588638423">修復擴充程式</translation>
 <translation id="938568644810664664">請嘗試說:「Ok Google,呢首係咩歌?」或者「Ok Google,我螢幕上面有乜嘢?」</translation>
 <translation id="938623846785894166">不常見的檔案</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index b7aaa8e..d2364fb9 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">使用你的麥克風和相機</translation>
 <translation id="1005333234656240382">是否要啟用 ADB 偵錯?</translation>
 <translation id="1006873397406093306">這項擴充功能可以讀取及變更你造訪的網站所使用的資料。你可以自行設定要給予這項擴充功能哪些網站的存取權限。</translation>
+<translation id="1007057452468855774">開啟 Google Play 商店</translation>
 <translation id="1008186147501209563">匯出書籤</translation>
 <translation id="1008557486741366299">現在不要</translation>
 <translation id="1009476156254802388">「<ph name="WEB_DRIVE" />」位置</translation>
 <translation id="1009663062402466586">現已提供遊戲控制項</translation>
 <translation id="1010498023906173788">這個分頁已連線至序列埠。</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{一個網頁無回應}other{多個網頁無回應}}</translation>
+<translation id="1011003645819296594">已儲存的裝置</translation>
 <translation id="1011355516189274711">文字轉語音的音量</translation>
 <translation id="1012794136286421601">系統正在同步處理你的文件、試算表、簡報和繪圖檔案。開啟 Google 雲端硬碟應用程式即可上網或離線存取你的檔案。</translation>
 <translation id="1012876632442809908">USB-C 裝置 (前方連接埠)</translation>
@@ -491,6 +493,7 @@
 <translation id="1470350905258700113">使用這部裝置</translation>
 <translation id="1470946456740188591">如要開啟或關閉鍵盤瀏覽功能,請使用快速鍵 Ctrl 鍵 + 搜尋鍵 + 7</translation>
 <translation id="1472675084647422956">顯示更多</translation>
+<translation id="1473223074251193484">設定網路共用設定</translation>
 <translation id="1474785664565228650">必須重新啟動 Parallels Desktop,麥克風設定的變更才會生效。請重新啟動 Parallels Desktop 以繼續操作。</translation>
 <translation id="1474893630593443211">進一步控管系統向你顯示的廣告</translation>
 <translation id="1475502736924165259">您儲存的這些憑證不屬於任何其他類別</translation>
@@ -1113,6 +1116,7 @@
 <translation id="2044014337866019681">請確認你驗證的是 <ph name="ACCOUNT" />,才能解鎖工作階段。</translation>
 <translation id="204497730941176055">Microsoft 憑證範本名稱</translation>
 <translation id="2045117674524495717">鍵盤快速鍵說明</translation>
+<translation id="2045211794962848221">你不會再看到這一則訊息</translation>
 <translation id="2045969484888636535">繼續封鎖 Cookie</translation>
 <translation id="204622017488417136">你的裝置將還原至上一個安裝的 Chrome 版本,且所有使用者帳戶和本機資料都會遭到移除。這項操作無法復原。</translation>
 <translation id="2046702855113914483">拉麵</translation>
@@ -2194,6 +2198,7 @@
 <translation id="3021065318976393105">使用電池時</translation>
 <translation id="3021066826692793094">蝴蝶</translation>
 <translation id="3021678814754966447">檢視頁框原始碼(&amp;V)</translation>
+<translation id="3022361196600037287"><ph name="DEVICE" /> 將從這部 Chromebook 中移除,且不會儲存至 <ph name="PRIMARY_EMAIL" />。</translation>
 <translation id="3022978424994383087">無法辨識語音內容。</translation>
 <translation id="3023464535986383522">隨選朗讀</translation>
 <translation id="3024374909719388945">使用 24 小時制時鐘</translation>
@@ -3731,6 +3736,7 @@
 <translation id="4535127706710932914">預設設定檔</translation>
 <translation id="4535767533210902251">指紋感應器位於鍵盤右上方,請用任何一隻手指輕觸指紋感應器。</translation>
 <translation id="4536140153723794651">一律可以使用 Cookie 的網站</translation>
+<translation id="4536769240747010177">網路共用功能:</translation>
 <translation id="4538417792467843292">刪除文字</translation>
 <translation id="4538792345715658285">由公司政策安裝</translation>
 <translation id="4541123282641193691">無法驗證帳戶。請再試一次,或重新啟動 Chromebook。</translation>
@@ -3758,6 +3764,7 @@
 <translation id="4561893854334016293">最近未變更任何權限</translation>
 <translation id="4562155214028662640">新增指紋</translation>
 <translation id="4563210852471260509">初始輸入語言為中文</translation>
+<translation id="4563382028841851106">從帳戶中移除</translation>
 <translation id="4563880231729913339">手指 3</translation>
 <translation id="4564245002465020751">在手機上完成設定</translation>
 <translation id="4565377596337484307">隱藏密碼</translation>
@@ -3794,6 +3801,7 @@
 <translation id="4594577641390224176">要查看系統的「關於」頁面嗎?請前往</translation>
 <translation id="4595560905247879544">只有管理員 (<ph name="CUSTODIAN_NAME" />) 可以修改應用程式和擴充功能。</translation>
 <translation id="4596295440756783523">您儲存了這些伺服器的識別憑證</translation>
+<translation id="4598345735110653698">管理密碼金鑰</translation>
 <translation id="4598556348158889687">儲存空間管理</translation>
 <translation id="4598776695426288251">可透過多部裝置使用 Wi-Fi</translation>
 <translation id="4601426376352205922">標示為未讀取</translation>
@@ -4019,6 +4027,7 @@
 <translation id="4823894915586516138">這組 PIN 碼或密碼可確保你在這部 <ph name="DEVICE_TYPE" /> 上的資料安全無虞,包括透過手機存取的任何資訊</translation>
 <translation id="4824037980212326045">Linux 備份與還原</translation>
 <translation id="4824958205181053313">取消同步處理?</translation>
+<translation id="4825532258163983651">無法刪除密碼金鑰</translation>
 <translation id="4827675678516992122">無法連線</translation>
 <translation id="4827784381479890589">Chrome 瀏覽器中的進階拼字檢查功能 (系統會將文字傳送給 Google 以取得拼字建議)</translation>
 <translation id="4827904420700932487">為這張圖片建立 QR 圖碼</translation>
@@ -4281,6 +4290,7 @@
 <translation id="5087249366037322692">由第三方新增</translation>
 <translation id="5087580092889165836">新增信用卡</translation>
 <translation id="5088534251099454936">PKCS #1 SHA-512 (使用 RSA 加密)</translation>
+<translation id="5089763948477033443">側邊面板大小調整控點</translation>
 <translation id="5090637338841444533">不得追蹤攝影機位置</translation>
 <translation id="5093569275467863761">無痕模式往返快取子頁框:<ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">你可以在「檔案」應用程式或其他應用程式中,透過這個應用程式開啟及編輯支援的檔案。如要控管要在這個應用程式預設開啟哪些檔案,請<ph name="BEGIN_LINK" />進一步瞭解如何在裝置上設定預設應用程式<ph name="END_LINK" />。</translation>
@@ -4446,6 +4456,7 @@
 <translation id="5258992782919386492">安裝到這部裝置</translation>
 <translation id="5260334392110301220">智慧型引號</translation>
 <translation id="5260508466980570042">抱歉,系統無法驗證你的電子郵件地址或密碼,請再試一次。</translation>
+<translation id="5260958083445173099">網站會以你偏好的語言顯示內容 (如果支援的話)</translation>
 <translation id="5261683757250193089">開啟線上應用程式商店</translation>
 <translation id="5262178194499261222">移除密碼</translation>
 <translation id="5262784498883614021">自動連線至網路</translation>
@@ -4486,6 +4497,7 @@
 <translation id="5294097441441645251">開頭必須是小寫字元或底線</translation>
 <translation id="5294618183559481278"><ph name="DEVICE_TYPE" /> 會使用內建感應器偵測裝置前方的人員。所有資料都會立即在這部裝置上處理,完成後便會全數刪除。感應器資料絕不會傳送給 Google。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">系統會提供互動朗讀內容,讓你不用看螢幕也能夠輕鬆使用裝置。你可透過已連結的裝置使用點字反饋功能。</translation>
+<translation id="5297005732522718715">重新整理網路共用設定</translation>
 <translation id="5297082477358294722">密碼已儲存。你可以查看及管理 <ph name="SAVED_PASSWORDS_STORE" />中儲存的密碼。</translation>
 <translation id="5297946558563358707">有人在窺探你的螢幕時,螢幕右下方會顯示「隱私權」眼睛圖示</translation>
 <translation id="5298219193514155779">主題製作者</translation>
@@ -4656,6 +4668,7 @@
 <translation id="5466374726908360271">貼上「<ph name="SEARCH_TERMS" />」並執行搜尋 (&amp;S)</translation>
 <translation id="5467207440419968613">已封鎖:<ph name="PERMISSION_1" />、<ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">正在尋找檔案共用區</translation>
+<translation id="5468330507528805311">網路共用狀態:</translation>
 <translation id="5468881191994555667">選擇檔案</translation>
 <translation id="5469852975082458401">你可以透過文字游標瀏覽頁面。按下 F7 鍵即可關閉這項功能。</translation>
 <translation id="5470735824776589490">你必須先重新啟動裝置,才能透過 Powerwash 重設裝置。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
@@ -4809,7 +4822,6 @@
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">不得連接 MIDI 裝置</translation>
 <translation id="5602765853043467355">清除這個裝置的書籤、歷史記錄、密碼和其他設定</translation>
-<translation id="5605623530403479164">其他搜尋引擎</translation>
 <translation id="5605758115928394442">為了確認你的身分,系統已傳送通知到你的手機。</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{已封鎖這個擴充功能}other{已封鎖這些擴充功能}}</translation>
 <translation id="560834977503641186">Wi-Fi 同步功能,瞭解詳情</translation>
@@ -4931,6 +4943,7 @@
 <translation id="5734362860645681824">通訊</translation>
 <translation id="5734697361979786483">新增檔案共用區</translation>
 <translation id="5736796278325406685">請輸入有效的使用者名稱</translation>
+<translation id="5738093759615225354">你必須有這個密碼金鑰,才能登入 Windows 電腦</translation>
 <translation id="5739017626473506901">登入以協助<ph name="USER_NAME" />新增學校帳戶</translation>
 <translation id="5739235828260127894">等待驗證中。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">非常大</translation>
@@ -5092,6 +5105,7 @@
 <translation id="589541317545606110">使用 <ph name="VISUAL_SEARCH_PROVIDER" /> 搜尋網頁</translation>
 <translation id="5896436821193322561">不允許</translation>
 <translation id="5900186025777217044">Smart Lock 功能有所異動</translation>
+<translation id="5900243355162006650">網路共用設定:</translation>
 <translation id="5900302528761731119">Google 個人資料相片</translation>
 <translation id="590036993063074298">鏡像品質詳細資訊</translation>
 <translation id="5901069264981746702">你的指紋資料會安全地儲存在 <ph name="DEVICE_TYPE" /> 上,絕不會外洩。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
@@ -5106,6 +5120,7 @@
 <translation id="5909379458939060601">要刪除這個設定檔和瀏覽資料嗎?</translation>
 <translation id="5910363049092958439">另存圖片(&amp;V)...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> 目前離線</translation>
+<translation id="5911030830365207728">Google 翻譯</translation>
 <translation id="5911533659001334206">快速鍵檢視器</translation>
 <translation id="5914724413750400082">模數 (<ph name="MODULUS_NUM_BITS" /> 位元):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5394,6 +5409,7 @@
 <translation id="6196640612572343990">封鎖第三方 Cookie</translation>
 <translation id="6196854373336333322">您的 Proxy 設定已受到擴充功能「<ph name="EXTENSION_NAME" />」控制,該擴充功能可變更、中斷、或監視您在網路上的行為。如果您不確定這項變更的發生原因,建議您停用該擴充功能。</translation>
 <translation id="6197128521826316819">為這個頁面建立 QR 圖碼</translation>
+<translation id="6197223946499512637">這些密碼金鑰是儲存在這部電腦的 Windows Hello 上,並未儲存到你的 Google 帳戶。</translation>
 <translation id="6198252989419008588">變更 PIN 碼</translation>
 <translation id="6200047250927636406">捨棄檔案</translation>
 <translation id="6200151268994853226">管理擴充功能</translation>
@@ -5691,6 +5707,7 @@
 <translation id="6482559668224714696">全螢幕放大鏡</translation>
 <translation id="6483485061007832714">開啟下載檔案</translation>
 <translation id="6483805311199035658">正在開啟「<ph name="FILE" />」...</translation>
+<translation id="6486301003991593638">如要管理密碼金鑰,請使用新版 Windows</translation>
 <translation id="6488384360522318064">選取語言</translation>
 <translation id="648927581764831596">沒有可用的裝置</translation>
 <translation id="6490471652906364588">USB-C 裝置 (右側連接埠)</translation>
@@ -6174,6 +6191,10 @@
 <translation id="6943939122536910181">已中斷與「<ph name="DEVICE" />」的連線</translation>
 <translation id="6945221475159498467">選取</translation>
 <translation id="694592694773692225">已在這個網頁禁止重新導向。</translation>
+<translation id="6947015141909171112">系統會根據你最近搜尋的食譜,向你顯示食譜。
+        <ph name="BREAK" />
+        <ph name="BREAK" />
+        你可以透過資訊卡選單管理設定,或前往「自訂 Chrome」查看更多選項。</translation>
 <translation id="6949434160682548041">密碼 (選填)</translation>
 <translation id="6950627417367801484">還原應用程式</translation>
 <translation id="6952242901357037157">你也可以在這裡顯示 <ph name="BEGIN_LINK" />Google 帳戶<ph name="END_LINK" />的密碼</translation>
@@ -6273,6 +6294,7 @@
 <translation id="7029307918966275733">未安裝 Crostini。請安裝 Crostini 以查看開發人員名單。</translation>
 <translation id="7029809446516969842">密碼</translation>
 <translation id="7030304022046916278">系統會將網址傳送給安全瀏覽功能進行檢查</translation>
+<translation id="7030695672997239647">在分頁標籤上按一下滑鼠右鍵,然後依序選取「將分頁加入群組」和「新群組」</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - 已連線至序列埠</translation>
 <translation id="7033616203784997570">輸入內容長度上限為 62 個半形字元</translation>
 <translation id="7034692021407794547">有「帳單管理」權限的管理員必須先前往管理控制台的「Google Meet 設備」專區接受《Google Meet 設備服務條款》。</translation>
@@ -6969,6 +6991,7 @@
 <translation id="7737115349420013392">正在與「<ph name="DEVICE_NAME" />」配對…</translation>
 <translation id="7737846262459425222">你隨時可以前往 [設定] &gt; [Google 助理] &gt; [畫面內容] 變更這項設定。</translation>
 <translation id="7737948071472253612">不得使用攝影機</translation>
+<translation id="77381465218432215">顯示重音標記和特殊字元</translation>
 <translation id="7740996059027112821">標準</translation>
 <translation id="7741307896921365578">啟用瀏覽器層級的側邊面板,方便隨時使用閱讀清單和書籤。</translation>
 <translation id="7742558784808143689">要清除 <ph name="SITE_NAME" />、其底下所有網站以及所安裝應用程式的相關網站資料和權限嗎?</translation>
@@ -7374,6 +7397,7 @@
 <translation id="8101987792947961127">必須在下次重新啟動時執行 Powerwash</translation>
 <translation id="81020759409809034">本機位置</translation>
 <translation id="8102139037507939978">移除 system_logs.txt 中的個人識別資訊。</translation>
+<translation id="810362914482827094">搜尋密碼金鑰</translation>
 <translation id="8104088837833760645">下載 eSIM 卡設定檔</translation>
 <translation id="8105368624971345109">關閉</translation>
 <translation id="8107015733319732394">正在為 <ph name="DEVICE_TYPE" /> 安裝 Google Play 商店。這可能需要幾分鐘時間。</translation>
@@ -7759,6 +7783,7 @@
 <translation id="8486666913807228950">原因:在「強制開啟方式」清單中找到反轉規則 <ph name="REVERT_RULE" />。</translation>
 <translation id="848666842773560761">有一個應用程式正在嘗試存取攝影機。如要允許存取,請將攝影機的隱私權開關切換為關閉。</translation>
 <translation id="8487678622945914333">放大</translation>
+<translation id="8487699605742506766">無線基地台</translation>
 <translation id="8489156414266187072">個人建議只會在你的帳戶上顯示</translation>
 <translation id="8490896350101740396">下列 Kiosk 應用程式「<ph name="UPDATED_APPS" />」已更新。請重新啟動裝置,以完成更新程序。</translation>
 <translation id="8492685019009920170">請以手指輕觸指紋感應器。你的資料會安全儲存在 <ph name="DEVICE_TYPE" /> 上,絕不會外洩。</translation>
@@ -7820,6 +7845,7 @@
 <translation id="8557022314818157177">請持續輕觸安全金鑰,直到指紋擷取完成</translation>
 <translation id="8557180006508471423">請在 Mac 的「定位服務」中開啟「Google Chrome」</translation>
 <translation id="8557856025359704738">下次下載日期為 <ph name="NEXT_DATE_DOWNLOAD" />。</translation>
+<translation id="8559858985063901027">密碼金鑰</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{在新視窗中開啟所有網址(&amp;N)}=1{在新視窗中開啟(&amp;N)}other{在新視窗中開啟所有 ({COUNT} 個) 網址(&amp;N)}}</translation>
 <translation id="8561206103590473338">大象</translation>
 <translation id="8561565784790166472">執行時請特別注意</translation>
@@ -7946,6 +7972,7 @@
 <translation id="8677212948402625567">全部收合...</translation>
 <translation id="867767487203716855">下一個更新項目</translation>
 <translation id="8677859815076891398">沒有任何相簿。請在 <ph name="LINK_BEGIN" />Google 相簿<ph name="LINK_END" />中建立相簿。</translation>
+<translation id="8678378565142776698">重新啟動並取得自動更新</translation>
 <translation id="8678538439778360739">系統已採用你在 <ph name="TIME" />設定的同步通關密語對資料進行加密處理。加密的資料不包括 Google Pay 的付款方式和地址。</translation>
 <translation id="8678582529642151449">不縮小分頁</translation>
 <translation id="8678933587484842200">你希望如何啟動這個應用程式?</translation>
@@ -8192,6 +8219,7 @@
 <translation id="8910987510378294980">隱藏裝置清單</translation>
 <translation id="8912362522468806198">Google 帳戶</translation>
 <translation id="8912810933860534797">啟用自動掃描</translation>
+<translation id="8915307125957890427">在分頁標籤上按一下滑鼠右鍵,然後依序選取「將分頁加入群組」和「新群組」</translation>
 <translation id="8915370057835397490">正在載入建議</translation>
 <translation id="8916476537757519021">無痕模式子頁框:<ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" />的 <ph name="DEVICE_TYPE" /></translation>
@@ -8252,6 +8280,7 @@
 <translation id="8975562453115131273">{NUM_OTHER_TABS,plural, =0{「<ph name="TAB_TITLE" />」}=1{「<ph name="TAB_TITLE" />」和另外 1 個分頁}other{「<ph name="TAB_TITLE" />」和另外 # 個分頁}}</translation>
 <translation id="8977811652087512276">密碼不正確或檔案毀損</translation>
 <translation id="8978154919215542464">開啟 - 同步處理所有資料</translation>
+<translation id="8978670037548431647">重新整理網路共用功能</translation>
 <translation id="897939795688207351">在 <ph name="ORIGIN" /> 上</translation>
 <translation id="8980345560318123814">使用狀況報告</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - 已當機</translation>
@@ -8265,6 +8294,7 @@
 <translation id="8986362086234534611">清除</translation>
 <translation id="8986494364107987395">自動傳送使用統計資料及當機報告給 Google</translation>
 <translation id="8987927404178983737">月</translation>
+<translation id="8989359959810288806">重新整理網路共用狀態</translation>
 <translation id="8991520179165052608">網站可以使用你的麥克風</translation>
 <translation id="899384117894244799">移除受限制的使用者</translation>
 <translation id="899403249577094719">Netscape 憑證基底網址</translation>
@@ -8516,6 +8546,7 @@
 <translation id="935854577147268200">Smart Lock 手機已變更,請輸入你的密碼以更新 Smart Lock,這樣下次手機就會為你的 <ph name="DEVICE_TYPE" /> 解鎖。你可以在「設定」中停用 Smart Lock</translation>
 <translation id="936646668635477464">攝影機和麥克風</translation>
 <translation id="936801553271523408">系統診斷資料</translation>
+<translation id="937053962468712792">要從 <ph name="PRIMARY_EMAIL" /> 移除 <ph name="DEVICE" /> 嗎?</translation>
 <translation id="93766956588638423">修復擴充功能</translation>
 <translation id="938568644810664664">試著詢問「Ok Google,這是什麼歌?」或「Ok Google,螢幕上顯示的是什麼?」</translation>
 <translation id="938623846785894166">不常見的檔案</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index fb928df6..4745cc52 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -8,12 +8,14 @@
 <translation id="1005274289863221750">Sebenzisa imakrofoni nekhamela yakho</translation>
 <translation id="1005333234656240382">Nika amandla ukulungisa amaphutha kwe-ADB?</translation>
 <translation id="1006873397406093306">Lesi sandiso singafunda siphinde siguqule idatha yakho kumasayithi. Ungalawula ukuthi imaphi amasayithi isandiso esingafinyelela kuwo.</translation>
+<translation id="1007057452468855774">Vula i-Google Play Store</translation>
 <translation id="1008186147501209563">Thumela amabhukhimakhi</translation>
 <translation id="1008557486741366299">Hhayi manje</translation>
 <translation id="1009476156254802388">Indawo ye-<ph name="WEB_DRIVE" /></translation>
 <translation id="1009663062402466586">Izilawuli zegeyimu manje seziyatholakala</translation>
 <translation id="1010498023906173788">Le thebhu ixhunywe kumbobo ye-serial.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Ikhasi aliphenduli}one{Amakhasi akaphenduli}other{Amakhasi akaphenduli}}</translation>
+<translation id="1011003645819296594">Amadivayisi alondoloziwe</translation>
 <translation id="1011355516189274711">Ivolumu yokuguqula-umbhalo-ube-inkulumo</translation>
 <translation id="1012794136286421601">Amadokhumenti wakho, Amashidi, Amaslayidi,  namafayela wemidwebo ayavumelaniswa. Vula uhlelo lokusebenza le-Google Drayivu ukuze ufinyelele kuwo uku-inthanethi noma okungaxhunyiwe ku-inthanethi.</translation>
 <translation id="1012876632442809908">Idivayisi ye-USB-C (imbobo ephambili)</translation>
@@ -495,6 +497,7 @@
 <translation id="1470350905258700113">Sebenzisa le divayisi</translation>
 <translation id="1470946456740188591">Ukuze uvula noma uvale isiphequluli se-caret, sebenzisa isinqamuleli se-Ctrl+Search+7</translation>
 <translation id="1472675084647422956">Bonisa okuningi</translation>
+<translation id="1473223074251193484">Setha Ukulungiselelwa Kokusebenzisa Ifoni Njengemodemu</translation>
 <translation id="1474785664565228650">Ushintsho kusethingi ye-microphone ludinga ukuthi i-Parallels Desktop iqalise kabusha. Qala kabusha i-Parallels Desktop ukuze uqhubeke.</translation>
 <translation id="1474893630593443211">Ukulawula okwengeziwe ngokuphathelene nezikhangiso ozibonayo</translation>
 <translation id="1475502736924165259">Unezitifiketi kufayela elingalingani nanoma iziphi ezinye izigaba</translation>
@@ -1124,6 +1127,7 @@
 <translation id="2044014337866019681">Sicela uqiniseke ukuthi uqinisekisa i-<ph name="ACCOUNT" /> ukuze uvule iseshini.</translation>
 <translation id="204497730941176055">Igama lesifanekiso lesitifiketi se-Microsoft</translation>
 <translation id="2045117674524495717">Umsizi wesinqamuleli sekhibhodi</translation>
+<translation id="2045211794962848221">Ngeke usawubona futhi lo myalezo oqondile</translation>
 <translation id="2045969484888636535">Qhubeka uvimbele amakhukhi</translation>
 <translation id="204622017488417136">Idivayisi yakho izobuyiselwa kunguqulo efakwe ngaphambilini ye-Chrome. Wonke ama-akhawunti womsebenzisi nedatha yendawo azosuswa. Lokhu akukwazi ukuhlehliswa.</translation>
 <translation id="2046702855113914483">I-Ramen</translation>
@@ -3811,6 +3815,7 @@
 <translation id="4594577641390224176">Ufuna ikhasi elimayelana nesistimu? Vakashela</translation>
 <translation id="4595560905247879544">Izinhlelo zokusebenza nezandiso zingashintshwa kuphela umphathi (<ph name="CUSTODIAN_NAME" />).</translation>
 <translation id="4596295440756783523">Unezitifiketi kufayela ezikhomba lawa maseva</translation>
+<translation id="4598345735110653698">Phatha okhiye bokudlula</translation>
 <translation id="4598556348158889687">Ukuphathwa kwesitoreji</translation>
 <translation id="4598776695426288251">I-Wi-Fi itholakala ngamadivayisi amaningi</translation>
 <translation id="4601426376352205922">Maka njengokungafundiwe</translation>
@@ -4036,6 +4041,7 @@
 <translation id="4823894915586516138">Le phinikhodi noma iphasiwedi ivikela idatha yakho kule <ph name="DEVICE_TYPE" />, kufaka phakathi noma uluphi ulwazi olufinyelelayo kusuka efonini yakho</translation>
 <translation id="4824037980212326045">Yenza ikhophi yasenqolobaneni futhi ubuyisele i-Linux</translation>
 <translation id="4824958205181053313">Khansela ukuvumelanisa?</translation>
+<translation id="4825532258163983651">Ayikwazi ukusula ukhiye wokudlula</translation>
 <translation id="4827675678516992122">Ayikwazanga ukuxhuma</translation>
 <translation id="4827784381479890589">Ukuhlola ukupela okuthuthukisiwe kusiphequluli se-Chrome (umbhalo uthunyelwa ku-Google ngokuphakanyiswa kwesipelingi)</translation>
 <translation id="4827904420700932487">Dala ikhodi ye-QR yalo mfanekiso</translation>
@@ -4298,6 +4304,7 @@
 <translation id="5087249366037322692">Kungezwe inkampani yangaphandle</translation>
 <translation id="5087580092889165836">Engeza ikhadi</translation>
 <translation id="5088534251099454936">I-PKCS #1 SHA-512 enokubethela kwe-RSA</translation>
+<translation id="5089763948477033443">Isibambo Sokushintsha Usayizi Sephaneli Eseceleni</translation>
 <translation id="5090637338841444533">Ayivumelekile ukulandelela indawo yekhamera yakho</translation>
 <translation id="5093569275467863761">I-Subframe Yenqolobane Yasemuva-Phambili ye-Incognito: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094176498302660097">Ungavula futhi uhlele amafayela asekelwayo ngale-app kusukela ku-app Yamafayela noma amanye ama-app. Ukuze ulawule ukuthi yimaphi amafayela avula le-app ngokuzenzakalelayo, <ph name="BEGIN_LINK" />funda indlela yokusetha ama-app azenzakalelayo kudivayisi yakho<ph name="END_LINK" />.</translation>
@@ -4463,6 +4470,7 @@
 <translation id="5258992782919386492">Faka kule divayisi</translation>
 <translation id="5260334392110301220">Ama-Smart Quotes</translation>
 <translation id="5260508466980570042">Uxolo, i-imeyili yakho noma iphasiwedi ayikwazanga ukuqinisekiswa. Sicela uzame futhi.</translation>
+<translation id="5260958083445173099">Amawebhusayithi azobonisa okuqukethwe ngezilimi zakho ezincanyelwayo, uma kunokwenzeka</translation>
 <translation id="5261683757250193089">Buka kusitolo sewebhu</translation>
 <translation id="5262178194499261222">Susa iphasiwedi</translation>
 <translation id="5262784498883614021">Xhumeka ngokuzenzakalela kunethiwekhi</translation>
@@ -4505,6 +4513,7 @@
 <translation id="5294097441441645251">Kufanele kuqale ngohlamvu oluphansi noma i-underscore</translation>
 <translation id="5294618183559481278">I-<ph name="DEVICE_TYPE" /> yakho isebenzisa inzwa eyakhelwe ngaphakathu ukuthola abantu abaphambi kwedivayisi yakho. Yonke idatha icutshungulwa kudivayisi yakho ngokushesha bese iyasuswa. Idatha yenzwa ayilokothi ithunyelwe ku-Google. <ph name="LINK_BEGIN" />Funda kabanzi<ph name="LINK_END" /></translation>
 <translation id="5296350763804564124">Izwa impendulo ekhulunywayo ukuze usebenzise idivayisi yakho ngaphandle kokubheka isikrini. Impendulo ye-Braille iyatholakala ngedivayisi exhunyiwe.</translation>
+<translation id="5297005732522718715">Vuselela Ukulungiselelwa Kokusebenzisa Ifoni Njengemodemu</translation>
 <translation id="5297082477358294722">Iphasiwedi ilondoloziwe. Buka futhi uphathe amaphasiwedi ku-<ph name="SAVED_PASSWORDS_STORE" /> yakho.</translation>
 <translation id="5297946558563358707">Uma omunye umuntu ebheka isikrini sakho, bonisa isithonjana seso Lobumfihlo ezansi kwesokudla sesikrini sakho</translation>
 <translation id="5298219193514155779">Itimu idalwe ngu-</translation>
@@ -4675,6 +4684,7 @@
 <translation id="5466374726908360271">Nama&amp;thisela bese useshe i-“<ph name="SEARCH_TERMS" />”</translation>
 <translation id="5467207440419968613">Kuvinjiwe i-<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /></translation>
 <translation id="5468173180030470402">Ufuna ukwabelana kwefayela</translation>
+<translation id="5468330507528805311">Isimo Sokusebenzisa Ifoni Njengemodemu:</translation>
 <translation id="5468881191994555667">Khetha ifayela</translation>
 <translation id="5469852975082458401">Ungazulazula emakhasini nge-cursor yombhalo. Cindezela u-F7 ukuze uvale.</translation>
 <translation id="5470735824776589490">Ukuqala kabusha kuyadingeka ngaphambi kokuthi idivayisi yakho ingasethwa kabusha ngokuwasha kwamandla. <ph name="LINK_BEGIN" />Funda kabanzi<ph name="LINK_END" /></translation>
@@ -4827,7 +4837,6 @@
 <translation id="5601503069213153581">Iphinikhodi</translation>
 <translation id="5601823921345337195">Ayivumelekile ukuxhuma kumadivayisi e-MIDI</translation>
 <translation id="5602765853043467355">Sula amabhukhimakhi, umlando, amaphasiwedi, nokuningi kusuka kule divayisi</translation>
-<translation id="5605623530403479164">Ezinye izinjini zokusesha</translation>
 <translation id="5605758115928394442">Isaziso siye sathunyelwa kufoni yakho ukuze kuqinisekiswe ukuthi unguwe.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Lesi sandiso sivinjelwe}one{Lezi zandiso zivinjelwe}other{Lezi zandiso zivinjelwe}}</translation>
 <translation id="560834977503641186">Ukuxhumana ne-Wi-Fi, Funda kabanzi</translation>
@@ -4952,6 +4961,7 @@
 <translation id="5734362860645681824">Ezokuxhumana</translation>
 <translation id="5734697361979786483">Engeza ukwabelana kwefayela</translation>
 <translation id="5736796278325406685">Sicela ufake igama lomsebenzisi elivumelekile</translation>
+<translation id="5738093759615225354">Udinga lo khiye wokungena ukuze ungene ngemvume kwikhompyutha yakho</translation>
 <translation id="5739017626473506901">Ngena ngemvume ukuze usize u-<ph name="USER_NAME" /> angeze i-akhawunti yesikole</translation>
 <translation id="5739235828260127894">Ilinde ukuqinisekisa. <ph name="LINK_BEGIN" />Funda kabanzi<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Yinkulu kakhulu</translation>
@@ -5113,6 +5123,7 @@
 <translation id="589541317545606110">Sesha Ikhasi nge-<ph name="VISUAL_SEARCH_PROVIDER" /></translation>
 <translation id="5896436821193322561">Ungavumeli</translation>
 <translation id="5900186025777217044">Ukhiye oSmathi ushintshile</translation>
+<translation id="5900243355162006650">Ukulungiselelwa Kokusebenzisa Ifoni Njengemodemu:</translation>
 <translation id="5900302528761731119">Isithombe sephrofayela ye-Google</translation>
 <translation id="590036993063074298">Ifanisa Imininingwane Yekhwalithi</translation>
 <translation id="5901069264981746702">Idatha yakho yezigxivizo zeminwe igcinwe ngokuvikelekile futhi ayilokothi ishiye i-<ph name="DEVICE_TYPE" /> yakho. <ph name="LINK_BEGIN" />Funda kabanzi<ph name="LINK_END" /></translation>
@@ -5127,6 +5138,7 @@
 <translation id="5909379458939060601">Sula le phrofayela nedatha yopheqululo?</translation>
 <translation id="5910363049092958439">Londoloza isithombe njenge...</translation>
 <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ayixhunyiwe kwi-inthanethi</translation>
+<translation id="5911030830365207728">Google Translate</translation>
 <translation id="5911533659001334206">Isibuki sesinqamuleli</translation>
 <translation id="5914724413750400082">I-Modulus (<ph name="MODULUS_NUM_BITS" /> amabhithi):
   <ph name="MODULUS_HEX_DUMP" />
@@ -5416,6 +5428,7 @@
 <translation id="6196640612572343990">Vimba amakhukhi enkampani yangaphandle</translation>
 <translation id="6196854373336333322">Isandiso se-"<ph name="EXTENSION_NAME" />" sithathe ulawulo lwezilungiselelo zakho zommeleli, okusho ukuthi ingaguqula, iphule, noma ilalele kungafanele noma yini oyenza ku-inthanethi. Uma ungaqinisekile ngokuthi kungani lokhu kuguqulwa kwenzekile, kungenzeka ukuthi awukudingi.</translation>
 <translation id="6197128521826316819">Dala ikhodi ye-QR yaleli Khasi</translation>
+<translation id="6197223946499512637">Labo khiye bokudlula bagcinwe ku-Windows Hello kule khompyutha. Abalondolozwa ku-Google Account yakho.</translation>
 <translation id="6198252989419008588">Guqula iphinikhodi</translation>
 <translation id="6200047250927636406">Lahla ifayela</translation>
 <translation id="6200151268994853226">Phatha Isandiso</translation>
@@ -5713,6 +5726,7 @@
 <translation id="6482559668224714696">Isikhulisi sesikrini esidokhiwe</translation>
 <translation id="6483485061007832714">Vula ukulandwa</translation>
 <translation id="6483805311199035658">Ivula i-<ph name="FILE" />...</translation>
+<translation id="6486301003991593638">Ukuze uphathe okhiye bokudlula, sebenzisa uhlobo olusha lwe-Windows</translation>
 <translation id="6488384360522318064">Khetha ulimi</translation>
 <translation id="648927581764831596">Lutho olutholakalayo</translation>
 <translation id="6490471652906364588">Idivayisi ye-USB-C (imbobo engakwesokudla)</translation>
@@ -6297,6 +6311,7 @@
 <translation id="7029307918966275733">I-Crostini ayifakiwe. Sicela ufake i-Crostini ukuze ubuke amakhredithi.</translation>
 <translation id="7029809446516969842">Amaphasiwedi</translation>
 <translation id="7030304022046916278">Ithumela ama-URL Ekuphequluleni Okuphephile ukuze iwahlole</translation>
+<translation id="7030695672997239647">Chofoza kwesokudla kuthebhu bese ukhetha okuthi "Engeza Ithebhu Eqenjini" bese ukhetha "Iqembu Elisha"</translation>
 <translation id="7031608529463141342"><ph name="WINDOW_TITLE" /> - Imbobo ye-serial ixhunyiwe</translation>
 <translation id="7033616203784997570">Okokufaka kufanele okungenani kube nezinhlamvu ezingama-62</translation>
 <translation id="7034692021407794547">Umlawuli onamalungelo Wokuphatha Inkokhelo kufanele amukele kuqala Imigomo Yesevisi Yezingxenyekazi Zekhompuyutha ze-Google Meet esigabeni Sezingxenyekazi zekhompuyutha ze-Google Meet zekhonsoli Yomphathi.</translation>
@@ -7396,6 +7411,7 @@
 <translation id="8101987792947961127">Kudingeka i-Powerwash ekuqaliseni kabusha okulandelayo</translation>
 <translation id="81020759409809034">Endaweni</translation>
 <translation id="8102139037507939978">Susa Ulwazi Lwenkomba Olungokomuntu Siqu ku-system_logs.txt.</translation>
+<translation id="810362914482827094">Sesha okhiye bokudlula</translation>
 <translation id="8104088837833760645">Landa iphrofayela ye-eSIM</translation>
 <translation id="8105368624971345109">Vala</translation>
 <translation id="8107015733319732394">Ukufaka i-Google Play Isitolo ku-<ph name="DEVICE_TYPE" /> yakho. Lokhu kungathatha amaminithi ambalwa.</translation>
@@ -7842,6 +7858,7 @@
 <translation id="8557022314818157177">Qhubeka nokuthinta ukhiye wokuqinisekisa ubunikazi isigxivizo sakho somunwe size sithwetshulwe</translation>
 <translation id="8557180006508471423">Vula i-"Google Chrome" Kumasevisi Endawo ku-Mac yakho</translation>
 <translation id="8557856025359704738">Ukudawuniloda okulandelayo kungomhla ka-<ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+<translation id="8559858985063901027">Okhiye bokudlula</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Vula Konke Ewindini &amp;Elisha}=1{Vula ewindini &amp;elisha}one{Vula Konke ({COUNT}) &amp;Ewindini Elisha}other{Vula Konke ({COUNT}) &amp;Ewindini Elisha}}</translation>
 <translation id="8561206103590473338">Indlovu</translation>
 <translation id="8561565784790166472">Qhubeka ngokuqaphela</translation>
@@ -7968,6 +7985,7 @@
 <translation id="8677212948402625567">Goqa konke...</translation>
 <translation id="867767487203716855">Isibuyekezo esilandelayo</translation>
 <translation id="8677859815076891398">Awekho ama-albhamu. Dala i-albhamu <ph name="LINK_BEGIN" />Ezithombeni ze-Google<ph name="LINK_END" />.</translation>
+<translation id="8678378565142776698">Qala kabusha futhi uthole izibuyekezo ezizenzekelayo</translation>
 <translation id="8678538439778360739">Idatha ibethelwe ngomshwana wakho wokungena wokuvumelanisa ngo-<ph name="TIME" />Lokhu akubandakanyi izindlela zokukhokha namakheli kusuka ku-Google Pay.</translation>
 <translation id="8678582529642151449">Amathebhu awanciphi</translation>
 <translation id="8678933587484842200">Ungathanda ukuthi lolu hlelo lokusebenza luqalise kanjani?</translation>
@@ -8215,6 +8233,7 @@
 <translation id="8910987510378294980">Fihla uhlu lwedivayisi</translation>
 <translation id="8912362522468806198">I-Akhawunti ye-Google</translation>
 <translation id="8912810933860534797">Nika amandla ukuskena ngokuzenzakalela</translation>
+<translation id="8915307125957890427">Chofoza kwesokudla kuthebhu bese ukhetha okuthi "Engeza ithebhu eqenjini" bese ukhetha "Iqembu elisha"</translation>
 <translation id="8915370057835397490">Ilayisha isiphakamiso</translation>
 <translation id="8916476537757519021">I-Incognito Subframe: <ph name="SUBFRAME_SITE" /></translation>
 <translation id="8918637186205009138"><ph name="GIVEN_NAME" /> <ph name="DEVICE_TYPE" /></translation>
@@ -8288,6 +8307,7 @@
 <translation id="8986362086234534611">Khohlwa</translation>
 <translation id="8986494364107987395">Thumela ngokuzenzakalela izibalo zokusetshenziswa nemibiko yokuphahlazeka ku-Google</translation>
 <translation id="8987927404178983737">Inyanga</translation>
+<translation id="8989359959810288806">Vuselela Isimo Sokusebenzisa Ifoni Njengemodemu</translation>
 <translation id="8991520179165052608">Isayithi lingasebenzisa imakrofoni yakho</translation>
 <translation id="899384117894244799">Susa umsebenzisi okhawulelwe</translation>
 <translation id="899403249577094719">I-URL yesisekelo sesitifiketi se-Netscape</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 5ddc297..638f042 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -105,7 +105,7 @@
 
   # Android and ChromeOS don't support multiple browser processes, so they don't
   # employ ProcessSingleton.
-  if (is_android || is_chromeos_ash || is_chromeos_lacros) {
+  if (is_android || is_chromeos) {
     flags += [ "ENABLE_PROCESS_SINGLETON=0" ]
   } else {
     flags += [ "ENABLE_PROCESS_SINGLETON=1" ]
@@ -5289,6 +5289,7 @@
       deps += [
         "//ash/webui/demo_mode_app_ui",
         "//ash/webui/demo_mode_app_ui/mojom",
+        "//ash/webui/facial_ml_app_ui",
         "//ash/webui/sample_system_web_app_ui",
         "//ash/webui/sample_system_web_app_ui/mojom:shared",
         "//ash/webui/sample_system_web_app_ui/mojom:trusted",
diff --git a/chrome/browser/accessibility/accessibility_extension_api_chromeos.cc b/chrome/browser/accessibility/accessibility_extension_api_chromeos.cc
index 1a38920e..5013ca4f 100644
--- a/chrome/browser/accessibility/accessibility_extension_api_chromeos.cc
+++ b/chrome/browser/accessibility/accessibility_extension_api_chromeos.cc
@@ -864,6 +864,12 @@
 }
 
 ExtensionFunction::ResponseAction
+AccessibilityPrivateSilenceSpokenFeedbackFunction::Run() {
+  ash::AccessibilityController::Get()->SilenceSpokenFeedback();
+  return RespondNow(NoArguments());
+}
+
+ExtensionFunction::ResponseAction
 AccessibilityPrivateInstallPumpkinForDictationFunction::Run() {
   AccessibilityManager::Get()->InstallPumpkinForDictation(
       base::BindOnce(&AccessibilityPrivateInstallPumpkinForDictationFunction::
diff --git a/chrome/browser/accessibility/accessibility_extension_api_chromeos.h b/chrome/browser/accessibility/accessibility_extension_api_chromeos.h
index f1d63bc..2de9e2f 100644
--- a/chrome/browser/accessibility/accessibility_extension_api_chromeos.h
+++ b/chrome/browser/accessibility/accessibility_extension_api_chromeos.h
@@ -258,6 +258,15 @@
                              ACCESSIBILITY_PRIVATE_UPDATEDICTATIONBUBBLE)
 };
 
+// API function that silences ChromeVox.
+class AccessibilityPrivateSilenceSpokenFeedbackFunction
+    : public ExtensionFunction {
+  ~AccessibilityPrivateSilenceSpokenFeedbackFunction() override = default;
+  ResponseAction Run() override;
+  DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.silenceSpokenFeedback",
+                             ACCESSIBILITY_PRIVATE_SILENCESPOKENFEEDBACK)
+};
+
 // API function that initiates a Pumpkin download for Dictation.
 class AccessibilityPrivateInstallPumpkinForDictationFunction
     : public ExtensionFunction {
diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc
index ee2874f..a12b17b 100644
--- a/chrome/browser/android/tab_android.cc
+++ b/chrome/browser/android/tab_android.cc
@@ -20,6 +20,7 @@
 #include "base/trace_event/trace_event.h"
 #include "cc/layers/layer.h"
 #include "chrome/android/chrome_jni_headers/TabImpl_jni.h"
+#include "chrome/android/chrome_jni_headers/TabUtils_jni.h"
 #include "chrome/browser/android/background_tab_manager.h"
 #include "chrome/browser/android/compositor/tab_content_manager.h"
 #include "chrome/browser/android/metrics/uma_utils.h"
@@ -34,6 +35,7 @@
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/resource_coordinator/tab_load_tracker.h"
 #include "chrome/browser/sync/glue/synced_tab_delegate_android.h"
+#include "chrome/browser/tab/jni_headers/CriticalPersistedTabData_jni.h"
 #include "chrome/browser/tab_contents/tab_util.h"
 #include "chrome/browser/ui/android/context_menu_helper.h"
 #include "chrome/browser/ui/android/infobars/infobar_container_android.h"
@@ -175,6 +177,12 @@
   return Java_TabImpl_getLaunchType(env, weak_java_tab_.get(env));
 }
 
+int TabAndroid::GetUserAgent() const {
+  JNIEnv* env = base::android::AttachCurrentThread();
+  return Java_CriticalPersistedTabData_getUserAgent(env,
+                                                    weak_java_tab_.get(env));
+}
+
 bool TabAndroid::IsNativePage() const {
   JNIEnv* env = base::android::AttachCurrentThread();
   return Java_TabImpl_isNativePage(env, weak_java_tab_.get(env));
@@ -268,6 +276,12 @@
   return Java_TabImpl_isHidden(env, weak_java_tab_.get(env));
 }
 
+bool TabAndroid::isHardwareKeyboardAvailable(raw_ptr<TabAndroid> tab_android) {
+  JNIEnv* env = base::android::AttachCurrentThread();
+  return Java_TabUtils_isHardwareKeyboardAvailable(
+      env, tab_android->GetJavaObject());
+}
+
 void TabAndroid::AddObserver(Observer* observer) {
   observers_.AddObserver(observer);
 }
diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_android.h
index 7da3a97..0e219a0 100644
--- a/chrome/browser/android/tab_android.h
+++ b/chrome/browser/android/tab_android.h
@@ -84,6 +84,7 @@
   int GetAndroidId() const;
   bool IsNativePage() const;
   int GetLaunchType() const;
+  int GetUserAgent() const;
 
   // Return the tab title.
   std::u16string GetTitle() const;
@@ -118,6 +119,8 @@
   bool IsCustomTab();
   bool IsHidden();
 
+  static bool isHardwareKeyboardAvailable(raw_ptr<TabAndroid> tab_android);
+
   // Observers -----------------------------------------------------------------
 
   // Adds/Removes an Observer.
diff --git a/chrome/browser/ash/accessibility/dictation_browsertest.cc b/chrome/browser/ash/accessibility/dictation_browsertest.cc
index fe17258..36413881 100644
--- a/chrome/browser/ash/accessibility/dictation_browsertest.cc
+++ b/chrome/browser/ash/accessibility/dictation_browsertest.cc
@@ -621,6 +621,26 @@
   WaitForCommitText(kFinalSpeechResult16);
 }
 
+IN_PROC_BROWSER_TEST_P(DictationTest, ChromeVoxSilencedWhenToggledOn) {
+  // Set up ChromeVox.
+  test::SpeechMonitor sm;
+  EXPECT_FALSE(GetManager()->IsSpokenFeedbackEnabled());
+  extensions::ExtensionHostTestHelper host_helper(
+      browser()->profile(), extension_misc::kChromeVoxExtensionId);
+  EnableChromeVox();
+  host_helper.WaitForHostCompletedFirstLoad();
+  EXPECT_TRUE(GetManager()->IsSpokenFeedbackEnabled());
+
+  // Not yet forced to stop.
+  EXPECT_EQ(0, sm.stop_count());
+
+  ToggleDictationWithKeystroke();
+  WaitForRecognitionStarted();
+
+  // Assert ChromeVox was asked to stop speaking at the toggle.
+  EXPECT_EQ(1, sm.stop_count());
+}
+
 IN_PROC_BROWSER_TEST_P(DictationTest, EntersInterimSpeechWhenToggledOff) {
   InstallMockInputContextHandler();
 
diff --git a/chrome/browser/ash/crosapi/network_settings_translation_unittest.cc b/chrome/browser/ash/crosapi/network_settings_translation_unittest.cc
index 55101de..e0fa8aba 100644
--- a/chrome/browser/ash/crosapi/network_settings_translation_unittest.cc
+++ b/chrome/browser/ash/crosapi/network_settings_translation_unittest.cc
@@ -160,23 +160,53 @@
       crosapi::mojom::ProxyLocation::New();
   location->host = "proxy1";
   location->port = 80;
+  location->scheme = crosapi::mojom::ProxyLocation::Scheme::kHttp;
   manual->http_proxies.push_back(location.Clone());
   location->host = "proxy2";
   location->port = 80;
+  location->scheme = crosapi::mojom::ProxyLocation::Scheme::kHttps;
+  manual->http_proxies.push_back(location.Clone());
+  location->host = "proxy3";
+  location->port = 83;
+  location->scheme = crosapi::mojom::ProxyLocation::Scheme::kUnknown;
+  manual->http_proxies.push_back(location.Clone());
+  location->host = "proxy4";
+  location->port = 84;
+  location->scheme = crosapi::mojom::ProxyLocation::Scheme::kInvalid;
+  manual->http_proxies.push_back(location.Clone());
+  location->host = "proxy5";
+  location->port = 85;
+  location->scheme = crosapi::mojom::ProxyLocation::Scheme::kDirect;
+  manual->http_proxies.push_back(location.Clone());
+  location->host = "proxy6";
+  location->port = 86;
+  location->scheme = crosapi::mojom::ProxyLocation::Scheme::kSocks5;
+  manual->http_proxies.push_back(location.Clone());
+  location->host = "proxy7";
+  location->port = 87;
+  location->scheme = crosapi::mojom::ProxyLocation::Scheme::kQuic;
   manual->http_proxies.push_back(location.Clone());
   location->host = "secure_proxy";
   location->port = 81;
+  location->scheme = crosapi::mojom::ProxyLocation::Scheme::kHttps;
   manual->secure_http_proxies.push_back(location.Clone());
   location->host = "socks_proxy";
   location->port = 82;
+  location->scheme = crosapi::mojom::ProxyLocation::Scheme::kSocks4;
   manual->socks_proxies.push_back(std::move(location));
   manual->exclude_domains = {"localhost", "google.com"};
+
   ptr->proxy_settings =
       crosapi::mojom::ProxySettings::NewManual(std::move(manual));
-  EXPECT_EQ(CrosapiProxyToProxyConfig(std::move(ptr)).GetDictionary(),
-            GetManualProxyConfig("http=proxy1:80;http=proxy2:80;https=secure_"
-                                 "proxy:81;socks=socks_proxy:82",
-                                 /*bypass_list=*/"localhost;google.com"));
+  EXPECT_EQ(
+      CrosapiProxyToProxyConfig(std::move(ptr)).GetDictionary(),
+      GetManualProxyConfig("http=http://proxy1:80;http=https://proxy2:80;"
+                           "http=http://proxy3:83;http=invalid://proxy4:84;"
+                           "http=direct://proxy5:85;http=socks5://proxy6:86;"
+                           "http=quic-transport://proxy7:87;"
+                           "https=https://secure_proxy:81;"
+                           "socks=socks://socks_proxy:82",
+                           /*bypass_list=*/"localhost;google.com"));
 }
 
 }  // namespace crosapi
diff --git a/chrome/browser/ash/crosapi/translate_crosapi_to_proxy_config.cc b/chrome/browser/ash/crosapi/translate_crosapi_to_proxy_config.cc
index c2ce357..c09efd10 100644
--- a/chrome/browser/ash/crosapi/translate_crosapi_to_proxy_config.cc
+++ b/chrome/browser/ash/crosapi/translate_crosapi_to_proxy_config.cc
@@ -14,28 +14,71 @@
 
 namespace {
 
-// While "socks" is not a URL scheme, it is given in the same spot in the proxy
-// server specifier strings.
+// Some strings are not URL schemes, but they are given in the same spot in
+// the proxy server specifier strings. So we return other strings in that
+// case.
+constexpr char kInvalidScheme[] = "invalid";
+constexpr char kDirectScheme[] = "direct";
 constexpr char kSocksScheme[] = "socks";
+constexpr char kSocks5Scheme[] = "socks5";
 
-// See //net/docs/proxy.md for translation rules.
+// Format the proxy url. The request scheme is the scheme the request to the
+// actual web server is using. The proxy scheme is the scheme the proxy is using
+// to receive requests. For example a proxy receiving its request through http
+// can forward requests going to an https server.
+std::string FormatProxyUri(const char* request_scheme,
+                           const crosapi::mojom::ProxyLocationPtr& proxy) {
+  const char* proxy_scheme_string = url::kHttpScheme;
+
+  switch (proxy->scheme) {
+    // We map kUnknown to HTTP because this will make the proxy setting work for
+    // most deployments with older ASH browser versions which do not support
+    // sending the ProxyLocation::Scheme yet, as HTTP is the most commonly used
+    // scheme for communicating with a HTTP proxy server.
+    case crosapi::mojom::ProxyLocation::Scheme::kUnknown:
+      proxy_scheme_string = url::kHttpScheme;
+      break;
+    case crosapi::mojom::ProxyLocation::Scheme::kInvalid:
+      proxy_scheme_string = kInvalidScheme;
+      break;
+    case crosapi::mojom::ProxyLocation::Scheme::kDirect:
+      proxy_scheme_string = kDirectScheme;
+      break;
+    case crosapi::mojom::ProxyLocation::Scheme::kHttp:
+      proxy_scheme_string = url::kHttpScheme;
+      break;
+    case crosapi::mojom::ProxyLocation::Scheme::kSocks4:
+      proxy_scheme_string = kSocksScheme;
+      break;
+    case crosapi::mojom::ProxyLocation::Scheme::kSocks5:
+      proxy_scheme_string = kSocks5Scheme;
+      break;
+    case crosapi::mojom::ProxyLocation::Scheme::kHttps:
+      proxy_scheme_string = url::kHttpsScheme;
+      break;
+    case crosapi::mojom::ProxyLocation::Scheme::kQuic:
+      proxy_scheme_string = url::kQuicTransportScheme;
+      break;
+  }
+
+  return base::StringPrintf("%s=%s://%s:%d", request_scheme,
+                            proxy_scheme_string, proxy->host.c_str(),
+                            proxy->port);
+}
+
+// See //net/docs/proxy.md and net::ProxyConfig::ProxyRules::ParseFromString()
+// for translation rules.
 base::Value TranslateManualProxySettings(
     crosapi::mojom::ProxySettingsManualPtr proxy_settings) {
   std::vector<std::string> proxy_server_specs;
-  const std::string kProxyFormat = "%s=%s:%d";
   for (auto const& proxy : proxy_settings->http_proxies) {
-    proxy_server_specs.push_back(
-        base::StringPrintf(kProxyFormat.c_str(), url::kHttpScheme,
-                           proxy->host.c_str(), proxy->port));
+    proxy_server_specs.push_back(FormatProxyUri(url::kHttpScheme, proxy));
   }
   for (auto const& proxy : proxy_settings->secure_http_proxies) {
-    proxy_server_specs.push_back(
-        base::StringPrintf(kProxyFormat.c_str(), url::kHttpsScheme,
-                           proxy->host.c_str(), proxy->port));
+    proxy_server_specs.push_back(FormatProxyUri(url::kHttpsScheme, proxy));
   }
   for (auto const& proxy : proxy_settings->socks_proxies) {
-    proxy_server_specs.push_back(base::StringPrintf(
-        kProxyFormat.c_str(), kSocksScheme, proxy->host.c_str(), proxy->port));
+    proxy_server_specs.push_back(FormatProxyUri(kSocksScheme, proxy));
   }
 
   if (proxy_server_specs.empty()) {
diff --git a/chrome/browser/ash/crosapi/translate_proxy_config_to_crosapi.cc b/chrome/browser/ash/crosapi/translate_proxy_config_to_crosapi.cc
index dbed595..f32f770 100644
--- a/chrome/browser/ash/crosapi/translate_proxy_config_to_crosapi.cc
+++ b/chrome/browser/ash/crosapi/translate_proxy_config_to_crosapi.cc
@@ -16,6 +16,28 @@
 
 namespace {
 
+crosapi::mojom::ProxyLocation::Scheme NetSchemeToCrosapiScheme(
+    net::ProxyServer::Scheme in) {
+  switch (in) {
+    case net::ProxyServer::Scheme::SCHEME_INVALID:
+      return crosapi::mojom::ProxyLocation::Scheme::kInvalid;
+    case net::ProxyServer::Scheme::SCHEME_DIRECT:
+      return crosapi::mojom::ProxyLocation::Scheme::kDirect;
+    case net::ProxyServer::Scheme::SCHEME_HTTP:
+      return crosapi::mojom::ProxyLocation::Scheme::kHttp;
+    case net::ProxyServer::Scheme::SCHEME_SOCKS4:
+      return crosapi::mojom::ProxyLocation::Scheme::kSocks4;
+    case net::ProxyServer::Scheme::SCHEME_SOCKS5:
+      return crosapi::mojom::ProxyLocation::Scheme::kSocks5;
+    case net::ProxyServer::Scheme::SCHEME_HTTPS:
+      return crosapi::mojom::ProxyLocation::Scheme::kHttps;
+    case net::ProxyServer::Scheme::SCHEME_QUIC:
+      return crosapi::mojom::ProxyLocation::Scheme::kQuic;
+  }
+
+  return crosapi::mojom::ProxyLocation::Scheme::kUnknown;
+}
+
 std::vector<crosapi::mojom::ProxyLocationPtr> TranslateProxyLocations(
     const net::ProxyList& proxy_list) {
   std::vector<net::ProxyServer> proxies = proxy_list.GetAll();
@@ -25,6 +47,7 @@
     proxy_ptr = crosapi::mojom::ProxyLocation::New();
     proxy_ptr->host = proxy.host_port_pair().host();
     proxy_ptr->port = proxy.host_port_pair().port();
+    proxy_ptr->scheme = NetSchemeToCrosapiScheme(proxy.scheme());
     proxy_ptr_list.push_back(std::move(proxy_ptr));
   }
   return proxy_ptr_list;
diff --git a/chrome/browser/ash/login/auth/cryptohome_authenticator_unittest.cc b/chrome/browser/ash/login/auth/cryptohome_authenticator_unittest.cc
index 53e7823..bab62f7 100644
--- a/chrome/browser/ash/login/auth/cryptohome_authenticator_unittest.cc
+++ b/chrome/browser/ash/login/auth/cryptohome_authenticator_unittest.cc
@@ -9,6 +9,7 @@
 #include <utility>
 #include <vector>
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/cryptohome/cryptohome_parameters.h"
 #include "ash/components/cryptohome/cryptohome_util.h"
 #include "ash/components/cryptohome/system_salt_getter.h"
@@ -58,10 +59,11 @@
 namespace ash {
 namespace {
 
+using ::cryptohome::KeyLabel;
+using ::testing::_;
 using ::testing::Invoke;
 using ::testing::Return;
 using ::testing::WithArg;
-using ::testing::_;
 
 // A fake sanitized username used for testing.
 constexpr char kFakeSanitizedUsername[] = "01234567890ABC";
@@ -373,7 +375,7 @@
   void ExpectGetKeyDataExCall(std::unique_ptr<int64_t> key_type,
                               std::unique_ptr<std::string> salt) {
     auto key_definition = cryptohome::KeyDefinition::CreateForPassword(
-        std::string() /* secret */, kCryptohomeGaiaKeyLabel,
+        std::string() /* secret */, KeyLabel(kCryptohomeGaiaKeyLabel),
         cryptohome::PRIV_DEFAULT);
     key_definition.revision = 1;
     if (key_type) {
diff --git a/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc b/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc
index ecae569..206e481 100644
--- a/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc
+++ b/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc
@@ -782,7 +782,9 @@
 }
 
 // TODO(crbug.com/1150349): Flaky on ChromeOS ASAN.
-#if defined(ADDRESS_SANITIZER)
+// TODO(crbug.com/1350105,crbug.com/1341234,crbug.com/1350117): Flaky on
+// ubuntu and chromeos
+#if defined(ADDRESS_SANITIZER) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
 #define MAYBE_BackOnTermsScreen DISABLED_BackOnTermsScreen
 #else
 #define MAYBE_BackOnTermsScreen BackOnTermsScreen
@@ -807,7 +809,7 @@
     OobeScreenWaiter(ArcTermsOfServiceScreenView::kScreenId).Wait();
     test::OobeJS().ClickOnPath(kArcTosBackButton);
   }
-  test::WaitForNetworkSelectionScreen();
+  OobeScreenWaiter(DemoPreferencesScreenView::kScreenId).Wait();
 }
 
 // TODO(crbug.com/1150349): Flaky on ChromeOS ASAN.
diff --git a/chrome/browser/ash/login/easy_unlock/easy_unlock_create_keys_operation.cc b/chrome/browser/ash/login/easy_unlock/easy_unlock_create_keys_operation.cc
index 48682f54..a06ed34 100644
--- a/chrome/browser/ash/login/easy_unlock/easy_unlock_create_keys_operation.cc
+++ b/chrome/browser/ash/login/easy_unlock/easy_unlock_create_keys_operation.cc
@@ -9,6 +9,7 @@
 #include <memory>
 #include <string>
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/cryptohome/cryptohome_util.h"
 #include "ash/components/cryptohome/system_salt_getter.h"
 #include "ash/components/cryptohome/userdataauth_util.h"
@@ -28,6 +29,8 @@
 #include "google_apis/gaia/gaia_auth_util.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
 
+using cryptohome::KeyLabel;
+
 namespace ash {
 namespace {
 
@@ -315,7 +318,7 @@
 
   EasyUnlockDeviceKeyData* device = &devices_[index];
   auto key_def = cryptohome::KeyDefinition::CreateForPassword(
-      user_key.GetSecret(), EasyUnlockKeyManager::GetKeyLabel(index),
+      user_key.GetSecret(), KeyLabel(EasyUnlockKeyManager::GetKeyLabel(index)),
       kEasyUnlockKeyPrivileges);
   key_def.revision = kEasyUnlockKeyRevision;
   key_def.provider_data.push_back(cryptohome::KeyDefinition::ProviderData(
@@ -349,8 +352,7 @@
   // Create the authorization request with an empty label, in order to act as a
   // wildcard. See https://crbug.com/1002336 for more.
   *request.mutable_authorization_request() =
-      cryptohome::CreateAuthorizationRequest(std::string() /* label */,
-                                             auth_key->GetSecret());
+      cryptohome::CreateAuthorizationRequest(KeyLabel(), auth_key->GetSecret());
   *request.mutable_account_id() = CreateAccountIdentifierFromIdentification(
       cryptohome::Identification(user_context_.GetAccountId()));
   UserDataAuthClient::Get()->AddKey(
diff --git a/chrome/browser/ash/login/easy_unlock/easy_unlock_remove_keys_operation.cc b/chrome/browser/ash/login/easy_unlock/easy_unlock_remove_keys_operation.cc
index 89a5d15c..a0bc5f99 100644
--- a/chrome/browser/ash/login/easy_unlock/easy_unlock_remove_keys_operation.cc
+++ b/chrome/browser/ash/login/easy_unlock/easy_unlock_remove_keys_operation.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/ash/login/easy_unlock/easy_unlock_remove_keys_operation.h"
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/cryptohome/cryptohome_util.h"
 #include "ash/components/cryptohome/system_salt_getter.h"
 #include "ash/components/cryptohome/userdataauth_util.h"
@@ -13,6 +14,8 @@
 #include "chromeos/ash/components/dbus/userdataauth/userdataauth_client.h"
 #include "google_apis/gaia/gaia_auth_util.h"
 
+using cryptohome::KeyLabel;
+
 namespace ash {
 
 EasyUnlockRemoveKeysOperation::EasyUnlockRemoveKeysOperation(
@@ -57,7 +60,7 @@
   *request.mutable_account_id() = CreateAccountIdentifierFromIdentification(
       cryptohome::Identification((user_context_.GetAccountId())));
   *request.mutable_authorization_request() =
-      cryptohome::CreateAuthorizationRequest(auth_key->GetLabel(),
+      cryptohome::CreateAuthorizationRequest(KeyLabel(auth_key->GetLabel()),
                                              auth_key->GetSecret());
   UserDataAuthClient::Get()->RemoveKey(
       request, base::BindOnce(&EasyUnlockRemoveKeysOperation::OnKeyRemoved,
diff --git a/chrome/browser/ash/login/existing_user_controller.cc b/chrome/browser/ash/login/existing_user_controller.cc
index 69fe1ddf..7d76642 100644
--- a/chrome/browser/ash/login/existing_user_controller.cc
+++ b/chrome/browser/ash/login/existing_user_controller.cc
@@ -857,7 +857,9 @@
 
   // If the hibernate service is supported, call it to initiate resume.
 #if BUILDFLAG(ENABLE_HIBERNATE)
-  if (features::IsHibernateEnabled()) {
+  if (features::IsHibernateEnabled() &&
+      !base::FeatureList::IsEnabled(
+          ash::features::kUseAuthsessionAuthentication)) {
     HibermanClient::Get()->WaitForServiceToBeAvailable(
         base::BindOnce(&ExistingUserController::OnHibernateServiceAvailable,
                        weak_factory_.GetWeakPtr(), user_context));
diff --git a/chrome/browser/ash/login/password_change_browsertest.cc b/chrome/browser/ash/login/password_change_browsertest.cc
index 755d4c9..d609ddda 100644
--- a/chrome/browser/ash/login/password_change_browsertest.cc
+++ b/chrome/browser/ash/login/password_change_browsertest.cc
@@ -18,9 +18,12 @@
 #include "base/auto_reset.h"
 #include "base/bind.h"
 #include "base/callback.h"
+#include "base/files/file_path.h"
+#include "base/files/file_util.h"
 #include "base/run_loop.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
+#include "base/threading/thread_restrictions.h"
 #include "chrome/browser/ash/login/existing_user_controller.h"
 #include "chrome/browser/ash/login/login_manager_test.h"
 #include "chrome/browser/ash/login/reauth_stats.h"
@@ -57,14 +60,16 @@
 #include "content/public/test/browser_test.h"
 #include "content/public/test/test_launcher.h"
 #include "content/public/test/test_utils.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace ash {
 
 namespace {
 
-const char kUserEmail[] = "test-user@gmail.com";
-const char kGaiaID[] = "111111";
-const char kTokenHandle[] = "test_token_handle";
+constexpr char kUserEmail[] = "test-user@gmail.com";
+constexpr char kGaiaID[] = "111111";
+constexpr char kTokenHandle[] = "test_token_handle";
+constexpr char kTestingFileName[] = "testing-file.txt";
 
 const test::UIPath kPasswordStep = {"gaia-password-changed", "passwordStep"};
 const test::UIPath kOldPasswordInput = {"gaia-password-changed",
@@ -178,6 +183,7 @@
     auto account_identifier =
         cryptohome::CreateAccountIdentifierFromAccountId(test_account_id_);
     FakeUserDataAuthClient::TestApi::Get()->AddExistingUser(account_identifier);
+    CreateTestingFile();
 
     // Hash the password, as only hashed passwords appear at the userdataauth
     // level.
@@ -194,6 +200,11 @@
                                                    cryptohome_key);
   }
 
+  bool TestingFileExists() const {
+    base::ScopedAllowBlockingForTesting allow_blocking;
+    return base::PathExists(GetTestingFilePath());
+  }
+
   void SetGaiaScreenCredentials(const AccountId& account_id,
                                 const std::string& password) {
     LoginDisplayHost::default_host()
@@ -204,6 +215,24 @@
   }
 
  private:
+  base::FilePath GetTestingFilePath() const {
+    auto account_identifier =
+        cryptohome::CreateAccountIdentifierFromAccountId(test_account_id_);
+    absl::optional<base::FilePath> profile_dir =
+        FakeUserDataAuthClient::TestApi::Get()->GetUserProfileDir(
+            account_identifier);
+    if (!profile_dir) {
+      ADD_FAILURE() << "Failed to get user profile dir";
+      return base::FilePath();
+    }
+    return profile_dir.value().AppendASCII(kTestingFileName);
+  }
+
+  void CreateTestingFile() {
+    base::ScopedAllowBlockingForTesting allow_blocking;
+    EXPECT_TRUE(base::WriteFile(GetTestingFilePath(), /*data=*/""));
+  }
+
   base::test::ScopedFeatureList scoped_feature_list_;
   FakeGaiaMixin fake_gaia_{&mixin_host_};
 };
@@ -228,6 +257,7 @@
   OobeWindowVisibilityWaiter(false).Wait();
 
   login_mixin_.WaitForActiveSession();
+  EXPECT_TRUE(TestingFileExists());
 }
 
 IN_PROC_BROWSER_TEST_F(PasswordChangeStubAuthTest, SubmitOnEnterKeyPressed) {
@@ -280,6 +310,7 @@
   // User session should start, and whole OOBE screen is expected to be hidden.
   OobeWindowVisibilityWaiter(false).Wait();
   login_mixin_.WaitForActiveSession();
+  EXPECT_TRUE(TestingFileExists());
 }
 
 IN_PROC_BROWSER_TEST_P(PasswordChangeTest, SkipDataRecovery) {
@@ -304,6 +335,7 @@
   OobeWindowVisibilityWaiter(false).Wait();
 
   login_mixin_.WaitForActiveSession();
+  EXPECT_FALSE(TestingFileExists());
 }
 
 IN_PROC_BROWSER_TEST_F(PasswordChangeStubAuthTest,
diff --git a/chrome/browser/ash/login/quick_unlock/pin_storage_cryptohome.cc b/chrome/browser/ash/login/quick_unlock/pin_storage_cryptohome.cc
index ffe610f..9a1148c 100644
--- a/chrome/browser/ash/login/quick_unlock/pin_storage_cryptohome.cc
+++ b/chrome/browser/ash/login/quick_unlock/pin_storage_cryptohome.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/ash/login/quick_unlock/pin_storage_cryptohome.h"
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/cryptohome/cryptohome_parameters.h"
 #include "ash/components/cryptohome/cryptohome_util.h"
 #include "ash/components/cryptohome/system_salt_getter.h"
@@ -22,6 +23,8 @@
 #include "chromeos/ash/components/dbus/userdataauth/userdataauth_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 
+using cryptohome::KeyLabel;
+
 namespace ash::quick_unlock {
 namespace {
 
@@ -46,7 +49,7 @@
     const std::vector<cryptohome::KeyDefinition>& key_definitions =
         user_data_auth::GetKeyDataReplyToKeyDefinitions(reply);
     for (const cryptohome::KeyDefinition& definition : key_definitions) {
-      if (definition.label == kCryptohomePinLabel) {
+      if (definition.label.value() == kCryptohomePinLabel) {
         DCHECK(definition.policy.low_entropy_credential);
         std::move(callback).Run(!require_unlocked ||
                                 !definition.policy.auth_locked);
@@ -205,8 +208,8 @@
 
   ::user_data_auth::AddKeyRequest request;
   const cryptohome::KeyDefinition key_def =
-      cryptohome::KeyDefinition::CreateForPassword(secret, kCryptohomePinLabel,
-                                                   cryptohome::PRIV_MIGRATE);
+      cryptohome::KeyDefinition::CreateForPassword(
+          secret, KeyLabel(kCryptohomePinLabel), cryptohome::PRIV_MIGRATE);
   cryptohome::KeyDefinitionToKey(key_def, request.mutable_key());
   request.mutable_key()
       ->mutable_data()
@@ -216,7 +219,8 @@
   *request.mutable_account_id() = CreateAccountIdentifierFromIdentification(
       cryptohome::Identification(user_context.GetAccountId()));
   *request.mutable_authorization_request() =
-      cryptohome::CreateAuthorizationRequest(key.GetLabel(), key.GetSecret());
+      cryptohome::CreateAuthorizationRequest(KeyLabel(key.GetLabel()),
+                                             key.GetSecret());
   UserDataAuthClient::Get()->AddKey(
       request,
       base::BindOnce(&OnCryptohomeCallComplete<::user_data_auth::AddKeyReply>,
@@ -240,7 +244,7 @@
       cryptohome::Identification(user_context.GetAccountId()));
   *request.mutable_authorization_request() =
       cryptohome::CreateAuthorizationRequest(
-          user_context.GetKey()->GetLabel(),
+          KeyLabel(user_context.GetKey()->GetLabel()),
           user_context.GetKey()->GetSecret());
   UserDataAuthClient::Get()->RemoveKey(
       request, base::BindOnce(
@@ -294,7 +298,8 @@
   *request.mutable_account_id() = CreateAccountIdentifierFromIdentification(
       cryptohome::Identification(account_id));
   *request.mutable_authorization_request() =
-      cryptohome::CreateAuthorizationRequest(kCryptohomePinLabel, secret);
+      cryptohome::CreateAuthorizationRequest(KeyLabel(kCryptohomePinLabel),
+                                             secret);
   if (purpose == Purpose::kWebAuthn) {
     request.set_unlock_webauthn_secret(true);
   }
diff --git a/chrome/browser/ash/login/quick_unlock/pin_storage_cryptohome_unittest.cc b/chrome/browser/ash/login/quick_unlock/pin_storage_cryptohome_unittest.cc
index ffe29ee..5fac29c1 100644
--- a/chrome/browser/ash/login/quick_unlock/pin_storage_cryptohome_unittest.cc
+++ b/chrome/browser/ash/login/quick_unlock/pin_storage_cryptohome_unittest.cc
@@ -6,6 +6,7 @@
 
 #include <vector>
 
+#include "ash/components/cryptohome/common_types.h"
 #include "ash/components/cryptohome/cryptohome_parameters.h"
 #include "ash/components/cryptohome/cryptohome_util.h"
 #include "ash/components/cryptohome/system_salt_getter.h"
@@ -24,8 +25,9 @@
 #include "content/public/test/browser_task_environment.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-namespace ash {
-namespace quick_unlock {
+using cryptohome::KeyLabel;
+
+namespace ash::quick_unlock {
 namespace {
 
 constexpr char kDummyPin[] = "123456";
@@ -126,7 +128,8 @@
 
     const cryptohome::KeyDefinition key_def =
         cryptohome::KeyDefinition::CreateForPassword(
-            password, kCryptohomeGaiaKeyLabel, cryptohome::PRIV_MIGRATE);
+            password, KeyLabel(kCryptohomeGaiaKeyLabel),
+            cryptohome::PRIV_MIGRATE);
     cryptohome::KeyDefinitionToKey(key_def, request.mutable_key());
     *request.mutable_account_id() =
         cryptohome::CreateAccountIdentifierFromAccountId(test_account_id_);
@@ -149,8 +152,8 @@
     ::user_data_auth::AddKeyRequest request;
 
     const cryptohome::KeyDefinition key_def =
-        cryptohome::KeyDefinition::CreateForPassword(pin, kCryptohomePinLabel,
-                                                     cryptohome::PRIV_MIGRATE);
+        cryptohome::KeyDefinition::CreateForPassword(
+            pin, KeyLabel(kCryptohomePinLabel), cryptohome::PRIV_MIGRATE);
     cryptohome::KeyDefinitionToKey(key_def, request.mutable_key());
     request.mutable_key()
         ->mutable_data()
@@ -275,5 +278,4 @@
       FakeUserDataAuthClient::Get()->get_last_unlock_webauthn_secret());
 }
 
-}  // namespace quick_unlock
-}  // namespace ash
+}  // namespace ash::quick_unlock
diff --git a/chrome/browser/ash/login/session/user_session_initializer.cc b/chrome/browser/ash/login/session/user_session_initializer.cc
index 4a4e48c..017b37b 100644
--- a/chrome/browser/ash/login/session/user_session_initializer.cc
+++ b/chrome/browser/ash/login/session/user_session_initializer.cc
@@ -32,7 +32,6 @@
 #include "chrome/browser/ash/plugin_vm/plugin_vm_manager.h"
 #include "chrome/browser/ash/plugin_vm/plugin_vm_manager_factory.h"
 #include "chrome/browser/ash/policy/reporting/app_install_event_log_manager_wrapper.h"
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_manager_wrapper.h"
 #include "chrome/browser/ash/profiles/profile_helper.h"
 #include "chrome/browser/ash/settings/cros_settings.h"
 #include "chrome/browser/browser_process.h"
@@ -225,7 +224,6 @@
     // `ExtensionInstallEventLogManagerWrapper` manages their own lifetime and
     // self-destruct on logout.
     policy::AppInstallEventLogManagerWrapper::CreateForProfile(profile);
-    policy::ExtensionInstallEventLogManagerWrapper::CreateForProfile(profile);
   }
 
   arc::ArcServiceLauncher::Get()->OnPrimaryUserProfilePrepared(profile);
diff --git a/chrome/browser/ash/login/wizard_controller.cc b/chrome/browser/ash/login/wizard_controller.cc
index ce5c87be..e4adfd7 100644
--- a/chrome/browser/ash/login/wizard_controller.cc
+++ b/chrome/browser/ash/login/wizard_controller.cc
@@ -1766,7 +1766,7 @@
     case ArcTermsOfServiceScreen::Result::BACK:
       DCHECK(demo_setup_controller_);
       DCHECK(StartupUtils::IsEulaAccepted());
-      ShowNetworkScreen();
+      ShowDemoModePreferencesScreen();
       break;
   }
 }
diff --git a/chrome/browser/ash/login/wizard_controller_browsertest.cc b/chrome/browser/ash/login/wizard_controller_browsertest.cc
index bc3648a..126f6c6 100644
--- a/chrome/browser/ash/login/wizard_controller_browsertest.cc
+++ b/chrome/browser/ash/login/wizard_controller_browsertest.cc
@@ -2796,12 +2796,12 @@
   EXPECT_TRUE(DemoSetupController::IsOobeDemoSetupFlowInProgress());
 
   EXPECT_CALL(*mock_arc_terms_of_service_screen_, HideImpl()).Times(1);
-  EXPECT_CALL(*mock_network_screen_, ShowImpl()).Times(1);
+  EXPECT_CALL(*mock_demo_preferences_screen_, ShowImpl()).Times(1);
 
   mock_arc_terms_of_service_screen_->ExitScreen(
       ArcTermsOfServiceScreen::Result::BACK);
 
-  CheckCurrentScreen(NetworkScreenView::kScreenId);
+  CheckCurrentScreen(DemoPreferencesScreenView::kScreenId);
   EXPECT_TRUE(DemoSetupController::IsOobeDemoSetupFlowInProgress());
 }
 
diff --git a/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.cc b/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.cc
index 8dee14b2..e3bfc134 100644
--- a/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.cc
+++ b/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.cc
@@ -30,7 +30,6 @@
 #include "chrome/browser/ash/policy/login/wildcard_login_checker.h"
 #include "chrome/browser/ash/policy/remote_commands/user_commands_factory_ash.h"
 #include "chrome/browser/ash/policy/reporting/arc_app_install_event_log_uploader.h"
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/enterprise/reporting/report_scheduler_desktop.h"
 #include "chrome/browser/enterprise/reporting/reporting_delegate_factory_desktop.h"
@@ -275,8 +274,6 @@
 
   app_install_event_log_uploader_ =
       std::make_unique<ArcAppInstallEventLogUploader>(client(), profile_);
-  extension_install_event_log_uploader_ =
-      ExtensionInstallEventLogUploader::Create(profile_);
 }
 
 void UserCloudPolicyManagerAsh::OnAccessTokenAvailable(
@@ -343,15 +340,9 @@
   return app_install_event_log_uploader_.get();
 }
 
-ExtensionInstallEventLogUploader*
-UserCloudPolicyManagerAsh::GetExtensionInstallEventLogUploader() {
-  return extension_install_event_log_uploader_.get();
-}
-
 void UserCloudPolicyManagerAsh::Shutdown() {
   observed_profile_manager_.Reset();
   app_install_event_log_uploader_.reset();
-  extension_install_event_log_uploader_.reset();
   report_scheduler_.reset();
   if (client())
     client()->RemoveObserver(this);
diff --git a/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.h b/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.h
index 2b61e1fe..2ef65c0 100644
--- a/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.h
+++ b/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.h
@@ -49,7 +49,6 @@
 class ArcAppInstallEventLogUploader;
 class CloudExternalDataManager;
 class DeviceManagementService;
-class ExtensionInstallEventLogUploader;
 class PolicyOAuth2TokenFetcher;
 class RemoteCommandsInvalidator;
 
@@ -153,10 +152,6 @@
   // event logs to the policy server.
   ArcAppInstallEventLogUploader* GetAppInstallEventLogUploader();
 
-  // Return the ExtensionInstallEventLogUploader used to send extension install
-  // event logs to the policy server.
-  ExtensionInstallEventLogUploader* GetExtensionInstallEventLogUploader();
-
   // ConfigurationPolicyProvider:
   void Shutdown() override;
   bool IsInitializationComplete(PolicyDomain domain) const override;
@@ -271,10 +266,6 @@
   std::unique_ptr<ArcAppInstallEventLogUploader>
       app_install_event_log_uploader_;
 
-  // Helper used to send extension install event logs to the policy server.
-  std::unique_ptr<ExtensionInstallEventLogUploader>
-      extension_install_event_log_uploader_;
-
   // Scheduler used to report usage data to DM server periodically.
   std::unique_ptr<enterprise_reporting::ReportScheduler> report_scheduler_;
 
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log.cc b/chrome/browser/ash/policy/reporting/extension_install_event_log.cc
deleted file mode 100644
index 9532bd5..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log.cc
+++ /dev/null
@@ -1,27 +0,0 @@
-// 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.
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log.h"
-
-namespace em = enterprise_management;
-
-namespace policy {
-
-ExtensionInstallEventLog::ExtensionInstallEventLog(
-    const base::FilePath& file_name)
-    : InstallEventLog(file_name) {}
-
-ExtensionInstallEventLog::~ExtensionInstallEventLog() = default;
-
-void ExtensionInstallEventLog::Serialize(
-    em::ExtensionInstallReportRequest* report) {
-  report->Clear();
-  for (const auto& log : logs_) {
-    em::ExtensionInstallReport* const report_log =
-        report->add_extension_install_reports();
-    log.second->Serialize(report_log);
-  }
-}
-
-}  // namespace policy
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log.h b/chrome/browser/ash/policy/reporting/extension_install_event_log.h
deleted file mode 100644
index d9e1455..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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.
-
-#ifndef CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_H_
-#define CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_H_
-
-#include "chrome/browser/ash/policy/reporting/install_event_log.h"
-#include "chrome/browser/ash/policy/reporting/single_extension_install_event_log.h"
-#include "components/policy/proto/device_management_backend.pb.h"
-
-namespace base {
-class FilePath;
-}  // namespace base
-
-namespace policy {
-
-// An event log for extension installs.
-class ExtensionInstallEventLog
-    : public InstallEventLog<
-          enterprise_management::ExtensionInstallReportLogEvent,
-          SingleExtensionInstallEventLog> {
- public:
-  explicit ExtensionInstallEventLog(const base::FilePath& file_name);
-  ~ExtensionInstallEventLog();
-
-  // Serializes the log to a protobuf for upload to a server. Records which
-  // entries were serialized so that they may be cleared after successful
-  // upload.
-  void Serialize(enterprise_management::ExtensionInstallReportRequest* report);
-};
-
-}  // namespace policy
-
-#endif  // CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_H_
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_collector.cc b/chrome/browser/ash/policy/reporting/extension_install_event_log_collector.cc
deleted file mode 100644
index a4f6d3ec..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_collector.cc
+++ /dev/null
@@ -1,678 +0,0 @@
-// 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.
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_collector.h"
-
-#include "base/command_line.h"
-#include "base/time/time.h"
-#include "chrome/browser/ash/profiles/profile_helper.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/enterprise/reporting/extension_info.h"
-#include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/forced_extensions/force_installed_tracker.h"
-#include "chrome/common/pref_names.h"
-#include "chromeos/ash/components/network/network_handler.h"
-#include "chromeos/ash/components/network/network_state_handler.h"
-#include "components/policy/proto/device_management_backend.pb.h"
-#include "components/prefs/pref_service.h"
-#include "content/public/browser/network_service_instance.h"
-#include "extensions/browser/extension_system.h"
-#include "extensions/browser/install/sandboxed_unpacker_failure_reason.h"
-
-namespace em = enterprise_management;
-
-namespace policy {
-
-namespace {
-
-std::unique_ptr<em::ExtensionInstallReportLogEvent> CreateSessionChangeEvent(
-    em::ExtensionInstallReportLogEvent::SessionStateChangeType type) {
-  auto event = std::make_unique<em::ExtensionInstallReportLogEvent>();
-  event->set_event_type(
-      em::ExtensionInstallReportLogEvent::SESSION_STATE_CHANGE);
-  event->set_session_state_change_type(type);
-  return event;
-}
-
-// Helper method to convert InstallStageTracker::FailureReason to the failure
-// reason proto.
-em::ExtensionInstallReportLogEvent_FailureReason ConvertFailureReasonToProto(
-    extensions::InstallStageTracker::FailureReason failure_reason) {
-  switch (failure_reason) {
-    case extensions::InstallStageTracker::FailureReason::UNKNOWN:
-      return em::ExtensionInstallReportLogEvent::FAILURE_REASON_UNKNOWN;
-    case extensions::InstallStageTracker::FailureReason::INVALID_ID:
-      return em::ExtensionInstallReportLogEvent::INVALID_ID;
-    case extensions::InstallStageTracker::FailureReason::
-        MALFORMED_EXTENSION_SETTINGS:
-      return em::ExtensionInstallReportLogEvent::MALFORMED_EXTENSION_SETTINGS;
-    case extensions::InstallStageTracker::FailureReason::REPLACED_BY_ARC_APP:
-      return em::ExtensionInstallReportLogEvent::REPLACED_BY_ARC_APP;
-    case extensions::InstallStageTracker::FailureReason::
-        MALFORMED_EXTENSION_DICT:
-      return em::ExtensionInstallReportLogEvent::MALFORMED_EXTENSION_DICT;
-    case extensions::InstallStageTracker::FailureReason::
-        NOT_SUPPORTED_EXTENSION_DICT:
-      return em::ExtensionInstallReportLogEvent::NOT_SUPPORTED_EXTENSION_DICT;
-    case extensions::InstallStageTracker::FailureReason::
-        MALFORMED_EXTENSION_DICT_FILE_PATH:
-      return em::ExtensionInstallReportLogEvent::
-          MALFORMED_EXTENSION_DICT_FILE_PATH;
-    case extensions::InstallStageTracker::FailureReason::
-        MALFORMED_EXTENSION_DICT_VERSION:
-      return em::ExtensionInstallReportLogEvent::
-          MALFORMED_EXTENSION_DICT_VERSION;
-    case extensions::InstallStageTracker::FailureReason::
-        MALFORMED_EXTENSION_DICT_UPDATE_URL:
-      return em::ExtensionInstallReportLogEvent::
-          MALFORMED_EXTENSION_DICT_UPDATE_URL;
-    case extensions::InstallStageTracker::FailureReason::LOCALE_NOT_SUPPORTED:
-      return em::ExtensionInstallReportLogEvent::LOCALE_NOT_SUPPORTED;
-    case extensions::InstallStageTracker::FailureReason::
-        NOT_PERFORMING_NEW_INSTALL:
-      return em::ExtensionInstallReportLogEvent::NOT_PERFORMING_NEW_INSTALL;
-    case extensions::InstallStageTracker::FailureReason::TOO_OLD_PROFILE:
-      return em::ExtensionInstallReportLogEvent::TOO_OLD_PROFILE;
-    case extensions::InstallStageTracker::FailureReason::
-        DO_NOT_INSTALL_FOR_ENTERPRISE:
-      return em::ExtensionInstallReportLogEvent::DO_NOT_INSTALL_FOR_ENTERPRISE;
-    case extensions::InstallStageTracker::FailureReason::ALREADY_INSTALLED:
-      return em::ExtensionInstallReportLogEvent::ALREADY_INSTALLED;
-    case extensions::InstallStageTracker::FailureReason::CRX_FETCH_FAILED:
-      return em::ExtensionInstallReportLogEvent::CRX_FETCH_FAILED;
-    case extensions::InstallStageTracker::FailureReason::MANIFEST_FETCH_FAILED:
-      return em::ExtensionInstallReportLogEvent::MANIFEST_FETCH_FAILED;
-    case extensions::InstallStageTracker::FailureReason::MANIFEST_INVALID:
-      return em::ExtensionInstallReportLogEvent::MANIFEST_INVALID;
-    case extensions::InstallStageTracker::FailureReason::NO_UPDATE:
-      return em::ExtensionInstallReportLogEvent::NO_UPDATE;
-    case extensions::InstallStageTracker::FailureReason::
-        CRX_INSTALL_ERROR_DECLINED:
-      return em::ExtensionInstallReportLogEvent::CRX_INSTALL_ERROR_DECLINED;
-    case extensions::InstallStageTracker::FailureReason::
-        CRX_INSTALL_ERROR_SANDBOXED_UNPACKER_FAILURE:
-      return em::ExtensionInstallReportLogEvent::
-          CRX_INSTALL_ERROR_SANDBOXED_UNPACKER_FAILURE;
-    case extensions::InstallStageTracker::FailureReason::
-        CRX_INSTALL_ERROR_OTHER:
-      return em::ExtensionInstallReportLogEvent::CRX_INSTALL_ERROR_OTHER;
-    case extensions::InstallStageTracker::FailureReason::NO_UPDATE_URL:
-      return em::ExtensionInstallReportLogEvent::NO_UPDATE_URL;
-    case extensions::InstallStageTracker::FailureReason::PENDING_ADD_FAILED:
-      return em::ExtensionInstallReportLogEvent::PENDING_ADD_FAILED;
-    case extensions::InstallStageTracker::FailureReason::DOWNLOADER_ADD_FAILED:
-      return em::ExtensionInstallReportLogEvent::DOWNLOADER_ADD_FAILED;
-    case extensions::InstallStageTracker::FailureReason::IN_PROGRESS:
-      return em::ExtensionInstallReportLogEvent::IN_PROGRESS;
-    case extensions::InstallStageTracker::FailureReason::CRX_FETCH_URL_EMPTY:
-      return em::ExtensionInstallReportLogEvent::CRX_FETCH_URL_EMPTY;
-    case extensions::InstallStageTracker::FailureReason::CRX_FETCH_URL_INVALID:
-      return em::ExtensionInstallReportLogEvent::CRX_FETCH_URL_INVALID;
-    case extensions::InstallStageTracker::FailureReason::OVERRIDDEN_BY_SETTINGS:
-      return em::ExtensionInstallReportLogEvent::OVERRIDDEN_BY_SETTINGS;
-    case extensions::InstallStageTracker::FailureReason::REPLACED_BY_SYSTEM_APP:
-      return em::ExtensionInstallReportLogEvent::REPLACED_BY_SYSTEM_APP;
-    default:
-      NOTREACHED();
-  }
-}
-
-// Helper method to convert InstallStageTracker::Stage to the Stage proto.
-em::ExtensionInstallReportLogEvent_InstallationStage
-ConvertInstallationStageToProto(extensions::InstallStageTracker::Stage stage) {
-  using Stage = extensions::InstallStageTracker::Stage;
-  switch (stage) {
-    case Stage::CREATED:
-      return em::ExtensionInstallReportLogEvent::CREATED;
-    case Stage::PENDING:
-      return em::ExtensionInstallReportLogEvent::PENDING;
-    case Stage::DOWNLOADING:
-      return em::ExtensionInstallReportLogEvent::DOWNLOADING;
-    case Stage::INSTALLING:
-      return em::ExtensionInstallReportLogEvent::INSTALLING;
-    case Stage::COMPLETE:
-      return em::ExtensionInstallReportLogEvent::COMPLETE;
-    default:
-      NOTREACHED();
-      return em::ExtensionInstallReportLogEvent::INSTALLATION_STAGE_UNKNOWN;
-  }
-}
-
-// Helper method to convert InstallStageTracker::UserType to the user
-// type proto.
-em::ExtensionInstallReportLogEvent_UserType ConvertUserTypeToProto(
-    user_manager::UserType user_type) {
-  switch (user_type) {
-    case user_manager::USER_TYPE_REGULAR:
-      return em::ExtensionInstallReportLogEvent::USER_TYPE_REGULAR;
-    case user_manager::USER_TYPE_GUEST:
-      return em::ExtensionInstallReportLogEvent::USER_TYPE_GUEST;
-    case user_manager::USER_TYPE_PUBLIC_ACCOUNT:
-      return em::ExtensionInstallReportLogEvent::USER_TYPE_PUBLIC_ACCOUNT;
-    case user_manager::USER_TYPE_KIOSK_APP:
-      return em::ExtensionInstallReportLogEvent::USER_TYPE_KIOSK_APP;
-    case user_manager::USER_TYPE_CHILD:
-      return em::ExtensionInstallReportLogEvent::USER_TYPE_CHILD;
-    case user_manager::USER_TYPE_ARC_KIOSK_APP:
-      return em::ExtensionInstallReportLogEvent::USER_TYPE_ARC_KIOSK_APP;
-    case user_manager::USER_TYPE_ACTIVE_DIRECTORY:
-      return em::ExtensionInstallReportLogEvent::USER_TYPE_ACTIVE_DIRECTORY;
-    case user_manager::USER_TYPE_WEB_KIOSK_APP:
-      return em::ExtensionInstallReportLogEvent::USER_TYPE_WEB_KIOSK_APP;
-    case user_manager::NUM_USER_TYPES:
-      NOTREACHED();
-      return em::ExtensionInstallReportLogEvent::USER_TYPE_UNKNOWN;
-  }
-}
-
-// Helper method to convert ExtensionDownloaderDelegate::Stage to the
-// DownloadingStage proto.
-em::ExtensionInstallReportLogEvent_DownloadingStage
-ConvertDownloadingStageToProto(
-    extensions::ExtensionDownloaderDelegate::Stage stage) {
-  using DownloadingStage = extensions::ExtensionDownloaderDelegate::Stage;
-  switch (stage) {
-    case DownloadingStage::PENDING:
-      return em::ExtensionInstallReportLogEvent::DOWNLOAD_PENDING;
-    case DownloadingStage::QUEUED_FOR_MANIFEST:
-      return em::ExtensionInstallReportLogEvent::QUEUED_FOR_MANIFEST;
-    case DownloadingStage::DOWNLOADING_MANIFEST:
-      return em::ExtensionInstallReportLogEvent::DOWNLOADING_MANIFEST;
-    case DownloadingStage::DOWNLOADING_MANIFEST_RETRY:
-      return em::ExtensionInstallReportLogEvent::DOWNLOADING_MANIFEST_RETRY;
-    case DownloadingStage::PARSING_MANIFEST:
-      return em::ExtensionInstallReportLogEvent::PARSING_MANIFEST;
-    case DownloadingStage::MANIFEST_LOADED:
-      return em::ExtensionInstallReportLogEvent::MANIFEST_LOADED;
-    case DownloadingStage::QUEUED_FOR_CRX:
-      return em::ExtensionInstallReportLogEvent::QUEUED_FOR_CRX;
-    case DownloadingStage::DOWNLOADING_CRX:
-      return em::ExtensionInstallReportLogEvent::DOWNLOADING_CRX;
-    case DownloadingStage::DOWNLOADING_CRX_RETRY:
-      return em::ExtensionInstallReportLogEvent::DOWNLOADING_CRX_RETRY;
-    case DownloadingStage::FINISHED:
-      return em::ExtensionInstallReportLogEvent::FINISHED;
-    default:
-      NOTREACHED();
-      return em::ExtensionInstallReportLogEvent::DOWNLOADING_STAGE_UNKNOWN;
-  }
-}
-
-em::ExtensionInstallReportLogEvent_InstallCreationStage
-ConvertInstallCreationStageToProto(
-    extensions::InstallStageTracker::InstallCreationStage stage) {
-  using Stage = extensions::InstallStageTracker::InstallCreationStage;
-  switch (stage) {
-    case Stage::CREATION_INITIATED:
-      return em::ExtensionInstallReportLogEvent::CREATION_INITIATED;
-    case Stage::NOTIFIED_FROM_MANAGEMENT_INITIAL_CREATION_FORCED:
-      return em::ExtensionInstallReportLogEvent::
-          NOTIFIED_FROM_MANAGEMENT_INITIAL_CREATION_FORCED;
-    case Stage::NOTIFIED_FROM_MANAGEMENT_INITIAL_CREATION_NOT_FORCED:
-      return em::ExtensionInstallReportLogEvent::
-          NOTIFIED_FROM_MANAGEMENT_INITIAL_CREATION_NOT_FORCED;
-    case Stage::NOTIFIED_FROM_MANAGEMENT:
-      return em::ExtensionInstallReportLogEvent::NOTIFIED_FROM_MANAGEMENT;
-    case Stage::NOTIFIED_FROM_MANAGEMENT_NOT_FORCED:
-      return em::ExtensionInstallReportLogEvent::
-          NOTIFIED_FROM_MANAGEMENT_NOT_FORCED;
-    case Stage::SEEN_BY_POLICY_LOADER:
-      return em::ExtensionInstallReportLogEvent::SEEN_BY_POLICY_LOADER;
-    case Stage::SEEN_BY_EXTERNAL_PROVIDER:
-      return em::ExtensionInstallReportLogEvent::SEEN_BY_EXTERNAL_PROVIDER;
-    default:
-      NOTREACHED();
-      return em::ExtensionInstallReportLogEvent::INSTALL_CREATION_STAGE_UNKNOWN;
-  }
-}
-
-em::ExtensionInstallReportLogEvent_DownloadCacheStatus
-ConvertDownloadCacheStatusToProto(
-    extensions::ExtensionDownloaderDelegate::CacheStatus status) {
-  using Status = extensions::ExtensionDownloaderDelegate::CacheStatus;
-  switch (status) {
-    case Status::CACHE_UNKNOWN:
-      return em::ExtensionInstallReportLogEvent::CACHE_UNKNOWN;
-    case Status::CACHE_DISABLED:
-      return em::ExtensionInstallReportLogEvent::CACHE_DISABLED;
-    case Status::CACHE_MISS:
-      return em::ExtensionInstallReportLogEvent::CACHE_MISS;
-    case Status::CACHE_OUTDATED:
-      return em::ExtensionInstallReportLogEvent::CACHE_OUTDATED;
-    case Status::CACHE_HIT:
-      return em::ExtensionInstallReportLogEvent::CACHE_HIT;
-    case Status::CACHE_HIT_ON_MANIFEST_FETCH_FAILURE:
-      return em::ExtensionInstallReportLogEvent::
-          CACHE_HIT_ON_MANIFEST_FETCH_FAILURE;
-    default:
-      NOTREACHED();
-      return em::ExtensionInstallReportLogEvent::CACHE_UNKNOWN;
-  }
-}
-
-// Helper function to convert extensions::SandboxedUnpackerFailureReason to the
-// ExtensionInstallReportLogEvent::SandboxedUnpackerFailureReason proto.
-em::ExtensionInstallReportLogEvent_SandboxedUnpackerFailureReason
-ConvertUnpackerFailureReasonToProto(
-    extensions::SandboxedUnpackerFailureReason reason) {
-  using FailureReason = extensions::SandboxedUnpackerFailureReason;
-  switch (reason) {
-    case FailureReason::COULD_NOT_GET_TEMP_DIRECTORY:
-      return em::ExtensionInstallReportLogEvent::COULD_NOT_GET_TEMP_DIRECTORY;
-    case FailureReason::COULD_NOT_CREATE_TEMP_DIRECTORY:
-      return em::ExtensionInstallReportLogEvent::
-          COULD_NOT_CREATE_TEMP_DIRECTORY;
-    case FailureReason::FAILED_TO_COPY_EXTENSION_FILE_TO_TEMP_DIRECTORY:
-      return em::ExtensionInstallReportLogEvent::
-          FAILED_TO_COPY_EXTENSION_FILE_TO_TEMP_DIRECTORY;
-    case FailureReason::COULD_NOT_GET_SANDBOX_FRIENDLY_PATH:
-      return em::ExtensionInstallReportLogEvent::
-          COULD_NOT_GET_SANDBOX_FRIENDLY_PATH;
-    case FailureReason::COULD_NOT_LOCALIZE_EXTENSION:
-      return em::ExtensionInstallReportLogEvent::COULD_NOT_LOCALIZE_EXTENSION;
-    case FailureReason::INVALID_MANIFEST:
-      return em::ExtensionInstallReportLogEvent::INVALID_MANIFEST;
-    case FailureReason::UNPACKER_CLIENT_FAILED:
-      return em::ExtensionInstallReportLogEvent::UNPACKER_CLIENT_FAILED;
-    case FailureReason::UTILITY_PROCESS_CRASHED_WHILE_TRYING_TO_INSTALL:
-      return em::ExtensionInstallReportLogEvent::
-          UTILITY_PROCESS_CRASHED_WHILE_TRYING_TO_INSTALL;
-    case FailureReason::CRX_FILE_NOT_READABLE:
-      return em::ExtensionInstallReportLogEvent::CRX_FILE_NOT_READABLE;
-    case FailureReason::CRX_HEADER_INVALID:
-      return em::ExtensionInstallReportLogEvent::CRX_HEADER_INVALID;
-    case FailureReason::CRX_MAGIC_NUMBER_INVALID:
-      return em::ExtensionInstallReportLogEvent::CRX_MAGIC_NUMBER_INVALID;
-    case FailureReason::CRX_VERSION_NUMBER_INVALID:
-      return em::ExtensionInstallReportLogEvent::CRX_VERSION_NUMBER_INVALID;
-    case FailureReason::CRX_EXCESSIVELY_LARGE_KEY_OR_SIGNATURE:
-      return em::ExtensionInstallReportLogEvent::
-          CRX_EXCESSIVELY_LARGE_KEY_OR_SIGNATURE;
-    case FailureReason::CRX_ZERO_KEY_LENGTH:
-      return em::ExtensionInstallReportLogEvent::CRX_ZERO_KEY_LENGTH;
-    case FailureReason::CRX_ZERO_SIGNATURE_LENGTH:
-      return em::ExtensionInstallReportLogEvent::CRX_ZERO_SIGNATURE_LENGTH;
-    case FailureReason::CRX_PUBLIC_KEY_INVALID:
-      return em::ExtensionInstallReportLogEvent::CRX_PUBLIC_KEY_INVALID;
-    case FailureReason::CRX_SIGNATURE_INVALID:
-      return em::ExtensionInstallReportLogEvent::CRX_SIGNATURE_INVALID;
-    case FailureReason::CRX_SIGNATURE_VERIFICATION_INITIALIZATION_FAILED:
-      return em::ExtensionInstallReportLogEvent::
-          CRX_SIGNATURE_VERIFICATION_INITIALIZATION_FAILED;
-    case FailureReason::CRX_SIGNATURE_VERIFICATION_FAILED:
-      return em::ExtensionInstallReportLogEvent::
-          CRX_SIGNATURE_VERIFICATION_FAILED;
-    case FailureReason::ERROR_SERIALIZING_MANIFEST_JSON:
-      return em::ExtensionInstallReportLogEvent::
-          ERROR_SERIALIZING_MANIFEST_JSON;
-    case FailureReason::ERROR_SAVING_MANIFEST_JSON:
-      return em::ExtensionInstallReportLogEvent::ERROR_SAVING_MANIFEST_JSON;
-    case FailureReason::COULD_NOT_READ_IMAGE_DATA_FROM_DISK_UNUSED:
-      return em::ExtensionInstallReportLogEvent::
-          COULD_NOT_READ_IMAGE_DATA_FROM_DISK_UNUSED;
-    case FailureReason::DECODED_IMAGES_DO_NOT_MATCH_THE_MANIFEST_UNUSED:
-      return em::ExtensionInstallReportLogEvent::
-          DECODED_IMAGES_DO_NOT_MATCH_THE_MANIFEST_UNUSED;
-    case FailureReason::INVALID_PATH_FOR_BROWSER_IMAGE:
-      return em::ExtensionInstallReportLogEvent::INVALID_PATH_FOR_BROWSER_IMAGE;
-    case FailureReason::ERROR_REMOVING_OLD_IMAGE_FILE:
-      return em::ExtensionInstallReportLogEvent::ERROR_REMOVING_OLD_IMAGE_FILE;
-    case FailureReason::INVALID_PATH_FOR_BITMAP_IMAGE:
-      return em::ExtensionInstallReportLogEvent::INVALID_PATH_FOR_BITMAP_IMAGE;
-    case FailureReason::ERROR_RE_ENCODING_THEME_IMAGE:
-      return em::ExtensionInstallReportLogEvent::ERROR_RE_ENCODING_THEME_IMAGE;
-    case FailureReason::ERROR_SAVING_THEME_IMAGE:
-      return em::ExtensionInstallReportLogEvent::ERROR_SAVING_THEME_IMAGE;
-    case FailureReason::DEPRECATED_ABORTED_DUE_TO_SHUTDOWN:
-      return em::ExtensionInstallReportLogEvent::
-          DEPRECATED_ABORTED_DUE_TO_SHUTDOWN;
-    case FailureReason::COULD_NOT_READ_CATALOG_DATA_FROM_DISK_UNUSED:
-      return em::ExtensionInstallReportLogEvent::
-          COULD_NOT_READ_CATALOG_DATA_FROM_DISK_UNUSED;
-    case FailureReason::INVALID_CATALOG_DATA:
-      return em::ExtensionInstallReportLogEvent::INVALID_CATALOG_DATA;
-    case FailureReason::INVALID_PATH_FOR_CATALOG_UNUSED:
-      return em::ExtensionInstallReportLogEvent::
-          INVALID_PATH_FOR_CATALOG_UNUSED;
-    case FailureReason::ERROR_SERIALIZING_CATALOG:
-      return em::ExtensionInstallReportLogEvent::ERROR_SERIALIZING_CATALOG;
-    case FailureReason::ERROR_SAVING_CATALOG:
-      return em::ExtensionInstallReportLogEvent::ERROR_SAVING_CATALOG;
-    case FailureReason::CRX_HASH_VERIFICATION_FAILED:
-      return em::ExtensionInstallReportLogEvent::CRX_HASH_VERIFICATION_FAILED;
-    case FailureReason::UNZIP_FAILED:
-      return em::ExtensionInstallReportLogEvent::UNZIP_FAILED;
-    case FailureReason::DIRECTORY_MOVE_FAILED:
-      return em::ExtensionInstallReportLogEvent::DIRECTORY_MOVE_FAILED;
-    case FailureReason::CRX_FILE_IS_DELTA_UPDATE:
-      return em::ExtensionInstallReportLogEvent::CRX_FILE_IS_DELTA_UPDATE;
-    case FailureReason::CRX_EXPECTED_HASH_INVALID:
-      return em::ExtensionInstallReportLogEvent::CRX_EXPECTED_HASH_INVALID;
-    case FailureReason::DEPRECATED_ERROR_PARSING_DNR_RULESET:
-      return em::ExtensionInstallReportLogEvent::
-          DEPRECATED_ERROR_PARSING_DNR_RULESET;
-    case FailureReason::ERROR_INDEXING_DNR_RULESET:
-      return em::ExtensionInstallReportLogEvent::ERROR_INDEXING_DNR_RULESET;
-    case FailureReason::CRX_REQUIRED_PROOF_MISSING:
-      return em::ExtensionInstallReportLogEvent::CRX_REQUIRED_PROOF_MISSING;
-    case FailureReason::CRX_HEADER_VERIFIED_CONTENTS_UNCOMPRESSING_FAILURE:
-      return em::ExtensionInstallReportLogEvent::
-          CRX_HEADER_VERIFIED_CONTENTS_UNCOMPRESSING_FAILURE;
-    case FailureReason::MALFORMED_VERIFIED_CONTENTS:
-      return em::ExtensionInstallReportLogEvent::MALFORMED_VERIFIED_CONTENTS;
-    case FailureReason::COULD_NOT_CREATE_METADATA_DIRECTORY:
-      return em::ExtensionInstallReportLogEvent::
-          COULD_NOT_CREATE_METADATA_DIRECTORY;
-    case FailureReason::COULD_NOT_WRITE_VERIFIED_CONTENTS_INTO_FILE:
-      return em::ExtensionInstallReportLogEvent::
-          COULD_NOT_WRITE_VERIFIED_CONTENTS_INTO_FILE;
-    default:
-      NOTREACHED();
-      return em::ExtensionInstallReportLogEvent::
-          SANDBOXED_UNPACKER_FAILURE_REASON_UNKNOWN;
-  }
-}
-
-// Helper function to convert extensions::CrxInstallErrorDetail to the
-// ExtensionInstallReportLogEvent::CrxInstallErrorDetail proto.
-em::ExtensionInstallReportLogEvent_CrxInstallErrorDetail
-ConvertCrxInstallErrorDetailToProto(
-    extensions::CrxInstallErrorDetail error_detail) {
-  using Error = extensions::CrxInstallErrorDetail;
-  switch (error_detail) {
-    case Error::NONE:
-      return em::ExtensionInstallReportLogEvent::
-          CRX_INSTALL_ERROR_DETAIL_UNKNOWN;
-    case Error::CONVERT_USER_SCRIPT_TO_EXTENSION_FAILED:
-      return em::ExtensionInstallReportLogEvent::
-          CONVERT_USER_SCRIPT_TO_EXTENSION_FAILED;
-    case Error::UNEXPECTED_ID:
-      return em::ExtensionInstallReportLogEvent::UNEXPECTED_ID;
-    case Error::UNEXPECTED_VERSION:
-      return em::ExtensionInstallReportLogEvent::UNEXPECTED_VERSION;
-    case Error::MISMATCHED_VERSION:
-      return em::ExtensionInstallReportLogEvent::MISMATCHED_VERSION;
-    case Error::MANIFEST_INVALID:
-      return em::ExtensionInstallReportLogEvent::CRX_ERROR_MANIFEST_INVALID;
-    case Error::INSTALL_NOT_ENABLED:
-      return em::ExtensionInstallReportLogEvent::INSTALL_NOT_ENABLED;
-    case Error::OFFSTORE_INSTALL_DISALLOWED:
-      return em::ExtensionInstallReportLogEvent::OFFSTORE_INSTALL_DISALLOWED;
-    case Error::INCORRECT_APP_CONTENT_TYPE:
-      return em::ExtensionInstallReportLogEvent::INCORRECT_APP_CONTENT_TYPE;
-    case Error::NOT_INSTALLED_FROM_GALLERY:
-      return em::ExtensionInstallReportLogEvent::NOT_INSTALLED_FROM_GALLERY;
-    case Error::INCORRECT_INSTALL_HOST:
-      return em::ExtensionInstallReportLogEvent::INCORRECT_INSTALL_HOST;
-    case Error::DEPENDENCY_NOT_SHARED_MODULE:
-      return em::ExtensionInstallReportLogEvent::DEPENDENCY_NOT_SHARED_MODULE;
-    case Error::DEPENDENCY_OLD_VERSION:
-      return em::ExtensionInstallReportLogEvent::DEPENDENCY_OLD_VERSION;
-    case Error::DEPENDENCY_NOT_ALLOWLISTED:
-      return em::ExtensionInstallReportLogEvent::DEPENDENCY_NOT_ALLOWLISTED;
-    case Error::UNSUPPORTED_REQUIREMENTS:
-      return em::ExtensionInstallReportLogEvent::UNSUPPORTED_REQUIREMENTS;
-    case Error::EXTENSION_IS_BLOCKLISTED:
-      return em::ExtensionInstallReportLogEvent::EXTENSION_IS_BLOCKLISTED;
-    case Error::DISALLOWED_BY_POLICY:
-      return em::ExtensionInstallReportLogEvent::DISALLOWED_BY_POLICY;
-    case Error::KIOSK_MODE_ONLY:
-      return em::ExtensionInstallReportLogEvent::KIOSK_MODE_ONLY;
-    case Error::OVERLAPPING_WEB_EXTENT:
-      return em::ExtensionInstallReportLogEvent::OVERLAPPING_WEB_EXTENT;
-    case Error::CANT_DOWNGRADE_VERSION:
-      return em::ExtensionInstallReportLogEvent::CANT_DOWNGRADE_VERSION;
-    case Error::MOVE_DIRECTORY_TO_PROFILE_FAILED:
-      return em::ExtensionInstallReportLogEvent::
-          MOVE_DIRECTORY_TO_PROFILE_FAILED;
-    case Error::CANT_LOAD_EXTENSION:
-      return em::ExtensionInstallReportLogEvent::CANT_LOAD_EXTENSION;
-    case Error::USER_CANCELED:
-      return em::ExtensionInstallReportLogEvent::USER_CANCELED;
-    case Error::USER_ABORTED:
-      return em::ExtensionInstallReportLogEvent::USER_ABORTED;
-    case Error::UPDATE_NON_EXISTING_EXTENSION:
-      return em::ExtensionInstallReportLogEvent::UPDATE_NON_EXISTING_EXTENSION;
-    default:
-      NOTREACHED();
-      return em::ExtensionInstallReportLogEvent::
-          CRX_INSTALL_ERROR_DETAIL_UNKNOWN;
-  }
-}
-
-// Helper function to convert extensions::ManifestInvalidError to the
-// ExtensionInstallReportLogEvent::ManifestInvalidError proto.
-em::ExtensionInstallReportLogEvent_ManifestInvalidError
-ConvertManifestInvalidErrorToProto(extensions::ManifestInvalidError error) {
-  using ManifestError = extensions::ManifestInvalidError;
-  switch (error) {
-    case ManifestError::XML_PARSING_FAILED:
-      return em::ExtensionInstallReportLogEvent::XML_PARSING_FAILED;
-    case ManifestError::INVALID_XLMNS_ON_GUPDATE_TAG:
-      return em::ExtensionInstallReportLogEvent::INVALID_XLMNS_ON_GUPDATE_TAG;
-    case ManifestError::MISSING_GUPDATE_TAG:
-      return em::ExtensionInstallReportLogEvent::MISSING_GUPDATE_TAG;
-    case ManifestError::INVALID_PROTOCOL_ON_GUPDATE_TAG:
-      return em::ExtensionInstallReportLogEvent::
-          INVALID_PROTOCOL_ON_GUPDATE_TAG;
-    case ManifestError::MISSING_APP_ID:
-      return em::ExtensionInstallReportLogEvent::MISSING_APP_ID;
-    case ManifestError::MISSING_UPDATE_CHECK_TAGS:
-      return em::ExtensionInstallReportLogEvent::MISSING_UPDATE_CHECK_TAGS;
-    case ManifestError::MULTIPLE_UPDATE_CHECK_TAGS:
-      return em::ExtensionInstallReportLogEvent::MULTIPLE_UPDATE_CHECK_TAGS;
-    case ManifestError::INVALID_PRODVERSION_MIN:
-      return em::ExtensionInstallReportLogEvent::INVALID_PRODVERSION_MIN;
-    case ManifestError::EMPTY_CODEBASE_URL:
-      return em::ExtensionInstallReportLogEvent::EMPTY_CODEBASE_URL;
-    case ManifestError::INVALID_CODEBASE_URL:
-      return em::ExtensionInstallReportLogEvent::INVALID_CODEBASE_URL;
-    case ManifestError::MISSING_VERSION_FOR_UPDATE_CHECK:
-      return em::ExtensionInstallReportLogEvent::
-          MISSING_VERSION_FOR_UPDATE_CHECK;
-    case ManifestError::INVALID_VERSION:
-      return em::ExtensionInstallReportLogEvent::INVALID_VERSION;
-    case ManifestError::BAD_UPDATE_SPECIFICATION:
-      return em::ExtensionInstallReportLogEvent::BAD_UPDATE_SPECIFICATION;
-    case ManifestError::BAD_APP_STATUS:
-      return em::ExtensionInstallReportLogEvent::BAD_APP_STATUS;
-  }
-}
-
-void AddErrorCodesToFailureEvent(
-    const extensions::InstallStageTracker::InstallationData& data,
-    em::ExtensionInstallReportLogEvent* event) {
-  if (data.response_code)
-    event->set_fetch_error_code(data.response_code.value());
-  else if (data.network_error_code)
-    event->set_fetch_error_code(data.network_error_code.value());
-  if (data.fetch_tries)
-    event->set_fetch_tries(data.fetch_tries.value());
-}
-
-}  // namespace
-
-using FailureReason = extensions::InstallStageTracker::FailureReason;
-
-ExtensionInstallEventLogCollector::ExtensionInstallEventLogCollector(
-    extensions::ExtensionRegistry* registry,
-    Delegate* delegate,
-    Profile* profile)
-    : InstallEventLogCollectorBase(profile),
-      registry_(registry),
-      delegate_(delegate) {
-  registry_observation_.Observe(registry_);
-  stage_tracker_observation_.Observe(
-      extensions::InstallStageTracker::Get(profile_));
-}
-
-ExtensionInstallEventLogCollector::~ExtensionInstallEventLogCollector() {
-  chromeos::PowerManagerClient::Get()->RemoveObserver(this);
-  content::GetNetworkConnectionTracker()->RemoveNetworkConnectionObserver(this);
-}
-
-void ExtensionInstallEventLogCollector::OnLoginInternal() {
-  std::unique_ptr<em::ExtensionInstallReportLogEvent> event =
-      CreateSessionChangeEvent(em::ExtensionInstallReportLogEvent::LOGIN);
-  extensions::InstallStageTracker::UserInfo user_info =
-      extensions::InstallStageTracker::GetUserInfo(profile_);
-  if (user_info.is_user_present) {
-    event->set_user_type(ConvertUserTypeToProto(user_info.user_type));
-    event->set_is_new_user(user_info.is_new_user);
-  }
-  event->set_online(online_);
-  delegate_->AddForAllExtensions(std::move(event));
-}
-
-void ExtensionInstallEventLogCollector::OnLogoutInternal() {
-  delegate_->AddForAllExtensions(
-      CreateSessionChangeEvent(em::ExtensionInstallReportLogEvent::LOGOUT));
-}
-
-void ExtensionInstallEventLogCollector::SuspendImminent(
-    power_manager::SuspendImminent::Reason reason) {
-  delegate_->AddForAllExtensions(
-      CreateSessionChangeEvent(em::ExtensionInstallReportLogEvent::SUSPEND));
-}
-
-void ExtensionInstallEventLogCollector::SuspendDone(
-    base::TimeDelta sleep_duration) {
-  delegate_->AddForAllExtensions(
-      CreateSessionChangeEvent(em::ExtensionInstallReportLogEvent::RESUME));
-}
-
-void ExtensionInstallEventLogCollector::OnConnectionStateChanged(
-    network::mojom::ConnectionType type) {
-  std::unique_ptr<em::ExtensionInstallReportLogEvent> event =
-      std::make_unique<em::ExtensionInstallReportLogEvent>();
-  event->set_event_type(
-      em::ExtensionInstallReportLogEvent::CONNECTIVITY_CHANGE);
-  event->set_online(online_);
-  delegate_->AddForAllExtensions(std::move(event));
-}
-
-void ExtensionInstallEventLogCollector::OnExtensionInstallationFailed(
-    const extensions::ExtensionId& extension_id,
-    FailureReason reason) {
-  if (!delegate_->IsExtensionPending(extension_id))
-    return;
-  auto event = std::make_unique<em::ExtensionInstallReportLogEvent>();
-  event->set_event_type(
-      em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED);
-  event->set_failure_reason(ConvertFailureReasonToProto(reason));
-  extensions::InstallStageTracker* install_stage_tracker =
-      extensions::InstallStageTracker::Get(profile_);
-  extensions::InstallStageTracker::InstallationData data =
-      install_stage_tracker->Get(extension_id);
-  // Extension type is only reported if extension installation failed after the
-  // unpacking stage.
-  if (data.extension_type) {
-    event->set_extension_type(enterprise_reporting::ConvertExtensionTypeToProto(
-        data.extension_type.value()));
-  }
-  if (data.unpacker_failure_reason) {
-    event->set_unpacker_failure_reason(ConvertUnpackerFailureReasonToProto(
-        data.unpacker_failure_reason.value()));
-  }
-  // Manifest invalid error is only reported if the extension failed due to
-  // failure reason MANIFEST_INVALID.
-  if (data.manifest_invalid_error) {
-    event->set_manifest_invalid_error(ConvertManifestInvalidErrorToProto(
-        data.manifest_invalid_error.value()));
-  }
-
-  // Crx install error detail is only reported if extension installation failed
-  // after the unpacking stage.
-  if (data.install_error_detail) {
-    event->set_crx_install_error_detail(
-        ConvertCrxInstallErrorDetailToProto(data.install_error_detail.value()));
-  }
-
-  if (reason == FailureReason::CRX_FETCH_FAILED ||
-      reason == FailureReason::MANIFEST_FETCH_FAILED) {
-    AddErrorCodesToFailureEvent(data, event.get());
-  }
-
-  extensions::ForceInstalledTracker* force_installed_tracker =
-      extensions::ExtensionSystem::Get(profile_)
-          ->extension_service()
-          ->force_installed_tracker();
-  event->set_is_misconfiguration_failure(
-      force_installed_tracker->IsMisconfiguration(data, extension_id));
-  delegate_->Add(extension_id, true /* gather_disk_space_info */,
-                 std::move(event));
-  delegate_->OnExtensionInstallationFinished(extension_id);
-}
-
-void ExtensionInstallEventLogCollector::OnExtensionInstallationStageChanged(
-    const extensions::ExtensionId& id,
-    extensions::InstallStageTracker::Stage stage) {
-  if (!delegate_->IsExtensionPending(id))
-    return;
-  auto event = std::make_unique<em::ExtensionInstallReportLogEvent>();
-  event->set_installation_stage(ConvertInstallationStageToProto(stage));
-  delegate_->Add(id, true /* gather_disk_space_info */, std::move(event));
-}
-
-void ExtensionInstallEventLogCollector::OnExtensionDownloadingStageChanged(
-    const extensions::ExtensionId& id,
-    extensions::ExtensionDownloaderDelegate::Stage stage) {
-  if (!delegate_->IsExtensionPending(id))
-    return;
-  auto event = std::make_unique<em::ExtensionInstallReportLogEvent>();
-  event->set_downloading_stage(ConvertDownloadingStageToProto(stage));
-  delegate_->Add(id, true /* gather_disk_space_info */, std::move(event));
-}
-
-void ExtensionInstallEventLogCollector::OnExtensionInstallCreationStageChanged(
-    const extensions::ExtensionId& id,
-    extensions::InstallStageTracker::InstallCreationStage stage) {
-  if (!delegate_->IsExtensionPending(id))
-    return;
-  auto event = std::make_unique<em::ExtensionInstallReportLogEvent>();
-  event->set_install_creation_stage(ConvertInstallCreationStageToProto(stage));
-  delegate_->Add(id, false /* gather_disk_space_info */, std::move(event));
-}
-
-void ExtensionInstallEventLogCollector::OnExtensionDownloadCacheStatusRetrieved(
-    const extensions::ExtensionId& id,
-    extensions::ExtensionDownloaderDelegate::CacheStatus cache_status) {
-  if (!delegate_->IsExtensionPending(id))
-    return;
-  auto event = std::make_unique<em::ExtensionInstallReportLogEvent>();
-  event->set_download_cache_status(
-      ConvertDownloadCacheStatusToProto(cache_status));
-  delegate_->Add(id, false /* gather_disk_space_info */, std::move(event));
-}
-
-void ExtensionInstallEventLogCollector::OnExtensionLoaded(
-    content::BrowserContext* browser_context,
-    const extensions::Extension* extension) {
-  if (!delegate_->IsExtensionPending(extension->id()))
-    return;
-  AddSuccessEvent(extension);
-}
-
-void ExtensionInstallEventLogCollector::OnExtensionsRequested(
-    const extensions::ExtensionIdSet& extension_ids) {
-  for (const auto& extension_id : extension_ids) {
-    const extensions::Extension* extension = registry_->GetExtensionById(
-        extension_id, extensions::ExtensionRegistry::ENABLED);
-    if (extension)
-      AddSuccessEvent(extension);
-  }
-}
-
-void ExtensionInstallEventLogCollector::AddSuccessEvent(
-    const extensions::Extension* extension) {
-  auto event = std::make_unique<em::ExtensionInstallReportLogEvent>();
-  event->set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  event->set_extension_type(
-      enterprise_reporting::ConvertExtensionTypeToProto(extension->GetType()));
-  delegate_->Add(extension->id(), true /* gather_disk_space_info */,
-                 std::move(event));
-  delegate_->OnExtensionInstallationFinished(extension->id());
-}
-
-}  // namespace policy
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_collector.h b/chrome/browser/ash/policy/reporting/extension_install_event_log_collector.h
deleted file mode 100644
index 2e0e12e2..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_collector.h
+++ /dev/null
@@ -1,128 +0,0 @@
-// 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.
-
-#ifndef CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_COLLECTOR_H_
-#define CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_COLLECTOR_H_
-
-#include <stdint.h>
-
-#include <memory>
-#include <set>
-
-#include "base/logging.h"
-#include "base/scoped_observation.h"
-#include "chrome/browser/ash/policy/reporting/install_event_log_collector_base.h"
-#include "chrome/browser/extensions/forced_extensions/install_stage_tracker.h"
-#include "chrome/browser/profiles/profile.h"
-#include "extensions/browser/extension_registry.h"
-#include "extensions/browser/extension_registry_observer.h"
-#include "extensions/common/extension_id.h"
-
-class Profile;
-
-namespace enterprise_management {
-class ExtensionInstallReportLogEvent;
-}
-namespace policy {
-
-// Listens for and logs events related to extension installation process.
-class ExtensionInstallEventLogCollector
-    : public InstallEventLogCollectorBase,
-      public extensions::ExtensionRegistryObserver,
-      public extensions::InstallStageTracker::Observer {
- public:
-  // The delegate that events are forwarded to for inclusion in the log.
-  class Delegate {
-   public:
-    // Adds an identical log entry for every extension whose install is pending.
-    // The |event|'s timestamp is set to the current time if not set yet.
-    virtual void AddForAllExtensions(
-        std::unique_ptr<enterprise_management::ExtensionInstallReportLogEvent>
-            event) = 0;
-
-    // Adds a log entry for extension. The |event|'s timestamp is set to the
-    // current time if not set yet. If |gather_disk_space_info| is |true|,
-    // information about total and free disk space is gathered in the background
-    // and added to |event| before adding it to the log. Does not change the
-    // list of pending extensions.
-    virtual void Add(
-        const extensions::ExtensionId& extension_id,
-        bool gather_disk_space_info,
-        std::unique_ptr<enterprise_management::ExtensionInstallReportLogEvent>
-            event) = 0;
-
-    // Updates the list of pending extensions in case of installation success
-    // and failure.
-    virtual void OnExtensionInstallationFinished(
-        const extensions::ExtensionId& extension_id) = 0;
-
-    // Checks whether the current extension is in pending list or not.
-    virtual bool IsExtensionPending(
-        const extensions::ExtensionId& extension_id) = 0;
-
-   protected:
-    virtual ~Delegate() = default;
-  };
-
-  // Delegate must outlive |this|.
-  ExtensionInstallEventLogCollector(extensions::ExtensionRegistry* registry,
-                                    Delegate* delegate,
-                                    Profile* profile);
-  ~ExtensionInstallEventLogCollector() override;
-
-  // chromeos::PowerManagerClient::Observer:
-  void SuspendImminent(power_manager::SuspendImminent::Reason reason) override;
-  void SuspendDone(base::TimeDelta sleep_duration) override;
-
-  // ExtensionRegistryObserver overrides
-  void OnExtensionLoaded(content::BrowserContext* browser_context,
-                         const extensions::Extension* extension) override;
-
-  // InstallStageTracker::Observer overrides
-  void OnExtensionInstallationFailed(
-      const extensions::ExtensionId& extension_id,
-      extensions::InstallStageTracker::FailureReason reason) override;
-  void OnExtensionInstallationStageChanged(
-      const extensions::ExtensionId& id,
-      extensions::InstallStageTracker::Stage stage) override;
-  void OnExtensionDownloadingStageChanged(
-      const extensions::ExtensionId& id,
-      extensions::ExtensionDownloaderDelegate::Stage stage) override;
-  void OnExtensionInstallCreationStageChanged(
-      const extensions::ExtensionId& id,
-      extensions::InstallStageTracker::InstallCreationStage stage) override;
-  void OnExtensionDownloadCacheStatusRetrieved(
-      const extensions::ExtensionId& id,
-      extensions::ExtensionDownloaderDelegate::CacheStatus cache_status)
-      override;
-
-  // Reports success events for the extensions which are requested from policy
-  // and are already loaded.
-  void OnExtensionsRequested(const extensions::ExtensionIdSet& extension_ids);
-
-  // Adds success events and notifies delegate that extension is loaded
-  // successfully.
-  void AddSuccessEvent(const extensions::Extension* extension);
-
- protected:
-  // Overrides to handle events from InstallEventLogCollectorBase.
-  void OnLoginInternal() override;
-  void OnLogoutInternal() override;
-  void OnConnectionStateChanged(network::mojom::ConnectionType type) override;
-
- private:
-  extensions::ExtensionRegistry* registry_;
-  Delegate* const delegate_;
-
-  base::ScopedObservation<extensions::ExtensionRegistry,
-                          extensions::ExtensionRegistryObserver>
-      registry_observation_{this};
-  base::ScopedObservation<extensions::InstallStageTracker,
-                          extensions::InstallStageTracker::Observer>
-      stage_tracker_observation_{this};
-};
-
-}  // namespace policy
-
-#endif  // CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_COLLECTOR_H_
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_collector_unittest.cc b/chrome/browser/ash/policy/reporting/extension_install_event_log_collector_unittest.cc
deleted file mode 100644
index 68a30a1..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_collector_unittest.cc
+++ /dev/null
@@ -1,749 +0,0 @@
-// 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.
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_collector.h"
-
-#include "ash/constants/ash_switches.h"
-#include "base/command_line.h"
-#include "base/files/file_path.h"
-#include "base/run_loop.h"
-#include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/extensions/forced_extensions/force_installed_tracker.h"
-#include "chrome/browser/extensions/test_extension_system.h"
-#include "chrome/browser/prefs/browser_prefs.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/test/base/testing_browser_process.h"
-#include "chrome/test/base/testing_profile.h"
-#include "chromeos/ash/components/network/network_handler_test_helper.h"
-#include "chromeos/dbus/power/fake_power_manager_client.h"
-#include "chromeos/dbus/shill/shill_service_client.h"
-#include "components/policy/proto/device_management_backend.pb.h"
-#include "components/prefs/testing_pref_service.h"
-#include "components/user_manager/scoped_user_manager.h"
-#include "components/user_manager/user_names.h"
-#include "content/public/test/browser_task_environment.h"
-#include "extensions/browser/extension_system.h"
-#include "extensions/browser/install/sandboxed_unpacker_failure_reason.h"
-#include "extensions/common/extension_builder.h"
-#include "net/base/net_errors.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/cros_system_api/dbus/service_constants.h"
-
-namespace em = enterprise_management;
-
-namespace policy {
-
-namespace {
-
-constexpr char kEthernetServicePath[] = "/service/eth1";
-constexpr char kWifiServicePath[] = "/service/wifi1";
-
-constexpr char kExtensionId1[] = "abcdefghijklmnopabcdefghijklmnop";
-
-constexpr char kExtensionName1[] = "name1";
-
-constexpr char kEmailId[] = "test@example.com";
-constexpr char kGaiaId[] = "12345";
-
-const int kFetchTries = 5;
-// HTTP_UNAUTHORIZED
-const int kResponseCode = 401;
-
-class FakeExtensionInstallEventLogCollectorDelegate
-    : public ExtensionInstallEventLogCollector::Delegate {
- public:
-  FakeExtensionInstallEventLogCollectorDelegate() = default;
-  ~FakeExtensionInstallEventLogCollectorDelegate() override = default;
-
-  struct Request {
-    Request(bool for_all,
-            bool add_disk_space_info,
-            const extensions::ExtensionId& extension_id,
-            const em::ExtensionInstallReportLogEvent& event)
-        : for_all(for_all),
-          add_disk_space_info(add_disk_space_info),
-          extension_id(extension_id),
-          event(event) {}
-    const bool for_all;
-    const bool add_disk_space_info;
-    const extensions::ExtensionId extension_id;
-    const em::ExtensionInstallReportLogEvent event;
-  };
-
-  // AppInstallEventLogCollector::Delegate:
-  void AddForAllExtensions(
-      std::unique_ptr<em::ExtensionInstallReportLogEvent> event) override {
-    ++add_for_all_count_;
-    requests_.emplace_back(true /* for_all */, false /* add_disk_space_info */,
-                           std::string() /* extension_id */, *event);
-  }
-
-  void Add(const extensions::ExtensionId& extension_id,
-           bool add_disk_space_info,
-           std::unique_ptr<em::ExtensionInstallReportLogEvent> event) override {
-    ++add_count_;
-    requests_.emplace_back(false /* for_all */, add_disk_space_info,
-                           extension_id, *event);
-  }
-
-  void OnExtensionInstallationFinished(
-      const extensions::ExtensionId& extension_id) override {
-    extensions_.erase(extension_id);
-  }
-
-  bool IsExtensionPending(
-      const extensions::ExtensionId& extension_id) override {
-    return extensions_.find(extension_id) != extensions_.end();
-  }
-
-  int add_for_all_count() const { return add_for_all_count_; }
-
-  int add_count() const { return add_count_; }
-
-  const em::ExtensionInstallReportLogEvent& last_event() const {
-    return last_request().event;
-  }
-  const Request& last_request() const { return requests_.back(); }
-  const std::vector<Request>& requests() const { return requests_; }
-
- private:
-  std::set<extensions::ExtensionId> extensions_ = {kExtensionId1};
-  int add_for_all_count_ = 0;
-  int add_count_ = 0;
-  std::vector<Request> requests_;
-};
-
-}  // namespace
-
-class ExtensionInstallEventLogCollectorTest : public testing::Test {
- protected:
-  ExtensionInstallEventLogCollectorTest() = default;
-  ~ExtensionInstallEventLogCollectorTest() override = default;
-
-  void SetUp() override {
-    RegisterLocalState(pref_service_.registry());
-    TestingBrowserProcess::GetGlobal()->SetLocalState(&pref_service_);
-
-    network_handler_test_helper_ =
-        std::make_unique<ash::NetworkHandlerTestHelper>();
-    chromeos::PowerManagerClient::InitializeFake();
-    profile_ = std::make_unique<TestingProfile>();
-    registry_ = extensions::ExtensionRegistry::Get(profile_.get());
-    install_stage_tracker_ =
-        extensions::InstallStageTracker::Get(profile_.get());
-    InitExtensionSystem();
-    network_handler_test_helper_->service_test()->AddService(
-        kEthernetServicePath, "eth1_guid", "eth1", shill::kTypeEthernet,
-        shill::kStateOffline, true /* visible */);
-    network_handler_test_helper_->service_test()->AddService(
-        kWifiServicePath, "wifi1_guid", "wifi1", shill::kTypeEthernet,
-        shill::kStateOffline, true /* visible */);
-    base::RunLoop().RunUntilIdle();
-  }
-
-  void TearDown() override {
-    profile_.reset();
-    chromeos::PowerManagerClient::Shutdown();
-    network_handler_test_helper_.reset();
-    TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr);
-  }
-
-  void InitExtensionSystem() {
-    extensions::TestExtensionSystem* extension_system =
-        static_cast<extensions::TestExtensionSystem*>(
-            extensions::ExtensionSystem::Get(profile_.get()));
-    extension_system->CreateExtensionService(
-        base::CommandLine::ForCurrentProcess(),
-        base::FilePath() /* install_directory */,
-        false /* autoupdate_enabled */);
-  }
-
-  void SetNetworkState(
-      network::NetworkConnectionTracker::NetworkConnectionObserver* observer,
-      const std::string& service_path,
-      const std::string& state) {
-    network_handler_test_helper_->service_test()->SetServiceProperty(
-        service_path, shill::kStateProperty, base::Value(state));
-    base::RunLoop().RunUntilIdle();
-
-    network::mojom::ConnectionType connection_type =
-        network::mojom::ConnectionType::CONNECTION_NONE;
-    const std::string* network_state =
-        network_handler_test_helper_->service_test()
-            ->GetServiceProperties(kWifiServicePath)
-            ->FindStringKey(shill::kStateProperty);
-    if (network_state && *network_state == shill::kStateOnline) {
-      connection_type = network::mojom::ConnectionType::CONNECTION_WIFI;
-    }
-    network_state = network_handler_test_helper_->service_test()
-                        ->GetServiceProperties(kEthernetServicePath)
-                        ->FindStringKey(shill::kStateProperty);
-    if (network_state && *network_state == shill::kStateOnline) {
-      connection_type = network::mojom::ConnectionType::CONNECTION_ETHERNET;
-    }
-    if (observer)
-      observer->OnConnectionChanged(connection_type);
-    base::RunLoop().RunUntilIdle();
-  }
-
-  testing::AssertionResult VerifyEventAddedSuccessfully(
-      int expected_add_count,
-      int expected_add_all_count) {
-    if (expected_add_count != delegate()->add_count()) {
-      return testing::AssertionFailure()
-             << "Expected add count: " << expected_add_count
-             << " but actual add count: " << delegate()->add_count();
-    }
-    if (expected_add_all_count != delegate()->add_for_all_count()) {
-      return testing::AssertionFailure()
-             << "Expected add all count: " << expected_add_all_count
-             << " but actual add all count: "
-             << delegate()->add_for_all_count();
-    }
-    if (delegate()->last_request().extension_id != kExtensionId1) {
-      return testing::AssertionFailure()
-             << "Expected extension id: " << kExtensionId1
-             << " but actual extension id: "
-             << delegate()->last_request().extension_id;
-    }
-    return testing::AssertionSuccess();
-  }
-
-  TestingProfile* profile() { return profile_.get(); }
-  extensions::ExtensionRegistry* registry() { return registry_; }
-  FakeExtensionInstallEventLogCollectorDelegate* delegate() {
-    return &delegate_;
-  }
-  extensions::InstallStageTracker* install_stage_tracker() {
-    return install_stage_tracker_;
-  }
-
- private:
-  content::BrowserTaskEnvironment task_environment_;
-  std::unique_ptr<ash::NetworkHandlerTestHelper> network_handler_test_helper_;
-  std::unique_ptr<TestingProfile> profile_;
-  extensions::ExtensionRegistry* registry_;
-  extensions::InstallStageTracker* install_stage_tracker_;
-  FakeExtensionInstallEventLogCollectorDelegate delegate_;
-  TestingPrefServiceSimple pref_service_;
-};
-
-// Test the case when collector is created and destroyed inside the one user
-// session. In this case no event is generated. This happens for example when
-// all extensions are installed in context of the same user session.
-TEST_F(ExtensionInstallEventLogCollectorTest, NoEventsByDefault) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-  collector.reset();
-
-  EXPECT_EQ(0, delegate()->add_count());
-  EXPECT_EQ(0, delegate()->add_for_all_count());
-}
-
-TEST_F(ExtensionInstallEventLogCollectorTest, LoginLogout) {
-  auto* fake_user_manager = new ash::FakeChromeUserManager();
-  user_manager::ScopedUserManager scoped_user_manager(
-      base::WrapUnique(fake_user_manager));
-  AccountId account_id = AccountId::FromUserEmailGaiaId(kEmailId, kGaiaId);
-  profile()->SetIsNewProfile(true);
-  user_manager::User* user =
-      fake_user_manager->AddUserWithAffiliationAndTypeAndProfile(
-          account_id, false /*is_affiliated*/, user_manager::USER_TYPE_REGULAR,
-          profile());
-  fake_user_manager->UserLoggedIn(account_id, user->username_hash(),
-                                  false /* browser_restart */,
-                                  false /* is_child */);
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  EXPECT_EQ(0, delegate()->add_for_all_count());
-
-  collector->OnLogin();
-  EXPECT_EQ(1, delegate()->add_for_all_count());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::SESSION_STATE_CHANGE,
-            delegate()->last_event().event_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::LOGIN,
-            delegate()->last_event().session_state_change_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::USER_TYPE_REGULAR,
-            delegate()->last_event().user_type());
-  EXPECT_EQ(true, delegate()->last_event().is_new_user());
-  EXPECT_TRUE(delegate()->last_event().has_online());
-  EXPECT_FALSE(delegate()->last_event().online());
-}
-
-TEST_F(ExtensionInstallEventLogCollectorTest, LoginTypes) {
-  auto* fake_user_manager = new ash::FakeChromeUserManager();
-  user_manager::ScopedUserManager scoped_user_manager(
-      base::WrapUnique(fake_user_manager));
-  AccountId account_id = AccountId::FromUserEmailGaiaId(kEmailId, kGaiaId);
-  profile()->SetIsNewProfile(true);
-  user_manager::User* user =
-      fake_user_manager->AddUserWithAffiliationAndTypeAndProfile(
-          account_id, false /*is_affiliated*/, user_manager::USER_TYPE_REGULAR,
-          profile());
-  fake_user_manager->UserLoggedIn(account_id, user->username_hash(),
-                                  false /* browser_restart */,
-                                  false /* is_child */);
-  {
-    ExtensionInstallEventLogCollector collector(registry(), delegate(),
-                                                profile());
-    collector.OnLogin();
-    EXPECT_EQ(1, delegate()->add_for_all_count());
-    EXPECT_EQ(em::ExtensionInstallReportLogEvent::SESSION_STATE_CHANGE,
-              delegate()->last_event().event_type());
-    EXPECT_EQ(em::ExtensionInstallReportLogEvent::LOGIN,
-              delegate()->last_event().session_state_change_type());
-    EXPECT_EQ(em::ExtensionInstallReportLogEvent::USER_TYPE_REGULAR,
-              delegate()->last_event().user_type());
-    EXPECT_EQ(true, delegate()->last_event().is_new_user());
-    EXPECT_TRUE(delegate()->last_event().has_online());
-    EXPECT_FALSE(delegate()->last_event().online());
-  }
-
-  {
-    // Check login after restart. No log is expected.
-    ExtensionInstallEventLogCollector collector(registry(), delegate(),
-                                                profile());
-    base::CommandLine::ForCurrentProcess()->AppendSwitch(
-        ash::switches::kLoginUser);
-    collector.OnLogin();
-    EXPECT_EQ(1, delegate()->add_for_all_count());
-  }
-
-  {
-    // Check logout on restart. No log is expected.
-    ExtensionInstallEventLogCollector collector(registry(), delegate(),
-                                                profile());
-    g_browser_process->local_state()->SetBoolean(prefs::kWasRestarted, true);
-    collector.OnLogout();
-    EXPECT_EQ(1, delegate()->add_for_all_count());
-  }
-
-  EXPECT_EQ(0, delegate()->add_count());
-}
-
-TEST_F(ExtensionInstallEventLogCollectorTest, SuspendResume) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  chromeos::FakePowerManagerClient::Get()->SendSuspendImminent(
-      power_manager::SuspendImminent_Reason_OTHER);
-  EXPECT_EQ(1, delegate()->add_for_all_count());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::SESSION_STATE_CHANGE,
-            delegate()->last_event().event_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::SUSPEND,
-            delegate()->last_event().session_state_change_type());
-  EXPECT_FALSE(delegate()->last_event().online());
-
-  chromeos::FakePowerManagerClient::Get()->SendSuspendDone();
-  EXPECT_EQ(2, delegate()->add_for_all_count());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::SESSION_STATE_CHANGE,
-            delegate()->last_event().event_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::RESUME,
-            delegate()->last_event().session_state_change_type());
-  EXPECT_FALSE(delegate()->last_event().online());
-
-  collector.reset();
-
-  EXPECT_EQ(0, delegate()->add_count());
-}
-
-// Connect to Ethernet. Start log collector. Verify that a login event with
-// network state online is recorded. Then, connect to WiFi and disconnect from
-// Ethernet, in this order. Verify that no event is recorded. Then, disconnect
-// from WiFi. Verify that a connectivity change event is recorded. Then, connect
-// to WiFi with a pending captive portal. Verify that no event is recorded.
-// Then, pass the captive portal. Verify that a connectivity change is recorded.
-TEST_F(ExtensionInstallEventLogCollectorTest, ConnectivityChanges) {
-  SetNetworkState(nullptr, kEthernetServicePath, shill::kStateOnline);
-  auto* fake_user_manager = new ash::FakeChromeUserManager();
-  user_manager::ScopedUserManager scoped_user_manager(
-      base::WrapUnique(fake_user_manager));
-  AccountId account_id = AccountId::FromUserEmailGaiaId(kEmailId, kGaiaId);
-  profile()->SetIsNewProfile(true);
-  user_manager::User* user =
-      fake_user_manager->AddUserWithAffiliationAndTypeAndProfile(
-          account_id, false /*is_affiliated*/, user_manager::USER_TYPE_REGULAR,
-          profile());
-  fake_user_manager->UserLoggedIn(account_id, user->username_hash(),
-                                  false /* browser_restart */,
-                                  false /* is_child */);
-
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  EXPECT_EQ(0, delegate()->add_for_all_count());
-
-  collector->OnLogin();
-  EXPECT_EQ(1, delegate()->add_for_all_count());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::SESSION_STATE_CHANGE,
-            delegate()->last_event().event_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::LOGIN,
-            delegate()->last_event().session_state_change_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::USER_TYPE_REGULAR,
-            delegate()->last_event().user_type());
-  EXPECT_EQ(true, delegate()->last_event().is_new_user());
-  EXPECT_TRUE(delegate()->last_event().online());
-
-  SetNetworkState(collector.get(), kWifiServicePath, shill::kStateOnline);
-  EXPECT_EQ(1, delegate()->add_for_all_count());
-
-  SetNetworkState(collector.get(), kEthernetServicePath, shill::kStateOffline);
-  EXPECT_EQ(1, delegate()->add_for_all_count());
-
-  SetNetworkState(collector.get(), kWifiServicePath, shill::kStateOffline);
-  EXPECT_EQ(2, delegate()->add_for_all_count());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::CONNECTIVITY_CHANGE,
-            delegate()->last_event().event_type());
-  EXPECT_FALSE(delegate()->last_event().online());
-
-  SetNetworkState(collector.get(), kWifiServicePath,
-                  shill::kStateNoConnectivity);
-  EXPECT_EQ(2, delegate()->add_for_all_count());
-
-  SetNetworkState(collector.get(), kWifiServicePath, shill::kStateOnline);
-  EXPECT_EQ(3, delegate()->add_for_all_count());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::CONNECTIVITY_CHANGE,
-            delegate()->last_event().event_type());
-  EXPECT_TRUE(delegate()->last_event().online());
-
-  collector.reset();
-
-  EXPECT_EQ(3, delegate()->add_for_all_count());
-  EXPECT_EQ(0, delegate()->add_count());
-}
-
-TEST_F(ExtensionInstallEventLogCollectorTest,
-       ExtensionInstallFailedWithoutMisconfiguration) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  // One extension failed.
-  install_stage_tracker()->ReportInfoOnNoUpdatesFailure(kExtensionId1,
-                                                        "rate limit");
-  install_stage_tracker()->ReportFailure(
-      kExtensionId1,
-      extensions::InstallStageTracker::FailureReason::CRX_FETCH_URL_EMPTY);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(1 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED,
-            delegate()->last_request().event.event_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::CRX_FETCH_URL_EMPTY,
-            delegate()->last_request().event.failure_reason());
-  EXPECT_FALSE(delegate()->last_request().event.is_misconfiguration_failure());
-}
-
-TEST_F(ExtensionInstallEventLogCollectorTest,
-       ExtensionInstallFailedWithMisconfiguration) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  // One extension failed.
-  install_stage_tracker()->ReportInfoOnNoUpdatesFailure(kExtensionId1, "");
-  install_stage_tracker()->ReportFailure(
-      kExtensionId1,
-      extensions::InstallStageTracker::FailureReason::CRX_FETCH_URL_EMPTY);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(1 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED,
-            delegate()->last_request().event.event_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::CRX_FETCH_URL_EMPTY,
-            delegate()->last_request().event.failure_reason());
-  EXPECT_TRUE(delegate()->last_request().event.is_misconfiguration_failure());
-}
-
-// Verifies that a new event is created when the extension installation fails
-// due to invalid ID supplied in the force list policy.
-TEST_F(ExtensionInstallEventLogCollectorTest, ExtensionInstallFailed) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-  extensions::InstallStageTracker* tracker =
-      extensions::InstallStageTracker::Get(profile());
-
-  // One extension failed.
-  tracker->ReportFailure(
-      kExtensionId1,
-      extensions::InstallStageTracker::FailureReason::INVALID_ID);
-
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(1 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED,
-            delegate()->last_request().event.event_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::INVALID_ID,
-            delegate()->last_request().event.failure_reason());
-  EXPECT_FALSE(delegate()->last_request().event.is_misconfiguration_failure());
-}
-
-// Verifies that a new event is created when the extension installation fails
-// due to crx install error. as failure occurs due during crx installation, crx
-// install error and event type should be reported.
-TEST_F(ExtensionInstallEventLogCollectorTest,
-       ExtensionInstallFailedWithCrxError) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-  extensions::InstallStageTracker* tracker =
-      extensions::InstallStageTracker::Get(profile());
-
-  // One extension failed.
-  tracker->ReportExtensionType(kExtensionId1,
-                               extensions::Manifest::TYPE_LEGACY_PACKAGED_APP);
-  tracker->ReportCrxInstallError(
-      kExtensionId1,
-      extensions::InstallStageTracker::FailureReason::
-          CRX_INSTALL_ERROR_DECLINED,
-      extensions::CrxInstallErrorDetail::KIOSK_MODE_ONLY);
-
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(1 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED,
-            delegate()->last_request().event.event_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::CRX_INSTALL_ERROR_DECLINED,
-            delegate()->last_request().event.failure_reason());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::KIOSK_MODE_ONLY,
-            delegate()->last_request().event.crx_install_error_detail());
-  EXPECT_EQ(em::Extension::TYPE_LEGACY_PACKAGED_APP,
-            delegate()->last_request().event.extension_type());
-  EXPECT_TRUE(delegate()->last_request().event.is_misconfiguration_failure());
-}
-
-// Verifies that a new event is created when the extension failed to unpack.
-TEST_F(ExtensionInstallEventLogCollectorTest,
-       ExtensionInstallFailedWithUnpackFailure) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  extensions::InstallStageTracker* tracker =
-      extensions::InstallStageTracker::Get(profile());
-
-  // One extension failed.
-  tracker->ReportSandboxedUnpackerFailureReason(
-      kExtensionId1,
-      extensions::CrxInstallError(
-          extensions::SandboxedUnpackerFailureReason::CRX_HEADER_INVALID,
-          std::u16string()));
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(1 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED,
-            delegate()->last_request().event.event_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::
-                CRX_INSTALL_ERROR_SANDBOXED_UNPACKER_FAILURE,
-            delegate()->last_request().event.failure_reason());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::CRX_HEADER_INVALID,
-            delegate()->last_request().event.unpacker_failure_reason());
-}
-
-// Verifies that a new event is created when the extension failed due to
-// MANIFEST_INVALID failure reason.
-TEST_F(ExtensionInstallEventLogCollectorTest,
-       ExtensionInstallFailedWitManifestInvalid) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  extensions::InstallStageTracker* tracker =
-      extensions::InstallStageTracker::Get(profile());
-
-  // One extension failed.
-  extensions::ExtensionDownloaderDelegate::FailureData data(
-      extensions::ManifestInvalidError::MISSING_APP_ID);
-  tracker->ReportManifestInvalidFailure(kExtensionId1, data);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(1 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED,
-            delegate()->last_request().event.event_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::MANIFEST_INVALID,
-            delegate()->last_request().event.failure_reason());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::MISSING_APP_ID,
-            delegate()->last_request().event.manifest_invalid_error());
-}
-
-// Verifies that a new event with error codes and number of fetch tries is
-// created when the extension failed with error MANFIEST_FETCH_FAILED.
-TEST_F(ExtensionInstallEventLogCollectorTest,
-       ExtensionInstallFailedWithManifestFetchFailed) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  extensions::InstallStageTracker* tracker =
-      extensions::InstallStageTracker::Get(profile());
-
-  // One extension failed.
-  extensions::ExtensionDownloaderDelegate::FailureData data(
-      net::Error::OK, kResponseCode, kFetchTries);
-  tracker->ReportFetchError(
-      kExtensionId1,
-      extensions::InstallStageTracker::FailureReason::MANIFEST_FETCH_FAILED,
-      data);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(1 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED,
-            delegate()->last_request().event.event_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::MANIFEST_FETCH_FAILED,
-            delegate()->last_request().event.failure_reason());
-  EXPECT_EQ(kResponseCode, delegate()->last_request().event.fetch_error_code());
-  EXPECT_EQ(kFetchTries, delegate()->last_request().event.fetch_tries());
-}
-
-// Verifies that a new event with fetch error code and number of fetch tries is
-// created when the extension failed with error CRX_FETCH_FAILED.
-TEST_F(ExtensionInstallEventLogCollectorTest,
-       ExtensionInstallFailedWithCrxFetchFailed) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  extensions::InstallStageTracker* tracker =
-      extensions::InstallStageTracker::Get(profile());
-
-  // One extension failed.
-  extensions::ExtensionDownloaderDelegate::FailureData data(
-      net::Error::OK, kResponseCode, kFetchTries);
-  tracker->ReportFetchError(
-      kExtensionId1,
-      extensions::InstallStageTracker::FailureReason::CRX_FETCH_FAILED, data);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(1 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED,
-            delegate()->last_request().event.event_type());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::CRX_FETCH_FAILED,
-            delegate()->last_request().event.failure_reason());
-  EXPECT_EQ(kResponseCode, delegate()->last_request().event.fetch_error_code());
-  EXPECT_EQ(kFetchTries, delegate()->last_request().event.fetch_tries());
-}
-
-// Verifies that a new event is created when an extension is successfully
-// installed.
-TEST_F(ExtensionInstallEventLogCollectorTest, InstallExtension) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  // One extension installation succeeded.
-  auto ext = extensions::ExtensionBuilder(kExtensionName1)
-                 .SetID(kExtensionId1)
-                 .Build();
-  collector->OnExtensionLoaded(profile(), ext.get());
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(1 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::SUCCESS,
-            delegate()->last_request().event.event_type());
-  EXPECT_EQ(em::Extension::TYPE_EXTENSION,
-            delegate()->last_request().event.extension_type());
-}
-
-// Verifies that a new event is created when the installation stage is changed
-// during the installation process.
-TEST_F(ExtensionInstallEventLogCollectorTest, InstallationStageChanged) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  // One extension installation succeeded.
-  auto ext = extensions::ExtensionBuilder(kExtensionName1)
-                 .SetID(kExtensionId1)
-                 .Build();
-  collector->OnExtensionInstallationStageChanged(
-      kExtensionId1, extensions::InstallStageTracker::Stage::DOWNLOADING);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(1 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::DOWNLOADING,
-            delegate()->last_request().event.installation_stage());
-  collector->OnExtensionInstallationStageChanged(
-      kExtensionId1, extensions::InstallStageTracker::Stage::INSTALLING);
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::INSTALLING,
-            delegate()->last_request().event.installation_stage());
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(2 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-}
-
-// Verifies that a new event is created when the downloading stage is changed
-// during the downloading process.
-TEST_F(ExtensionInstallEventLogCollectorTest, DownloadingStageChanged) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  auto ext = extensions::ExtensionBuilder(kExtensionName1)
-                 .SetID(kExtensionId1)
-                 .Build();
-  collector->OnExtensionDownloadingStageChanged(
-      kExtensionId1, extensions::ExtensionDownloaderDelegate::Stage::PENDING);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(1 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::DOWNLOAD_PENDING,
-            delegate()->last_request().event.downloading_stage());
-  collector->OnExtensionDownloadingStageChanged(
-      kExtensionId1,
-      extensions::ExtensionDownloaderDelegate::Stage::DOWNLOADING_MANIFEST);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(2 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::DOWNLOADING_MANIFEST,
-            delegate()->last_request().event.downloading_stage());
-  collector->OnExtensionDownloadingStageChanged(
-      kExtensionId1,
-      extensions::ExtensionDownloaderDelegate::Stage::DOWNLOADING_CRX);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(3 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::DOWNLOADING_CRX,
-            delegate()->last_request().event.downloading_stage());
-  collector->OnExtensionDownloadingStageChanged(
-      kExtensionId1, extensions::ExtensionDownloaderDelegate::Stage::FINISHED);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(4 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::FINISHED,
-            delegate()->last_request().event.downloading_stage());
-}
-
-// Verifies that a new event is created when the install creation stage is
-// changed.
-TEST_F(ExtensionInstallEventLogCollectorTest, InstallCreationStageChanged) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  auto ext = extensions::ExtensionBuilder(kExtensionName1)
-                 .SetID(kExtensionId1)
-                 .Build();
-  collector->OnExtensionInstallCreationStageChanged(
-      kExtensionId1, extensions::InstallStageTracker::InstallCreationStage::
-                         CREATION_INITIATED);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(1 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::CREATION_INITIATED,
-            delegate()->last_request().event.install_creation_stage());
-  collector->OnExtensionInstallCreationStageChanged(
-      kExtensionId1, extensions::InstallStageTracker::InstallCreationStage::
-                         NOTIFIED_FROM_MANAGEMENT);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(2 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::NOTIFIED_FROM_MANAGEMENT,
-            delegate()->last_request().event.install_creation_stage());
-  collector->OnExtensionInstallCreationStageChanged(
-      kExtensionId1, extensions::InstallStageTracker::InstallCreationStage::
-                         SEEN_BY_POLICY_LOADER);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(3 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::SEEN_BY_POLICY_LOADER,
-            delegate()->last_request().event.install_creation_stage());
-  collector->OnExtensionInstallCreationStageChanged(
-      kExtensionId1, extensions::InstallStageTracker::InstallCreationStage::
-                         SEEN_BY_EXTERNAL_PROVIDER);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(4 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::SEEN_BY_EXTERNAL_PROVIDER,
-            delegate()->last_request().event.install_creation_stage());
-}
-
-// Verifies that a new event is created when the cache status is retrieved
-// during the extension downloading process.
-TEST_F(ExtensionInstallEventLogCollectorTest, DownloadCacheStatusRetrieved) {
-  auto collector = std::make_unique<ExtensionInstallEventLogCollector>(
-      registry(), delegate(), profile());
-
-  auto ext = extensions::ExtensionBuilder(kExtensionName1)
-                 .SetID(kExtensionId1)
-                 .Build();
-  collector->OnExtensionDownloadCacheStatusRetrieved(
-      kExtensionId1,
-      extensions::ExtensionDownloaderDelegate::CacheStatus::CACHE_MISS);
-  ASSERT_TRUE(VerifyEventAddedSuccessfully(1 /*expected_add_count*/,
-                                           0 /*expected_add_all_count*/));
-}
-
-}  // namespace policy
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager.cc b/chrome/browser/ash/policy/reporting/extension_install_event_log_manager.cc
deleted file mode 100644
index c7d232ab..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager.cc
+++ /dev/null
@@ -1,155 +0,0 @@
-// 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.
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_manager.h"
-
-#include "base/files/file_path.h"
-#include "base/files/file_util.h"
-#include "base/task/task_runner_util.h"
-#include "base/task/task_traits.h"
-#include "base/task/thread_pool.h"
-#include "chrome/browser/profiles/profile.h"
-#include "extensions/browser/extension_registry.h"
-
-namespace em = enterprise_management;
-
-namespace policy {
-
-namespace {
-
-// The log file, stored in the user's profile directory.
-constexpr base::FilePath::CharType kLogFileName[] =
-    FILE_PATH_LITERAL("extension_install_log");
-
-// Returns the path to the extension install event log file for |profile|.
-base::FilePath GetLogFilePath(const Profile& profile) {
-  return profile.GetPath().Append(kLogFileName);
-}
-
-}  // namespace
-
-ExtensionInstallEventLogManager::ExtensionInstallEventLogManager(
-    LogTaskRunnerWrapper* log_task_runner_wrapper,
-    ExtensionInstallEventLogUploader* uploader,
-    Profile* profile)
-    : InstallEventLogManagerBase(log_task_runner_wrapper, profile),
-      uploader_(uploader) {
-  uploader_->SetDelegate(this);
-  log_ = std::make_unique<ExtensionLog>();
-  extension_log_upload_ = std::make_unique<ExtensionLogUpload>(this);
-  base::PostTaskAndReplyWithResult(
-      log_task_runner_.get(), FROM_HERE,
-      base::BindOnce(&ExtensionLog::Init, base::Unretained(log_.get()),
-                     GetLogFilePath(*profile)),
-      base::BindOnce(
-          &ExtensionInstallEventLogManager::ExtensionLogUpload::OnLogInit,
-          extension_log_upload_->log_weak_factory_.GetWeakPtr()));
-  logger_ = std::make_unique<ExtensionInstallEventLogger>(
-      this, profile, extensions::ExtensionRegistry::Get(profile));
-}
-
-ExtensionInstallEventLogManager::~ExtensionInstallEventLogManager() {
-  logger_.reset();
-  // Destroy |extension_log_upload_| after |logger_| otherwise it is possible
-  // that when we add new logs created through |logger_| cause the crash as
-  // |extension_log_upload_| will be destroyed already.
-  extension_log_upload_.reset();
-  uploader_->SetDelegate(nullptr);
-  log_task_runner_->DeleteSoon(FROM_HERE, std::move(log_));
-}
-
-// static
-void ExtensionInstallEventLogManager::Clear(
-    LogTaskRunnerWrapper* log_task_runner_wrapper,
-    Profile* profile) {
-  log_task_runner_wrapper->GetTaskRunner()->PostTask(
-      FROM_HERE, base::GetDeleteFileCallback(GetLogFilePath(*profile)));
-}
-
-void ExtensionInstallEventLogManager::Add(
-    std::set<extensions::ExtensionId> extensions,
-    const em::ExtensionInstallReportLogEvent& event) {
-  if (extensions.empty())
-    return;
-  // After |logger_| is destroyed, we do not add any new events. And |log_| is
-  // destroyed by creating a non nestable task at the end of
-  // ExtensionInstallEventLogManager destructor, it is safe to use
-  // base::Unretained(log_.get()) here.
-  base::PostTaskAndReplyWithResult(
-      log_task_runner_.get(), FROM_HERE,
-      base::BindOnce(&ExtensionLog::Add, base::Unretained(log_.get()),
-                     std::move(extensions), event),
-      base::BindOnce(
-          &ExtensionInstallEventLogManager::ExtensionLogUpload::OnLogChange,
-          extension_log_upload_->log_weak_factory_.GetWeakPtr()));
-}
-
-void ExtensionInstallEventLogManager::SerializeExtensionLogForUpload(
-    ExtensionInstallEventLogUploader::Delegate::
-        ExtensionLogSerializationCallback callback) {
-  base::PostTaskAndReplyWithResult(
-      log_task_runner_.get(), FROM_HERE,
-      base::BindOnce(&ExtensionInstallEventLogManager::ExtensionLog::Serialize,
-                     base::Unretained(log_.get())),
-      base::BindOnce(
-          &ExtensionInstallEventLogManager::LogUpload::OnSerializeLogDone<
-              ExtensionInstallEventLogUploader::Delegate::
-                  ExtensionLogSerializationCallback,
-              em::ExtensionInstallReportRequest>,
-          extension_log_upload_->log_weak_factory_.GetWeakPtr(),
-          std::move(callback)));
-}
-
-void ExtensionInstallEventLogManager::OnExtensionLogUploadSuccess() {
-  if (extension_log_upload_->store_scheduled_) {
-    extension_log_upload_->store_scheduled_ = false;
-    extension_log_upload_->store_weak_factory_.InvalidateWeakPtrs();
-  }
-  extension_log_upload_->upload_requested_ = false;
-
-  base::PostTaskAndReplyWithResult(
-      log_task_runner_.get(), FROM_HERE,
-      base::BindOnce(&ExtensionInstallEventLogManager::ExtensionLog::
-                         ClearSerializedAndStore,
-                     base::Unretained(log_.get())),
-      base::BindOnce(
-          &ExtensionInstallEventLogManager::ExtensionLogUpload::OnLogChange,
-          extension_log_upload_->log_weak_factory_.GetWeakPtr()));
-}
-
-ExtensionInstallEventLogManager::ExtensionLog::ExtensionLog() : InstallLog() {
-  DETACH_FROM_SEQUENCE(sequence_checker_);
-}
-
-ExtensionInstallEventLogManager::ExtensionLog::~ExtensionLog() {}
-
-std::unique_ptr<em::ExtensionInstallReportRequest>
-ExtensionInstallEventLogManager::ExtensionLog::Serialize() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  CHECK(log_);
-  auto serialized_log = std::make_unique<em::ExtensionInstallReportRequest>();
-  log_->Serialize(serialized_log.get());
-  return serialized_log;
-}
-
-ExtensionInstallEventLogManager::ExtensionLogUpload::ExtensionLogUpload(
-    ExtensionInstallEventLogManager* owner)
-    : owner_(owner) {}
-ExtensionInstallEventLogManager::ExtensionLogUpload::~ExtensionLogUpload() =
-    default;
-
-void ExtensionInstallEventLogManager::ExtensionLogUpload::StoreLog() {
-  CHECK(owner_->log_);
-  store_scheduled_ = false;
-  owner_->log_task_runner_->PostTask(
-      FROM_HERE, base::BindOnce(&ExtensionLog::Store,
-                                base::Unretained(owner_->log_.get())));
-}
-
-void ExtensionInstallEventLogManager::ExtensionLogUpload::
-    RequestUploadForUploader() {
-  owner_->uploader_->RequestUpload();
-}
-
-}  // namespace policy
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager.h b/chrome/browser/ash/policy/reporting/extension_install_event_log_manager.h
deleted file mode 100644
index b532458..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager.h
+++ /dev/null
@@ -1,115 +0,0 @@
-// 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.
-
-#ifndef CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_MANAGER_H_
-#define CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_MANAGER_H_
-
-#include <memory>
-#include <set>
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log.h"
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.h"
-#include "chrome/browser/ash/policy/reporting/extension_install_event_logger.h"
-#include "chrome/browser/ash/policy/reporting/install_event_log_manager.h"
-#include "components/policy/proto/device_management_backend.pb.h"
-#include "extensions/common/extension_id.h"
-
-class Profile;
-
-namespace policy {
-// Owns an |ExtensionInstallEventLog| for log storage and an
-// |ExtensionInstallEventLogger| for log collection. The
-// |ExtensionInstallEventLogUploader| is passed to the constructor and must
-// outlive |this|.
-class ExtensionInstallEventLogManager
-    : public InstallEventLogManagerBase,
-      public ExtensionInstallEventLogger::Delegate,
-      public ExtensionInstallEventLogUploader::Delegate {
- public:
-  // All accesses to the |profile|'s extension install event log file must use
-  // the same |log_task_runner_wrapper| to ensure correct I/O serialization.
-  // |uploader| must outlive |this|.
-  ExtensionInstallEventLogManager(LogTaskRunnerWrapper* log_task_runner_wrapper,
-                                  ExtensionInstallEventLogUploader* uploader,
-                                  Profile* profile);
-
-  // Posts a task to |log_task_runner_| that stores the log to file and destroys
-  // |log_|. |log_| thus outlives |this| but any pending callbacks are canceled
-  // by invalidating weak pointers.
-  ~ExtensionInstallEventLogManager() override;
-
-  // Clears all data related to the app-install event log for |profile|. Must
-  // not be called while an |ExtensionInstallEventLogManager| exists for
-  // |profile|. This method and any other accesses to the |profile|'s extension
-  // install event log must use the same |log_task_runner_wrapper| to ensure
-  // correct I/O serialization.
-  static void Clear(LogTaskRunnerWrapper* log_task_runner_wrapper,
-                    Profile* profile);
-
-  // ExtensionInstallEventLogger::Delegate:
-  void Add(std::set<extensions::ExtensionId> extensions,
-           const enterprise_management::ExtensionInstallReportLogEvent& event)
-      override;
-
-  // ExtensionInstallEventLogUploader::Delegate:
-  void SerializeExtensionLogForUpload(
-      ExtensionInstallEventLogUploader::Delegate::
-          ExtensionLogSerializationCallback callback) override;
-  void OnExtensionLogUploadSuccess() override;
-
- private:
-  // Once created, |ExtensionLog| runs in the background and must be accessed
-  // and eventually destroyed via |log_task_runner_|. |ExtensionLog| outlives
-  // its parent and stores the current log to disk in its destructor.
-  // TODO(crbub/1092387): Remove this class to handle sequence checking in
-  // ExtensionInstallEventLog.
-  class ExtensionLog
-      : public InstallEventLogManagerBase::InstallLog<
-            enterprise_management::ExtensionInstallReportLogEvent,
-            ExtensionInstallEventLog> {
-   public:
-    ExtensionLog();
-
-    // Stores the current log to disk.
-    ~ExtensionLog() override;
-
-    // Serializes the log to a protobuf for upload.
-    std::unique_ptr<enterprise_management::ExtensionInstallReportRequest>
-    Serialize();
-
-   private:
-    // Ensures that methods are not called from the wrong thread.
-    SEQUENCE_CHECKER(sequence_checker_);
-  };
-
-  // |ExtensionLogUpload| is owned by |owner_| and |owner_| outlives it.
-  class ExtensionLogUpload : public InstallEventLogManagerBase::LogUpload {
-   public:
-    explicit ExtensionLogUpload(ExtensionInstallEventLogManager* owner);
-    ~ExtensionLogUpload() override;
-    void StoreLog() override;
-    void RequestUploadForUploader() override;
-
-   private:
-    ExtensionInstallEventLogManager* owner_;
-  };
-
-  // Uploads logs to the server.
-  ExtensionInstallEventLogUploader* const uploader_;
-
-  // Helper that owns the log store. Once created, must only be accessed via
-  // |log_task_runner_|. Outlives |this| and ensures the extension log is stored
-  // to disk in its destructor.
-  std::unique_ptr<ExtensionLog> log_;
-
-  // Handles storing the logs and preparing them for upload.
-  std::unique_ptr<ExtensionLogUpload> extension_log_upload_;
-
-  // Collects log events and passes them to |this|.
-  std::unique_ptr<ExtensionInstallEventLogger> logger_;
-};
-
-}  // namespace policy
-
-#endif  // CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_MANAGER_H_
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_unittest.cc b/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_unittest.cc
deleted file mode 100644
index a8af25f9..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_unittest.cc
+++ /dev/null
@@ -1,766 +0,0 @@
-// 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.
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_manager.h"
-
-#include <iterator>
-#include <map>
-#include <memory>
-#include <vector>
-
-#include "ash/components/arc/arc_prefs.h"
-#include "base/files/file_path.h"
-#include "base/files/file_util.h"
-#include "base/json/json_string_value_serializer.h"
-#include "base/task/sequenced_task_runner.h"
-#include "base/test/gmock_move_support.h"
-#include "base/test/scoped_mock_time_message_loop_task_runner.h"
-#include "base/test/test_mock_time_task_runner.h"
-#include "base/test/test_simple_task_runner.h"
-#include "base/threading/sequenced_task_runner_handle.h"
-#include "base/time/tick_clock.h"
-#include "base/time/time.h"
-#include "base/values.h"
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log.h"
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.h"
-#include "chrome/browser/ash/policy/reporting/install_event_log_util.h"
-#include "chrome/browser/profiles/reporting_util.h"
-#include "chrome/test/base/testing_profile.h"
-#include "chromeos/system/fake_statistics_provider.h"
-#include "components/policy/core/common/cloud/realtime_reporting_job_configuration.h"
-#include "components/policy/proto/device_management_backend.pb.h"
-#include "components/prefs/pref_service.h"
-#include "components/reporting/client/mock_report_queue.h"
-#include "components/reporting/util/status.h"
-#include "content/public/test/browser_task_environment.h"
-#include "extensions/browser/quota_service.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::_;
-using testing::AnyNumber;
-using testing::DoAll;
-using testing::Invoke;
-using testing::Matcher;
-using testing::Mock;
-using testing::Pointee;
-using testing::Return;
-
-namespace em = enterprise_management;
-
-namespace policy {
-
-namespace {
-
-constexpr base::FilePath::CharType kLogFileName[] =
-    FILE_PATH_LITERAL("extension_install_log");
-constexpr base::TimeDelta kStoreDelay = base::Seconds(5);
-constexpr base::TimeDelta kUploadInterval = base::Hours(3);
-constexpr base::TimeDelta kExpeditedUploadDelay = base::Minutes(15);
-constexpr base::TimeDelta kOneMs = base::Milliseconds(1);
-
-constexpr int kTotalSizeExpeditedUploadThreshold = 2048;
-constexpr int kMaxSizeExpeditedUploadThreshold = 512;
-
-constexpr const char* kExtensionIds[] = {
-    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
-    "cccccccccccccccccccccccccccccccc", "dddddddddddddddddddddddddddddddd",
-    "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"};
-
-using Events = std::map<extensions::ExtensionId,
-                        std::vector<em::ExtensionInstallReportLogEvent>>;
-
-bool ContainsSameEvents(const Events& expected,
-                        const em::ExtensionInstallReportRequest& actual) {
-  if (actual.extension_install_reports_size() !=
-      static_cast<int>(expected.size())) {
-    return false;
-  }
-  for (const auto& expected_extension_log : expected) {
-    bool extension_found = false;
-    for (int i = 0; i < actual.extension_install_reports_size(); ++i) {
-      const auto& actual_extension_log = actual.extension_install_reports(i);
-      if (actual_extension_log.extension_id() == expected_extension_log.first) {
-        if (actual_extension_log.logs_size() !=
-            static_cast<int>(expected_extension_log.second.size())) {
-          return false;
-        }
-        for (int j = 0;
-             j < static_cast<int>(expected_extension_log.second.size()); ++j) {
-          if (actual_extension_log.logs(j).SerializePartialAsString() !=
-              expected_extension_log.second[j].SerializePartialAsString()) {
-            return false;
-          }
-        }
-        extension_found = true;
-        break;
-      }
-    }
-    if (!extension_found) {
-      return false;
-    }
-  }
-  return true;
-}
-
-base::Value::List ConvertEventsToValue(const Events& events, Profile* profile) {
-  base::Value::Dict context = reporting::GetContext(profile);
-  base::Value::List event_list;
-
-  for (auto it = events.begin(); it != events.end(); ++it) {
-    const extensions::ExtensionId& extension_id = (*it).first;
-    for (const em::ExtensionInstallReportLogEvent&
-             extension_install_report_log_event : (*it).second) {
-      base::Value::Dict wrapper = ConvertExtensionEventToValue(
-          extension_id, extension_install_report_log_event, context);
-      event_list.Append(std::move(wrapper));
-    }
-  }
-
-  return event_list;
-}
-
-MATCHER_P(MatchEvents, expected, "contains events") {
-  DCHECK(expected);
-  std::string expected_serialized_string;
-  JSONStringValueSerializer expected_serializer(&expected_serialized_string);
-  if (!expected_serializer.Serialize(*expected))
-    return false;
-
-  return arg == expected_serialized_string;
-}
-
-class TestLogTaskRunnerWrapper
-    : public ExtensionInstallEventLogManager::LogTaskRunnerWrapper {
- public:
-  TestLogTaskRunnerWrapper() {
-    test_task_runner_ = new base::TestSimpleTaskRunner;
-  }
-
-  scoped_refptr<base::SequencedTaskRunner> GetTaskRunner() override {
-    return test_task_runner_;
-  }
-
-  base::TestSimpleTaskRunner* test_task_runner() const {
-    return test_task_runner_.get();
-  }
-
- private:
-  scoped_refptr<base::TestSimpleTaskRunner> test_task_runner_;
-};
-
-}  // namespace
-
-class ExtensionInstallEventLogManagerTest : public testing::Test {
- protected:
-  ExtensionInstallEventLogManagerTest()
-      : log_task_runner_(log_task_runner_wrapper_.test_task_runner()),
-        log_file_path_(profile_.GetPath().Append(kLogFileName)),
-        extension_ids_{std::begin(kExtensionIds), std::end(kExtensionIds)},
-        scoped_fake_statistics_provider_(
-            std::make_unique<
-                chromeos::system::ScopedFakeStatisticsProvider>()) {}
-
-  // testing::Test:
-  void SetUp() override {
-    auto mock_report_queue = std::unique_ptr<::reporting::MockReportQueue,
-                                             base::OnTaskRunnerDeleter>(
-        new ::reporting::MockReportQueue(),
-        base::OnTaskRunnerDeleter(base::SequencedTaskRunnerHandle::Get()));
-    mock_report_queue_ = mock_report_queue.get();
-    uploader_ = ExtensionInstallEventLogUploader::CreateForTest(
-        /*profile=*/nullptr, std::move(mock_report_queue));
-    event_.set_timestamp(0);
-    event_.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-
-    scoped_main_task_runner_ =
-        std::make_unique<base::ScopedMockTimeMessageLoopTaskRunner>();
-    main_task_runner_ = scoped_main_task_runner_->task_runner();
-  }
-
-  // testing::Test:
-  void TearDown() override {
-    Mock::VerifyAndClearExpectations(mock_report_queue_);
-    manager_.reset();
-    FastForwardUntilNoTasksRemain();
-
-    main_task_runner_ = nullptr;
-    scoped_main_task_runner_.reset();
-  }
-
-  void CreateManager() {
-    manager_ = std::make_unique<ExtensionInstallEventLogManager>(
-        &log_task_runner_wrapper_, uploader_.get(), &profile_);
-    FlushNonDelayedTasks();
-  }
-
-  void AddLogEntry(int extension_index) {
-    ASSERT_GE(extension_index, 0);
-    ASSERT_LT(extension_index, static_cast<int>(std::size(kExtensionIds)));
-    const extensions::ExtensionId extension_id = kExtensionIds[extension_index];
-    events_[extension_id].push_back(event_);
-    manager_->Add({kExtensionIds[extension_index]}, event_);
-    FlushNonDelayedTasks();
-    event_.set_timestamp(event_.timestamp() + 1000);
-  }
-
-  void AddLogEntryForsetOfExtensions(
-      const std::set<extensions::ExtensionId>& extensions) {
-    for (const auto& extension_id : extensions) {
-      events_[extension_id].push_back(event_);
-    }
-    manager_->Add(extensions, event_);
-    FlushNonDelayedTasks();
-    event_.set_timestamp(event_.timestamp() + 1000);
-  }
-
-  void AddLogEntryForAllExtensions() {
-    AddLogEntryForsetOfExtensions(extension_ids_);
-  }
-
-  void BuildReport() {
-    base::Value::List event_list =
-        ConvertEventsToValue(events_, /*profile=*/nullptr);
-    base::Value::Dict context = reporting::GetContext(/*profile=*/nullptr);
-
-    events_value_ = RealtimeReportingJobConfiguration::BuildReport(
-        std::move(event_list), std::move(context));
-  }
-
-  void ExpectUploadAndCaptureCallback(
-      reporting::MockReportQueue::EnqueueCallback* callback) {
-    events_value_.clear();
-    BuildReport();
-
-    EXPECT_CALL(*mock_report_queue_,
-                AddRecord(MatchEvents(&events_value_), _, _))
-        .WillOnce(
-            Invoke([callback](base::StringPiece, reporting::Priority priority,
-                              reporting::MockReportQueue::EnqueueCallback cb) {
-              *callback = std::move(cb);
-              return reporting::Status::StatusOK();
-            }));
-  }
-
-  void ReportUploadSuccess(
-      reporting::MockReportQueue::EnqueueCallback callback) {
-    std::move(callback).Run(reporting::Status::StatusOK());
-    FlushNonDelayedTasks();
-  }
-
-  void ExpectAndCompleteUpload() {
-    events_value_.clear();
-    BuildReport();
-
-    EXPECT_CALL(*mock_report_queue_,
-                AddRecord(MatchEvents(&events_value_), _, _))
-        .WillOnce(
-            Invoke([](base::StringPiece, reporting::Priority priority,
-                      reporting::MockReportQueue::EnqueueCallback callback) {
-              std::move(callback).Run(reporting::Status::StatusOK());
-              return reporting::Status::StatusOK();
-            }));
-  }
-
-  void FlushNonDelayedTasks() {
-    main_task_runner_->RunUntilIdle();
-    while (log_task_runner_->HasPendingTask()) {
-      log_task_runner_->RunUntilIdle();
-      main_task_runner_->RunUntilIdle();
-    }
-  }
-
-  void FastForwardTo(const base::TimeDelta& offset) {
-    main_task_runner_->FastForwardBy(
-        offset - (main_task_runner_->NowTicks() - base::TimeTicks()));
-    FlushNonDelayedTasks();
-  }
-
-  void FastForwardUntilNoTasksRemain() {
-    main_task_runner_->FastForwardUntilNoTasksRemain();
-    while (log_task_runner_->HasPendingTask()) {
-      log_task_runner_->RunUntilIdle();
-      main_task_runner_->FastForwardUntilNoTasksRemain();
-    }
-  }
-
-  void VerifyLogFile() {
-    EXPECT_TRUE(base::PathExists(log_file_path_));
-    ExtensionInstallEventLog log(log_file_path_);
-    em::ExtensionInstallReportRequest log_events;
-    log.Serialize(&log_events);
-    EXPECT_TRUE(ContainsSameEvents(events_, log_events));
-  }
-
-  void VerifyAndDeleteLogFile() {
-    VerifyLogFile();
-    base::DeleteFile(log_file_path_);
-  }
-
-  TestLogTaskRunnerWrapper log_task_runner_wrapper_;
-  content::BrowserTaskEnvironment task_environment_;
-  extensions::QuotaService::ScopedDisablePurgeForTesting
-      disable_purge_for_testing_;
-  TestingProfile profile_;
-  reporting::MockReportQueue* mock_report_queue_;
-  std::unique_ptr<ExtensionInstallEventLogUploader> uploader_;
-  std::unique_ptr<base::ScopedMockTimeMessageLoopTaskRunner>
-      scoped_main_task_runner_;
-
-  base::TestSimpleTaskRunner* log_task_runner_ = nullptr;
-  base::TestMockTimeTaskRunner* main_task_runner_ = nullptr;
-
-  const base::FilePath log_file_path_;
-  const std::set<extensions::ExtensionId> extension_ids_;
-  base::Value::Dict events_value_;
-  std::unique_ptr<chromeos::system::ScopedFakeStatisticsProvider>
-      scoped_fake_statistics_provider_;
-
-  em::ExtensionInstallReportLogEvent event_;
-  Events events_;
-
-  std::unique_ptr<ExtensionInstallEventLogManager> manager_;
-};
-
-// Create a manager with an empty log. Verify that no store is scheduled and no
-// upload occurs.
-TEST_F(ExtensionInstallEventLogManagerTest, CreateEmpty) {
-  CreateManager();
-
-  FastForwardUntilNoTasksRemain();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Store a populated log. Create a manager that loads the non-empty log. Delete
-// the log. Verify that no store is scheduled and an expedited initial upload
-// occurs after fifteen minutes.
-TEST_F(ExtensionInstallEventLogManagerTest, CreateNonEmpty) {
-  ExtensionInstallEventLog log(log_file_path_);
-  events_[kExtensionIds[0]].push_back(event_);
-  log.Add(kExtensionIds[0], event_);
-  log.Store();
-  EXPECT_TRUE(base::PathExists(log_file_path_));
-
-  CreateManager();
-  ASSERT_TRUE(base::DeleteFile(log_file_path_));
-
-  FastForwardTo(kExpeditedUploadDelay - kOneMs);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  ExpectAndCompleteUpload();
-  FastForwardTo(kExpeditedUploadDelay);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  events_.clear();
-  VerifyAndDeleteLogFile();
-
-  FastForwardUntilNoTasksRemain();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Add a log entry after two minutes. Verify that a store is scheduled after
-// five seconds and an expedited initial upload occurs after a total of fifteen
-// minutes.
-TEST_F(ExtensionInstallEventLogManagerTest, AddBeforeInitialUpload) {
-  CreateManager();
-
-  const base::TimeDelta offset = base::Minutes(2);
-  FastForwardTo(offset);
-  AddLogEntry(0 /* extension_index */);
-
-  FastForwardTo(offset + kStoreDelay - kOneMs);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  FastForwardTo(offset + kStoreDelay);
-  VerifyAndDeleteLogFile();
-
-  FastForwardTo(kExpeditedUploadDelay - kOneMs);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  ExpectAndCompleteUpload();
-  FastForwardTo(kExpeditedUploadDelay);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  events_.clear();
-  VerifyAndDeleteLogFile();
-
-  FastForwardUntilNoTasksRemain();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Wait twenty minutes. Add four log entries at two second cadence. Verify that
-// stores are scheduled after five and eleven seconds and an upload occurs
-// after three hours.
-TEST_F(ExtensionInstallEventLogManagerTest, Add) {
-  CreateManager();
-
-  const base::TimeDelta offset = base::Minutes(20);
-  FastForwardTo(offset);
-  AddLogEntry(0 /* extension_index */);
-
-  FastForwardTo(offset + base::Seconds(2));
-  AddLogEntry(0 /* extension_index */);
-
-  FastForwardTo(offset + base::Seconds(4));
-  AddLogEntry(0 /* extension_index */);
-
-  FastForwardTo(offset + kStoreDelay - kOneMs);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  FastForwardTo(offset + kStoreDelay);
-  VerifyAndDeleteLogFile();
-
-  FastForwardTo(offset + base::Seconds(6));
-  AddLogEntry(0 /* extension_index */);
-
-  FastForwardTo(offset + base::Seconds(6) + kStoreDelay - kOneMs);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  FastForwardTo(offset + base::Seconds(6) + kStoreDelay);
-  VerifyAndDeleteLogFile();
-
-  FastForwardTo(offset + kUploadInterval - kOneMs);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  ExpectAndCompleteUpload();
-  FastForwardTo(offset + kUploadInterval);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  events_.clear();
-  VerifyAndDeleteLogFile();
-
-  FastForwardUntilNoTasksRemain();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Wait twenty minutes. Add an identical log entry for multiple extensions.
-// Verify that a store is scheduled after five seconds and an upload occurs
-// after three hours.
-TEST_F(ExtensionInstallEventLogManagerTest, AddForMultipleExtensions) {
-  CreateManager();
-
-  const base::TimeDelta offset = base::Minutes(20);
-  FastForwardTo(offset);
-  AddLogEntryForAllExtensions();
-
-  FastForwardTo(offset + kStoreDelay - kOneMs);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  FastForwardTo(offset + kStoreDelay);
-  VerifyAndDeleteLogFile();
-
-  FastForwardTo(offset + kUploadInterval - kOneMs);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  ExpectAndCompleteUpload();
-  FastForwardTo(offset + kUploadInterval);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  events_.clear();
-  VerifyAndDeleteLogFile();
-
-  FastForwardUntilNoTasksRemain();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Wait twenty minutes. Add an identical log entry for an empty set of
-// extensions. Verify that no store is scheduled and no upload occurs.
-TEST_F(ExtensionInstallEventLogManagerTest, AddForZeroExtensions) {
-  CreateManager();
-
-  const base::TimeDelta offset = base::Minutes(20);
-  FastForwardTo(offset);
-  AddLogEntryForsetOfExtensions({});
-
-  FastForwardUntilNoTasksRemain();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Wait twenty minutes. Fill the log for one extension until its size exceeds
-// the threshold for expedited upload. Verify that a store is scheduled after
-// five seconds and an upload occurs after fifteen minutes.
-TEST_F(ExtensionInstallEventLogManagerTest, AddToTriggerMaxSizeExpedited) {
-  CreateManager();
-
-  const base::TimeDelta offset = base::Minutes(20);
-  FastForwardTo(offset);
-  for (int i = 0; i <= kMaxSizeExpeditedUploadThreshold; ++i) {
-    AddLogEntry(0 /* extension_index */);
-  }
-
-  FastForwardTo(offset + kStoreDelay - kOneMs);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  FastForwardTo(offset + kStoreDelay);
-  VerifyAndDeleteLogFile();
-
-  FastForwardTo(offset + kExpeditedUploadDelay - kOneMs);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  ExpectAndCompleteUpload();
-  FastForwardTo(offset + kExpeditedUploadDelay);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  events_.clear();
-  VerifyAndDeleteLogFile();
-
-  FastForwardUntilNoTasksRemain();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Wait twenty minutes. Fill the logs for five extensions until their total size
-// exceeds the threshold for expedited upload. Verify that a store is scheduled
-// after five seconds and an upload occurs after fifteen minutes.
-TEST_F(ExtensionInstallEventLogManagerTest, AddToTriggerTotalSizeExpedited) {
-  CreateManager();
-
-  const base::TimeDelta offset = base::Minutes(20);
-  FastForwardTo(offset);
-  int i = 0;
-  while (i <= kTotalSizeExpeditedUploadThreshold) {
-    for (int j = 0; j < static_cast<int>(std::size(kExtensionIds)); ++i, ++j) {
-      AddLogEntry(j /* extension_index */);
-    }
-  }
-
-  FastForwardTo(offset + kStoreDelay - kOneMs);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  FastForwardTo(offset + kStoreDelay);
-  VerifyAndDeleteLogFile();
-
-  FastForwardTo(offset + kExpeditedUploadDelay - kOneMs);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  ExpectAndCompleteUpload();
-  FastForwardTo(offset + kExpeditedUploadDelay);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  events_.clear();
-  VerifyAndDeleteLogFile();
-
-  FastForwardUntilNoTasksRemain();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Wait twenty minutes. Add an identical log entry for multiple extensions
-// repeatedly, until the log size exceeds the threshold for expedited upload.
-// Verify that a store is scheduled after five seconds and an upload occurs
-// after fifteen minutes.
-TEST_F(ExtensionInstallEventLogManagerTest,
-       AddForMultipleExtensionsToTriggerTotalSizeExpedited) {
-  CreateManager();
-
-  const base::TimeDelta offset = base::Minutes(20);
-  FastForwardTo(offset);
-  for (int i = 0; i <= kTotalSizeExpeditedUploadThreshold;
-       i += std::size(kExtensionIds)) {
-    AddLogEntryForAllExtensions();
-  }
-
-  FastForwardTo(offset + kStoreDelay - kOneMs);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  FastForwardTo(offset + kStoreDelay);
-  VerifyAndDeleteLogFile();
-
-  FastForwardTo(offset + kExpeditedUploadDelay - kOneMs);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  ExpectAndCompleteUpload();
-  FastForwardTo(offset + kExpeditedUploadDelay);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  events_.clear();
-  VerifyAndDeleteLogFile();
-
-  FastForwardUntilNoTasksRemain();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Add a log entry. Verify that a store is scheduled after five seconds and an
-// expedited initial upload starts after fifteen minutes. Then, add another log
-// entry. Complete the upload. Verify that the pending log entry is stored.
-// Then, verify that a regular upload occurs three hours later.
-TEST_F(ExtensionInstallEventLogManagerTest, RequestUploadAddUpload) {
-  CreateManager();
-  AddLogEntry(0 /* extension_index */);
-
-  FastForwardTo(kStoreDelay - kOneMs);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  FastForwardTo(kStoreDelay);
-  VerifyAndDeleteLogFile();
-
-  FastForwardTo(kExpeditedUploadDelay - kOneMs);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-
-  reporting::MockReportQueue::EnqueueCallback upload_callback;
-  ExpectUploadAndCaptureCallback(&upload_callback);
-  FastForwardTo(kExpeditedUploadDelay);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  events_.clear();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  AddLogEntry(0 /* extension_index */);
-  ReportUploadSuccess(std::move(upload_callback));
-  VerifyAndDeleteLogFile();
-
-  FastForwardTo(kExpeditedUploadDelay + kUploadInterval - kOneMs);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  ExpectAndCompleteUpload();
-  FastForwardTo(kExpeditedUploadDelay + kUploadInterval);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  events_.clear();
-  VerifyAndDeleteLogFile();
-
-  FastForwardUntilNoTasksRemain();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Add a log entry. Verify that a store is scheduled after five seconds and an
-// expedited initial upload starts after fifteen minutes. Then, fill the log for
-// one extension until its size exceeds the threshold for expedited upload.
-// Complete the upload. Verify that the pending log entries are stored. Then,
-// verify that an expedited upload occurs fifteen minutes later.
-TEST_F(ExtensionInstallEventLogManagerTest, RequestUploadAddExpeditedUpload) {
-  CreateManager();
-  AddLogEntry(0 /* extension_index */);
-
-  FastForwardTo(kStoreDelay - kOneMs);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  FastForwardTo(kStoreDelay);
-  VerifyAndDeleteLogFile();
-
-  FastForwardTo(kExpeditedUploadDelay - kOneMs);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-
-  reporting::MockReportQueue::EnqueueCallback upload_callback;
-  ExpectUploadAndCaptureCallback(&upload_callback);
-  FastForwardTo(kExpeditedUploadDelay);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  events_.clear();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  for (int i = 0; i <= kMaxSizeExpeditedUploadThreshold; ++i) {
-    AddLogEntry(0 /* extension_index */);
-  }
-  ReportUploadSuccess(std::move(upload_callback));
-  VerifyAndDeleteLogFile();
-
-  FastForwardTo(kExpeditedUploadDelay + kExpeditedUploadDelay - kOneMs);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  ExpectAndCompleteUpload();
-  FastForwardTo(kExpeditedUploadDelay + kExpeditedUploadDelay);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  events_.clear();
-  VerifyAndDeleteLogFile();
-
-  FastForwardUntilNoTasksRemain();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Wait twenty minutes. Fill the log for one extension until its size exceeds
-// the threshold for expedited upload. Verify that a store is scheduled after
-// five seconds and an upload starts after fifteen minutes. Then, add another
-// log entry. Complete the upload. Verify that the pending log entry is stored.
-// Then, verify that a regular upload occurs three hours later.
-TEST_F(ExtensionInstallEventLogManagerTest, RequestExpeditedUploadAddUpload) {
-  CreateManager();
-
-  const base::TimeDelta offset = base::Minutes(20);
-  FastForwardTo(offset);
-  for (int i = 0; i <= kMaxSizeExpeditedUploadThreshold; ++i) {
-    AddLogEntry(0 /* extension_index */);
-  }
-
-  FastForwardTo(offset + kStoreDelay - kOneMs);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  FastForwardTo(offset + kStoreDelay);
-  VerifyAndDeleteLogFile();
-
-  FastForwardTo(offset + kExpeditedUploadDelay - kOneMs);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  reporting::MockReportQueue::EnqueueCallback upload_callback;
-  ExpectUploadAndCaptureCallback(&upload_callback);
-  FastForwardTo(offset + kExpeditedUploadDelay);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  events_.clear();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  AddLogEntry(0 /* extension_index */);
-  ReportUploadSuccess(std::move(upload_callback));
-  VerifyAndDeleteLogFile();
-
-  FastForwardTo(offset + kExpeditedUploadDelay + kUploadInterval - kOneMs);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  ExpectAndCompleteUpload();
-  FastForwardTo(offset + kExpeditedUploadDelay + kUploadInterval);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-  events_.clear();
-  VerifyAndDeleteLogFile();
-
-  FastForwardUntilNoTasksRemain();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Add a log entry. Destroy the manager. Verify that an immediate store is
-// scheduled during destruction.
-TEST_F(ExtensionInstallEventLogManagerTest, StoreOnShutdown) {
-  CreateManager();
-
-  AddLogEntry(0 /* extension_index */);
-
-  manager_.reset();
-  FlushNonDelayedTasks();
-  VerifyAndDeleteLogFile();
-}
-
-// Store a populated log.  Clear all data related to the extension-install event
-// log. Verify that an immediate deletion of the log file is scheduled.
-TEST_F(ExtensionInstallEventLogManagerTest, Clear) {
-  ExtensionInstallEventLog log(log_file_path_);
-  events_[kExtensionIds[0]].push_back(event_);
-  log.Add(kExtensionIds[0], event_);
-  log.Store();
-  ExtensionInstallEventLogManager::Clear(&log_task_runner_wrapper_, &profile_);
-  VerifyLogFile();
-
-  FlushNonDelayedTasks();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Add a log entry. Destroy the manager. Verify that an immediate store is
-// scheduled during destruction.  Clear all data related to the extension
-// install event log. Create a manager. Verify that the log file is deleted
-// before the manager attempts to load it.
-TEST_F(ExtensionInstallEventLogManagerTest, RunClearRun) {
-  CreateManager();
-
-  AddLogEntry(0 /* extension_index */);
-
-  manager_.reset();
-  FlushNonDelayedTasks();
-  VerifyLogFile();
-
-  ExtensionInstallEventLogManager::Clear(&log_task_runner_wrapper_, &profile_);
-
-  CreateManager();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-
-  FastForwardUntilNoTasksRemain();
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-}  // namespace policy
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_wrapper.cc b/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_wrapper.cc
deleted file mode 100644
index 34bcd7a..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_wrapper.cc
+++ /dev/null
@@ -1,89 +0,0 @@
-// 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.
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_manager_wrapper.h"
-
-#include "base/bind.h"
-#include "base/callback_helpers.h"
-#include "base/location.h"
-#include "base/threading/thread_task_runner_handle.h"
-#include "chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.h"
-#include "chrome/browser/lifetime/termination_notification.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/common/pref_names.h"
-#include "components/prefs/pref_registry_simple.h"
-#include "components/prefs/pref_service.h"
-
-namespace policy {
-
-ExtensionInstallEventLogManagerWrapper::
-    ~ExtensionInstallEventLogManagerWrapper() = default;
-
-// static
-ExtensionInstallEventLogManagerWrapper*
-ExtensionInstallEventLogManagerWrapper::CreateForProfile(Profile* profile) {
-  if (!profile->GetUserCloudPolicyManagerAsh())
-    return nullptr;
-  ExtensionInstallEventLogManagerWrapper* wrapper =
-      new ExtensionInstallEventLogManagerWrapper(profile);
-  wrapper->Init();
-  return wrapper;
-}
-
-// static
-void ExtensionInstallEventLogManagerWrapper::RegisterProfilePrefs(
-    PrefRegistrySimple* registry) {
-  registry->RegisterBooleanPref(prefs::kExtensionInstallEventLoggingEnabled,
-                                true);
-}
-
-ExtensionInstallEventLogManagerWrapper::ExtensionInstallEventLogManagerWrapper(
-    Profile* profile)
-    : profile_(profile) {
-  log_task_runner_ =
-      std::make_unique<ExtensionInstallEventLogManager::LogTaskRunnerWrapper>();
-
-  pref_change_registrar_.Init(profile->GetPrefs());
-  pref_change_registrar_.Add(
-      prefs::kExtensionInstallEventLoggingEnabled,
-      base::BindRepeating(&ExtensionInstallEventLogManagerWrapper::EvaluatePref,
-                          base::Unretained(this)));
-  app_terminating_subscription_ = browser_shutdown::AddAppTerminatingCallback(
-      base::BindOnce(&ExtensionInstallEventLogManagerWrapper::OnAppTerminating,
-                     base::Unretained(this)));
-}
-
-void ExtensionInstallEventLogManagerWrapper::Init() {
-  EvaluatePref();
-}
-
-void ExtensionInstallEventLogManagerWrapper::CreateManager() {
-  log_manager_ = std::make_unique<ExtensionInstallEventLogManager>(
-      log_task_runner_.get(),
-      profile_->GetUserCloudPolicyManagerAsh()
-          ->GetExtensionInstallEventLogUploader(),
-      profile_);
-}
-
-void ExtensionInstallEventLogManagerWrapper::DestroyManager() {
-  log_manager_.reset();
-}
-
-void ExtensionInstallEventLogManagerWrapper::EvaluatePref() {
-  if (profile_->GetPrefs()->GetBoolean(
-          prefs::kExtensionInstallEventLoggingEnabled)) {
-    if (!log_manager_) {
-      CreateManager();
-    }
-  } else {
-    DestroyManager();
-    ExtensionInstallEventLogManager::Clear(log_task_runner_.get(), profile_);
-  }
-}
-
-void ExtensionInstallEventLogManagerWrapper::OnAppTerminating() {
-  base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this);
-}
-
-}  // namespace policy
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_wrapper.h b/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_wrapper.h
deleted file mode 100644
index c3539ca..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_wrapper.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// 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.
-
-#ifndef CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_MANAGER_WRAPPER_H_
-#define CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_MANAGER_WRAPPER_H_
-
-#include <memory>
-
-#include "base/callback_list.h"
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_manager.h"
-#include "components/prefs/pref_change_registrar.h"
-
-class PrefRegistrySimple;
-class Profile;
-
-namespace policy {
-
-// Observes the pref that indicates whether to log events for extension
-// installs. When logging is enabled, creates an
-// |ExtensionInstallEventLogManager|. When logging is disabled, destroys the
-// |ExtensionInstallEventLogManager|, if any, and clears all data related to the
-// extension install event log. Ensures correct sequencing of I/O operations by
-// using one |InstallEventLogManager::LogTaskRunnerWrapper| for all accesses to
-// the log file. An AppTerminatingCallback is used to delete the
-// ThreadTaskRunner when the last browser window has been shut down.
-class ExtensionInstallEventLogManagerWrapper {
- public:
-  virtual ~ExtensionInstallEventLogManagerWrapper();
-
-  // Creates a new |ExtensionInstallEventLogManager| to handle extension install
-  // event logging for |profile|. The object returned manages its own lifetime
-  // and self-destructs on logout. The reporting is supported only for cloud
-  // managed users on ChromeOS. Returns nullptr in other cases.
-  static ExtensionInstallEventLogManagerWrapper* CreateForProfile(
-      Profile* profile);
-
-  static void RegisterProfilePrefs(PrefRegistrySimple* registry);
-
- protected:
-  explicit ExtensionInstallEventLogManagerWrapper(Profile* profile);
-
-  // Must be called right after construction. Extracted into a separate method
-  // for testing.
-  void Init();
-
-  // Creates the |log_manager_|. Virtual for testing.
-  virtual void CreateManager();
-
-  // Destroys the |log_manager_|. Virtual for testing.
-  virtual void DestroyManager();
-
-  // Provides the task runner used for all I/O on the log file.
-  std::unique_ptr<ExtensionInstallEventLogManager::LogTaskRunnerWrapper>
-      log_task_runner_;
-
- private:
-  // Evaluates the current state of the pref that indicates whether to log
-  // events for extension installs. If logging is enabled, creates the
-  // |log_manager_|. If logging is disabled, destroys the |log_manager_| and
-  // clears all data related to the extension install event log.
-  void EvaluatePref();
-
-  void OnAppTerminating();
-
-  // The profile whose extension install events are being logged.
-  Profile* const profile_;
-
-  // Handles collection, storage and upload of extension install event logs.
-  std::unique_ptr<ExtensionInstallEventLogManager> log_manager_;
-
-  // Pref change observer.
-  PrefChangeRegistrar pref_change_registrar_;
-
-  base::CallbackListSubscription app_terminating_subscription_;
-};
-
-}  // namespace policy
-
-#endif  // CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_MANAGER_WRAPPER_H_
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_wrapper_unittest.cc b/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_wrapper_unittest.cc
deleted file mode 100644
index a41ac75b..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_wrapper_unittest.cc
+++ /dev/null
@@ -1,200 +0,0 @@
-// 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.
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_manager_wrapper.h"
-
-#include "base/bind.h"
-#include "base/callback_helpers.h"
-#include "base/files/file_path.h"
-#include "base/files/file_util.h"
-#include "base/location.h"
-#include "base/memory/ref_counted.h"
-#include "base/run_loop.h"
-#include "base/task/sequenced_task_runner.h"
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/test/base/testing_profile.h"
-#include "components/policy/proto/device_management_backend.pb.h"
-#include "components/prefs/pref_service.h"
-#include "content/public/test/browser_task_environment.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::Mock;
-
-namespace em = enterprise_management;
-
-namespace policy {
-
-namespace {
-
-constexpr base::FilePath::CharType kLogFileName[] =
-    FILE_PATH_LITERAL("extension_install_log");
-
-constexpr char kExtensionId[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
-
-class ExtensionInstallEventLogManagerWrapperTestable
-    : public ExtensionInstallEventLogManagerWrapper {
- public:
-  explicit ExtensionInstallEventLogManagerWrapperTestable(Profile* profile)
-      : ExtensionInstallEventLogManagerWrapper(profile) {}
-
-  scoped_refptr<base::SequencedTaskRunner> log_task_runner() {
-    return log_task_runner_->GetTaskRunner();
-  }
-
-  // Make |Init()| visible for testing.
-  using ExtensionInstallEventLogManagerWrapper::Init;
-
-  // ExtensionInstallEventLogManagerWrapper:
-  MOCK_METHOD0(CreateManager, void());
-  MOCK_METHOD0(DestroyManager, void());
-};
-
-}  // namespace
-
-class ExtensionInstallEventLogManagerWrapperTest : public testing::Test {
- protected:
-  ExtensionInstallEventLogManagerWrapperTest()
-      : log_file_path_(profile_.GetPath().Append(kLogFileName)) {}
-
-  void PopulateLogFile() {
-    ExtensionInstallEventLog log(log_file_path_);
-    em::ExtensionInstallReportLogEvent event;
-    event.set_timestamp(0);
-    event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-    log.Add(kExtensionId, event);
-    log.Store();
-  }
-
-  void FlushPendingTasks() {
-    base::RunLoop run_loop;
-    ASSERT_TRUE(log_task_runner_);
-    log_task_runner_->PostTaskAndReply(FROM_HERE, base::DoNothing(),
-                                       run_loop.QuitClosure());
-    run_loop.Run();
-  }
-
-  void CreateWrapper() {
-    wrapper_ = std::make_unique<ExtensionInstallEventLogManagerWrapperTestable>(
-        &profile_);
-    log_task_runner_ = wrapper_->log_task_runner();
-  }
-
-  void DestroyWrapper() {
-    wrapper_.reset();
-    FlushPendingTasks();
-    log_task_runner_ = nullptr;
-  }
-
-  void InitWrapper() {
-    ASSERT_TRUE(wrapper_);
-    wrapper_->Init();
-    FlushPendingTasks();
-  }
-
-  content::BrowserTaskEnvironment task_environment_;
-  TestingProfile profile_;
-
-  const base::FilePath log_file_path_;
-
-  std::unique_ptr<ExtensionInstallEventLogManagerWrapperTestable> wrapper_;
-
-  scoped_refptr<base::SequencedTaskRunner> log_task_runner_;
-};
-
-// Populate a log file. Enable reporting. Create a wrapper. Verify that a
-// manager is created and the log file is not cleared. Then, destroy the
-// wrapper. Verify that the log file is not cleared.
-TEST_F(ExtensionInstallEventLogManagerWrapperTest, EnableCreate) {
-  PopulateLogFile();
-  profile_.GetPrefs()->SetBoolean(prefs::kExtensionInstallEventLoggingEnabled,
-                                  true);
-
-  CreateWrapper();
-
-  EXPECT_CALL(*wrapper_, CreateManager());
-  EXPECT_CALL(*wrapper_, DestroyManager()).Times(0);
-  InitWrapper();
-  // Verify that the log file is not cleared.
-  EXPECT_TRUE(base::PathExists(log_file_path_));
-  Mock::VerifyAndClearExpectations(&wrapper_);
-
-  DestroyWrapper();
-  // Verify that the log file is not cleared.
-  EXPECT_TRUE(base::PathExists(log_file_path_));
-}
-
-// Populate a log file. Disable reporting. Create a wrapper. Verify that no
-// manager is created and the log file is cleared.
-TEST_F(ExtensionInstallEventLogManagerWrapperTest, DisableCreate) {
-  PopulateLogFile();
-  profile_.GetPrefs()->SetBoolean(prefs::kExtensionInstallEventLoggingEnabled,
-                                  false);
-
-  CreateWrapper();
-
-  EXPECT_CALL(*wrapper_, CreateManager()).Times(0);
-  EXPECT_CALL(*wrapper_, DestroyManager());
-  InitWrapper();
-  // Verify that the log file is cleared.
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-// Disable reporting. Create a wrapper. Verify that no manager is created. Then,
-// enable reporting. Verify that a manager is created. Populate a log file.
-// Then, destroy the wrapper. Verify that the log file is not cleared.
-TEST_F(ExtensionInstallEventLogManagerWrapperTest, CreateEnable) {
-  profile_.GetPrefs()->SetBoolean(prefs::kExtensionInstallEventLoggingEnabled,
-                                  false);
-
-  CreateWrapper();
-
-  EXPECT_CALL(*wrapper_, CreateManager()).Times(0);
-  EXPECT_CALL(*wrapper_, DestroyManager());
-  InitWrapper();
-  Mock::VerifyAndClearExpectations(&wrapper_);
-
-  EXPECT_CALL(*wrapper_, CreateManager());
-  EXPECT_CALL(*wrapper_, DestroyManager()).Times(0);
-  profile_.GetPrefs()->SetBoolean(prefs::kExtensionInstallEventLoggingEnabled,
-                                  true);
-  Mock::VerifyAndClearExpectations(&wrapper_);
-  FlushPendingTasks();
-
-  PopulateLogFile();
-
-  DestroyWrapper();
-  // Verify that the log file is not cleared.
-  EXPECT_TRUE(base::PathExists(log_file_path_));
-}
-
-// Populate a log file. Enable reporting. Create a wrapper. Verify that a
-// manager is created and the log file is not cleared. Then, disable reporting.
-// Verify that the manager is destroyed and the log file is cleared.
-TEST_F(ExtensionInstallEventLogManagerWrapperTest, CreateDisable) {
-  PopulateLogFile();
-  profile_.GetPrefs()->SetBoolean(prefs::kExtensionInstallEventLoggingEnabled,
-                                  true);
-
-  CreateWrapper();
-
-  EXPECT_CALL(*wrapper_, CreateManager());
-  EXPECT_CALL(*wrapper_, DestroyManager()).Times(0);
-  InitWrapper();
-  // Verify that the log file is not cleared.
-  EXPECT_TRUE(base::PathExists(log_file_path_));
-  Mock::VerifyAndClearExpectations(&wrapper_);
-
-  EXPECT_CALL(*wrapper_, CreateManager()).Times(0);
-  EXPECT_CALL(*wrapper_, DestroyManager());
-  profile_.GetPrefs()->SetBoolean(prefs::kExtensionInstallEventLoggingEnabled,
-                                  false);
-  Mock::VerifyAndClearExpectations(&wrapper_);
-  FlushPendingTasks();
-  // Verify that the log file is cleared.
-  EXPECT_FALSE(base::PathExists(log_file_path_));
-}
-
-}  // namespace policy
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_unittest.cc b/chrome/browser/ash/policy/reporting/extension_install_event_log_unittest.cc
deleted file mode 100644
index 6bdcfb9..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_unittest.cc
+++ /dev/null
@@ -1,576 +0,0 @@
-// 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.
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log.h"
-
-#include <memory>
-
-#include "base/files/file.h"
-#include "base/files/file_util.h"
-#include "base/files/scoped_temp_dir.h"
-#include "components/policy/proto/device_management_backend.pb.h"
-#include "extensions/common/extension_id.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace em = enterprise_management;
-
-namespace policy {
-
-namespace {
-
-static const char kFirstExtensionId[] = "abcdefghijklmnopabcdefghijklmnop";
-static const char kSecondExtensionId[] = "bcdefghijklmnopabcdefghijklmnopa";
-static const char kFileName[] = "event.log";
-constexpr int kNumOfCharacters = 26;
-constexpr int kExtensionIdLen = 32;
-
-// Helper function that returns a unique extension id for a log. Returns
-// lexicographically |log_index|th alphabetical string of length
-// |kExtensionIdLen|.
-extensions::ExtensionId GetUniqueExtensionId(const int log_index) {
-  extensions::ExtensionId extension_id;
-  int rem_strings = log_index;
-  for (int i = 0; i < kExtensionIdLen; i++)
-    extension_id += 'a';
-  for (int i = 0; i < kExtensionIdLen; i++) {
-    int num_of_strings = 1;
-    // Check if number of possible strings after this index are less than
-    // |rem_strings| or not.
-    for (int j = i + 1; j < kExtensionIdLen; j++) {
-      num_of_strings *= kNumOfCharacters;
-      if (num_of_strings > rem_strings)
-        break;
-    }
-    if (num_of_strings <= rem_strings) {
-      for (char ch = 'a'; ch <= 'z'; ch++) {
-        int char_id = ch - 'a';
-        // Check first character where number of distinct strings after this
-        // index exceeds |rem_strings|.
-        if ((char_id + 1) * num_of_strings > rem_strings) {
-          extension_id[i] = ch;
-          rem_strings -= char_id * num_of_strings;
-          break;
-        }
-      }
-    }
-  }
-  return extension_id;
-}
-}  // namespace
-
-class ExtensionInstallEventLogTest : public testing::Test {
- protected:
-  ExtensionInstallEventLogTest() {}
-
-  void SetUp() override {
-    ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
-    file_name_ = temp_dir_.GetPath().Append(kFileName);
-    log_ = std::make_unique<ExtensionInstallEventLog>(file_name_);
-  }
-
-  void VerifyTenLogEntriesEach(int first_extension_timestamp_offset,
-                               int second_extension_timestamp_offset) {
-    ASSERT_EQ(2, report_.extension_install_reports_size());
-    const int first_extension_index =
-        report_.extension_install_reports(0).extension_id() == kFirstExtensionId
-            ? 0
-            : 1;
-    const int second_extension_index = 1 - first_extension_index;
-
-    const em::ExtensionInstallReport& first_extension_log =
-        report_.extension_install_reports(first_extension_index);
-    EXPECT_EQ(kFirstExtensionId, first_extension_log.extension_id());
-    ASSERT_EQ(10, first_extension_log.logs_size());
-    for (int i = 0; i < 10; ++i) {
-      EXPECT_EQ(i + first_extension_timestamp_offset,
-                first_extension_log.logs(i).timestamp());
-    }
-
-    const em::ExtensionInstallReport& second_extension_log =
-        report_.extension_install_reports(second_extension_index);
-    EXPECT_EQ(kSecondExtensionId, second_extension_log.extension_id());
-    ASSERT_EQ(10, second_extension_log.logs_size());
-    for (int i = 0; i < 10; ++i) {
-      EXPECT_EQ(i + second_extension_timestamp_offset,
-                second_extension_log.logs(i).timestamp());
-    }
-  }
-
-  void OverflowMaxLogs() {
-    em::ExtensionInstallReportLogEvent event;
-    event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-    for (int i = 0; i < ExtensionInstallEventLog::kMaxLogs - 1; ++i) {
-      event.set_timestamp(i);
-      log_->Add(GetUniqueExtensionId(i), event);
-    }
-    for (int i = 0; i < 10; ++i) {
-      event.set_timestamp(i + ExtensionInstallEventLog::kMaxLogs - 1);
-      log_->Add(kFirstExtensionId, event);
-    }
-    for (int i = 0; i < 20; ++i) {
-      event.set_timestamp(i + ExtensionInstallEventLog::kMaxLogs + 29);
-      log_->Add(kSecondExtensionId, event);
-    }
-  }
-
-  void VerifyOneLogEntryEachPlusFirstExtension(
-      int first_extension_log_entries) {
-    ASSERT_EQ(ExtensionInstallEventLog::kMaxLogs,
-              report_.extension_install_reports_size());
-    std::map<std::string, em::ExtensionInstallReport> logs;
-    for (int i = 0; i < ExtensionInstallEventLog::kMaxLogs; ++i) {
-      logs[report_.extension_install_reports(i).extension_id()] =
-          report_.extension_install_reports(i);
-    }
-
-    for (int i = 0; i < ExtensionInstallEventLog::kMaxLogs - 1; ++i) {
-      std::string extension_id = GetUniqueExtensionId(i);
-      const auto log = logs.find(extension_id);
-      ASSERT_NE(logs.end(), log);
-      EXPECT_EQ(extension_id, log->second.extension_id());
-      ASSERT_EQ(1, log->second.logs_size());
-      EXPECT_EQ(i, log->second.logs(0).timestamp());
-      EXPECT_EQ(em::ExtensionInstallReportLogEvent::SUCCESS,
-                log->second.logs(0).event_type());
-    }
-
-    const auto log = logs.find(kFirstExtensionId);
-    ASSERT_NE(logs.end(), log);
-    EXPECT_EQ(kFirstExtensionId, log->second.extension_id());
-    ASSERT_EQ(first_extension_log_entries, log->second.logs_size());
-    for (int i = 0; i < first_extension_log_entries; ++i) {
-      EXPECT_EQ(i + ExtensionInstallEventLog::kMaxLogs - 1,
-                log->second.logs(i).timestamp());
-      EXPECT_EQ(em::ExtensionInstallReportLogEvent::SUCCESS,
-                log->second.logs(i).event_type());
-    }
-
-    EXPECT_EQ(logs.end(), logs.find(kSecondExtensionId));
-  }
-
-  base::ScopedTempDir temp_dir_;
-  base::FilePath file_name_;
-  std::unique_ptr<ExtensionInstallEventLog> log_;
-  em::ExtensionInstallReportRequest report_;
-};
-
-// Do not add any log entries. Serialize the log. Verify that the serialization
-// contains no log entries.
-TEST_F(ExtensionInstallEventLogTest, SerializeEmpty) {
-  EXPECT_EQ(0, log_->total_size());
-  EXPECT_EQ(0, log_->max_size());
-
-  log_->Serialize(&report_);
-  EXPECT_EQ(0, report_.extension_install_reports_size());
-}
-
-// Populate the logs for two extensions. Verify that the entries are serialized
-// correctly.
-TEST_F(ExtensionInstallEventLogTest, AddAndSerialize) {
-  em::ExtensionInstallReportLogEvent event;
-  event.set_timestamp(0);
-  event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  log_->Add(kFirstExtensionId, event);
-  event.set_timestamp(1);
-  log_->Add(kSecondExtensionId, event);
-  event.set_timestamp(2);
-  log_->Add(kFirstExtensionId, event);
-  EXPECT_EQ(3, log_->total_size());
-  EXPECT_EQ(2, log_->max_size());
-
-  log_->Serialize(&report_);
-  ASSERT_EQ(2, report_.extension_install_reports_size());
-  const int first_extension_index =
-      report_.extension_install_reports(0).extension_id() == kFirstExtensionId
-          ? 0
-          : 1;
-  const int second_extension_index = 1 - first_extension_index;
-
-  const em::ExtensionInstallReport& first_extension_log =
-      report_.extension_install_reports(first_extension_index);
-  EXPECT_EQ(kFirstExtensionId, first_extension_log.extension_id());
-  ASSERT_EQ(2, first_extension_log.logs_size());
-  EXPECT_EQ(0, first_extension_log.logs(0).timestamp());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::SUCCESS,
-            first_extension_log.logs(0).event_type());
-  EXPECT_EQ(2, first_extension_log.logs(1).timestamp());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::SUCCESS,
-            first_extension_log.logs(1).event_type());
-
-  const em::ExtensionInstallReport& second_extension_log =
-      report_.extension_install_reports(second_extension_index);
-  EXPECT_EQ(kSecondExtensionId, second_extension_log.extension_id());
-  ASSERT_EQ(1, second_extension_log.logs_size());
-  EXPECT_EQ(1, second_extension_log.logs(0).timestamp());
-  EXPECT_EQ(em::ExtensionInstallReportLogEvent::SUCCESS,
-            second_extension_log.logs(0).event_type());
-}
-
-// Add 10 log entries for an extension. Serialize the log. Clear the serialized
-// log entries and verify that the log becomes empty. Then, serialize the log
-// again and verify it contains no log entries.
-TEST_F(ExtensionInstallEventLogTest, SerializeAndClear) {
-  em::ExtensionInstallReportLogEvent event;
-  event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  for (int i = 0; i < 10; ++i) {
-    event.set_timestamp(i);
-    log_->Add(kFirstExtensionId, event);
-  }
-  EXPECT_EQ(10, log_->total_size());
-  EXPECT_EQ(10, log_->max_size());
-
-  log_->Serialize(&report_);
-
-  log_->ClearSerialized();
-  EXPECT_EQ(0, log_->total_size());
-  EXPECT_EQ(0, log_->max_size());
-
-  report_.Clear();
-  log_->Serialize(&report_);
-  EXPECT_EQ(0, report_.extension_install_reports_size());
-}
-
-// Add 10 log entries for a first extension. Serialize the log. Add 10 more log
-// entries each for the first and a second extension. Clear the serialized log
-// entries. Then, serialize the log again. Verify that it now contains the
-// entries added after the first serialization.
-TEST_F(ExtensionInstallEventLogTest, SerializeAddClearAndSerialize) {
-  em::ExtensionInstallReportLogEvent event;
-  event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  for (int i = 0; i < 10; ++i) {
-    event.set_timestamp(i);
-    log_->Add(kFirstExtensionId, event);
-  }
-  EXPECT_EQ(10, log_->total_size());
-  EXPECT_EQ(10, log_->max_size());
-
-  log_->Serialize(&report_);
-
-  for (int i = 0; i < 10; ++i) {
-    event.set_timestamp(i + 10);
-    log_->Add(kFirstExtensionId, event);
-  }
-  for (int i = 0; i < 10; ++i) {
-    event.set_timestamp(i + 20);
-    log_->Add(kSecondExtensionId, event);
-  }
-  EXPECT_EQ(30, log_->total_size());
-  EXPECT_EQ(20, log_->max_size());
-
-  log_->ClearSerialized();
-  EXPECT_EQ(20, log_->total_size());
-  EXPECT_EQ(10, log_->max_size());
-
-  log_->Serialize(&report_);
-  VerifyTenLogEntriesEach(10 /* first_extension_timestamp_offset */,
-                          20 /* second_extension_timestamp_offset*/);
-}
-
-// Add entries for as many extensions as the log has capacity for. Add entries
-// for one more extension. Serialize the log. Verify that the log entries for
-// the last extension were ignored. Then, clear the serialized log entries.
-// Verify that the log becomes empty.
-TEST_F(ExtensionInstallEventLogTest, OverflowSerializeAndClear) {
-  OverflowMaxLogs();
-  EXPECT_EQ(ExtensionInstallEventLog::kMaxLogs + 9, log_->total_size());
-  EXPECT_EQ(10, log_->max_size());
-
-  log_->Serialize(&report_);
-  VerifyOneLogEntryEachPlusFirstExtension(10 /* first_extension_log_entries */);
-
-  log_->ClearSerialized();
-  EXPECT_EQ(0, log_->total_size());
-  EXPECT_EQ(0, log_->max_size());
-
-  report_.Clear();
-  log_->Serialize(&report_);
-  EXPECT_EQ(0, report_.extension_install_reports_size());
-}
-
-// Add entries for as many extensions as the log has capacity for. Add entries
-// for one more extension. Add more entries for one of the extensions already in
-// the log. Serialize the log. Verify that the log entries for the last
-// extension were ignored. Then, clear the serialized log entries. Verify that
-// the log becomes empty.
-TEST_F(ExtensionInstallEventLogTest, OverflowAddSerializeAndClear) {
-  OverflowMaxLogs();
-  em::ExtensionInstallReportLogEvent event;
-  event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  for (int i = 0; i < 20; ++i) {
-    event.set_timestamp(i + ExtensionInstallEventLog::kMaxLogs + 9);
-    log_->Add(kFirstExtensionId, event);
-  }
-  EXPECT_EQ(ExtensionInstallEventLog::kMaxLogs + 29, log_->total_size());
-  EXPECT_EQ(30, log_->max_size());
-
-  log_->Serialize(&report_);
-  VerifyOneLogEntryEachPlusFirstExtension(30 /* first_extension_log_entries */);
-
-  log_->ClearSerialized();
-  EXPECT_EQ(0, log_->total_size());
-  EXPECT_EQ(0, log_->max_size());
-
-  report_.Clear();
-  log_->Serialize(&report_);
-  EXPECT_EQ(0, report_.extension_install_reports_size());
-}
-
-// Add entries for as many extensions as the log has capacity for. Add entries
-// for one more extension. Serialize the log. Add more entries for one of the
-// extensions already in the log and another extension. Clear the log. Verify
-// that the log now contains the entries added after serialization for the
-// extension that was already in the log.
-TEST_F(ExtensionInstallEventLogTest, OverflowSerializeAddAndClear) {
-  OverflowMaxLogs();
-  EXPECT_EQ(ExtensionInstallEventLog::kMaxLogs + 9, log_->total_size());
-  EXPECT_EQ(10, log_->max_size());
-
-  log_->Serialize(&report_);
-
-  em::ExtensionInstallReportLogEvent event;
-  event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  for (int i = 0; i < 20; ++i) {
-    event.set_timestamp(i + ExtensionInstallEventLog::kMaxLogs + 9);
-    log_->Add(kFirstExtensionId, event);
-  }
-  for (int i = 0; i < 10; ++i) {
-    event.set_timestamp(i + ExtensionInstallEventLog::kMaxLogs + 49);
-    log_->Add(kSecondExtensionId, event);
-  }
-
-  log_->ClearSerialized();
-  EXPECT_EQ(20, log_->total_size());
-  EXPECT_EQ(20, log_->max_size());
-
-  report_.Clear();
-  log_->Serialize(&report_);
-  ASSERT_EQ(1, report_.extension_install_reports_size());
-  const em::ExtensionInstallReport& extension_log =
-      report_.extension_install_reports(0);
-  EXPECT_EQ(kFirstExtensionId, extension_log.extension_id());
-  ASSERT_EQ(20, extension_log.logs_size());
-  for (int i = 0; i < 20; ++i) {
-    EXPECT_EQ(i + ExtensionInstallEventLog::kMaxLogs + 9,
-              extension_log.logs(i).timestamp());
-  }
-}
-
-// Add 10 log entries for a first extension and more entries than the log has
-// capacity for for a second extension. Verify that the total and maximum log
-// sizes are reported correctly.
-TEST_F(ExtensionInstallEventLogTest, OverflowSingleExtension) {
-  em::ExtensionInstallReportLogEvent event;
-  event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  for (int i = 0; i < 10; ++i) {
-    event.set_timestamp(i);
-    log_->Add(kFirstExtensionId, event);
-  }
-  for (int i = 0; i < SingleExtensionInstallEventLog::kLogCapacity + 1; ++i) {
-    event.set_timestamp(i + 10);
-    log_->Add(kSecondExtensionId, event);
-  }
-  EXPECT_EQ(10 + SingleExtensionInstallEventLog::kLogCapacity,
-            log_->total_size());
-  EXPECT_EQ(SingleExtensionInstallEventLog::kLogCapacity, log_->max_size());
-}
-
-// Create an empty log. Store the log. Verify that no log file is created.
-TEST_F(ExtensionInstallEventLogTest, Store) {
-  log_->Store();
-  EXPECT_FALSE(base::PathExists(file_name_));
-}
-
-// Add a log entry. Store the log. Verify that a log file is created. Then,
-// delete the log file. Store the log. Verify that no log file is created.
-TEST_F(ExtensionInstallEventLogTest, AddStoreAndStore) {
-  em::ExtensionInstallReportLogEvent event;
-  event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  event.set_timestamp(0);
-  log_->Add(kFirstExtensionId, event);
-  log_->Store();
-  EXPECT_TRUE(base::PathExists(file_name_));
-
-  EXPECT_TRUE(base::DeleteFile(file_name_));
-
-  log_->Store();
-  EXPECT_FALSE(base::PathExists(file_name_));
-}
-
-// Serialize the log. Clear the serialized log entries. Store the log. Verify
-// that no log file is created.
-TEST_F(ExtensionInstallEventLogTest, SerializeClearAndStore) {
-  log_->Serialize(&report_);
-  log_->ClearSerialized();
-  log_->Store();
-  EXPECT_FALSE(base::PathExists(file_name_));
-}
-
-// Add a log entry. Serialize the log. Clear the serialized log entries. Store
-// the log. Verify that a log file is created. Verify that that the log contents
-// are loaded correctly.
-TEST_F(ExtensionInstallEventLogTest, AddSerializeCleaStoreAndLoad) {
-  em::ExtensionInstallReportLogEvent event;
-  event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  event.set_timestamp(0);
-  log_->Add(kFirstExtensionId, event);
-  log_->Serialize(&report_);
-  log_->ClearSerialized();
-  log_->Store();
-  EXPECT_TRUE(base::PathExists(file_name_));
-
-  ExtensionInstallEventLog log(file_name_);
-  EXPECT_EQ(0, log.total_size());
-  EXPECT_EQ(0, log.max_size());
-
-  report_.Clear();
-  log.Serialize(&report_);
-  EXPECT_EQ(0, report_.extension_install_reports_size());
-}
-
-// Populate and store a log. Load the log. Verify that that the log contents are
-// loaded correctly. Then, delete the log file. Store the log. Verify that no
-// log file is created.
-TEST_F(ExtensionInstallEventLogTest, StoreLoadAndStore) {
-  em::ExtensionInstallReportLogEvent event;
-  event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  for (int i = 0; i < 10; ++i) {
-    event.set_timestamp(i);
-    log_->Add(kFirstExtensionId, event);
-  }
-  for (int i = 0; i < 10; ++i) {
-    event.set_timestamp(i + 10);
-    log_->Add(kSecondExtensionId, event);
-  }
-
-  log_->Store();
-
-  ExtensionInstallEventLog log(file_name_);
-  EXPECT_EQ(20, log.total_size());
-  EXPECT_EQ(10, log.max_size());
-
-  log.Serialize(&report_);
-  VerifyTenLogEntriesEach(0 /* first_extension_timestamp_offset */,
-                          10 /* second_extension_timestamp_offset*/);
-
-  EXPECT_TRUE(base::DeleteFile(file_name_));
-
-  log.Store();
-  EXPECT_FALSE(base::PathExists(file_name_));
-}
-
-// Populate and serialize a log. Store the log. Load the log. Clear serialized
-// entries in the loaded log. Verify that no entries are removed.
-TEST_F(ExtensionInstallEventLogTest, SerializeStoreLoadAndClear) {
-  em::ExtensionInstallReportLogEvent event;
-  event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  for (int i = 0; i < 10; ++i) {
-    event.set_timestamp(i);
-    log_->Add(kFirstExtensionId, event);
-  }
-
-  log_->Serialize(&report_);
-
-  log_->Store();
-
-  ExtensionInstallEventLog log(file_name_);
-  EXPECT_EQ(10, log.total_size());
-  EXPECT_EQ(10, log.max_size());
-
-  log.ClearSerialized();
-  EXPECT_EQ(10, log.total_size());
-  EXPECT_EQ(10, log.max_size());
-
-  report_.Clear();
-  log.Serialize(&report_);
-  ASSERT_EQ(1, report_.extension_install_reports_size());
-  const em::ExtensionInstallReport& extension_log =
-      report_.extension_install_reports(0);
-  EXPECT_EQ(kFirstExtensionId, extension_log.extension_id());
-  ASSERT_EQ(10, extension_log.logs_size());
-  for (int i = 0; i < 10; ++i) {
-    EXPECT_EQ(i, extension_log.logs(i).timestamp());
-  }
-}
-
-// Populate and serialize a log. Store the log. Change the version in the log
-// file. Load the log. Verify that the log contents are not loaded.
-TEST_F(ExtensionInstallEventLogTest, LoadVersionMismatch) {
-  em::ExtensionInstallReportLogEvent event;
-  event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  for (int i = 0; i < 10; ++i) {
-    event.set_timestamp(i);
-    log_->Add(kFirstExtensionId, event);
-  }
-
-  log_->Store();
-
-  std::unique_ptr<base::File> file = std::make_unique<base::File>(
-      file_name_,
-      base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE);
-  int64_t version;
-  EXPECT_EQ(static_cast<ssize_t>(sizeof(version)),
-            file->Read(0, reinterpret_cast<char*>(&version), sizeof(version)));
-  --version;
-  EXPECT_EQ(
-      static_cast<ssize_t>(sizeof(version)),
-      file->Write(0, reinterpret_cast<const char*>(&version), sizeof(version)));
-  file.reset();
-
-  ExtensionInstallEventLog log(file_name_);
-  EXPECT_EQ(0, log.total_size());
-  EXPECT_EQ(0, log.max_size());
-
-  log.Serialize(&report_);
-  EXPECT_EQ(0, report_.extension_install_reports_size());
-}
-
-// Add 10 log entries each for two extensions. Store the log. Truncate the file
-// to the length of a log containing 10 log entries for one extension plus one
-// byte. Load the log. Verify that the log contains 10 logs for one extension.
-TEST_F(ExtensionInstallEventLogTest, LoadTruncated) {
-  em::ExtensionInstallReportLogEvent event;
-  event.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  for (int i = 0; i < 10; ++i) {
-    event.set_timestamp(i);
-    log_->Add(kFirstExtensionId, event);
-  }
-
-  log_->Store();
-
-  std::unique_ptr<base::File> file = std::make_unique<base::File>(
-      file_name_, base::File::FLAG_OPEN | base::File::FLAG_READ);
-  const ssize_t size = file->GetLength();
-  file.reset();
-
-  for (int i = 0; i < 10; ++i) {
-    event.set_timestamp(i);
-    log_->Add(kSecondExtensionId, event);
-  }
-
-  file = std::make_unique<base::File>(
-      file_name_, base::File::FLAG_OPEN | base::File::FLAG_WRITE);
-  file->SetLength(size + 1);
-  file.reset();
-
-  ExtensionInstallEventLog log(file_name_);
-  EXPECT_EQ(10, log.total_size());
-  EXPECT_EQ(10, log.max_size());
-
-  log.Serialize(&report_);
-  ASSERT_EQ(1, report_.extension_install_reports_size());
-  const std::string& extension_id_name =
-      report_.extension_install_reports(0).extension_id();
-  ASSERT_TRUE(extension_id_name == kFirstExtensionId ||
-              extension_id_name == kSecondExtensionId);
-
-  const em::ExtensionInstallReport& extension_log =
-      report_.extension_install_reports(0);
-  EXPECT_EQ(extension_id_name, extension_log.extension_id());
-  ASSERT_EQ(10, extension_log.logs_size());
-  for (int i = 0; i < 10; ++i) {
-    EXPECT_EQ(i, extension_log.logs(i).timestamp());
-  }
-}
-
-}  // namespace policy
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.cc b/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.cc
deleted file mode 100644
index 959561c..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.cc
+++ /dev/null
@@ -1,139 +0,0 @@
-// 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.
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.h"
-
-#include <memory>
-#include <utility>
-
-#include "ash/constants/ash_switches.h"
-#include "base/bind.h"
-#include "base/command_line.h"
-#include "base/memory/ptr_util.h"
-#include "base/task/sequenced_task_runner.h"
-#include "base/values.h"
-#include "chrome/browser/ash/policy/reporting/install_event_log_util.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/reporting_util.h"
-#include "components/policy/core/common/cloud/realtime_reporting_job_configuration.h"
-#include "components/policy/proto/device_management_backend.pb.h"
-#include "components/reporting/client/report_queue_configuration.h"
-#include "components/reporting/client/report_queue_factory.h"
-
-namespace em = enterprise_management;
-
-namespace policy {
-
-ExtensionInstallEventLogUploader::Delegate::~Delegate() {}
-
-// static
-std::unique_ptr<ExtensionInstallEventLogUploader>
-ExtensionInstallEventLogUploader::Create(Profile* profile) {
-  return base::WrapUnique(new ExtensionInstallEventLogUploader(
-      profile, ::reporting::ReportQueueFactory::CreateSpeculativeReportQueue(
-                   ::reporting::EventType::kUser,
-                   ::reporting::Destination::UPLOAD_EVENTS)));
-}
-
-// static
-std::unique_ptr<ExtensionInstallEventLogUploader>
-ExtensionInstallEventLogUploader::CreateForTest(
-    Profile* profile,
-    std::unique_ptr<::reporting::ReportQueue, base::OnTaskRunnerDeleter>
-        report_queue) {
-  return base::WrapUnique(
-      new ExtensionInstallEventLogUploader(profile, std::move(report_queue)));
-}
-
-ExtensionInstallEventLogUploader::~ExtensionInstallEventLogUploader() = default;
-
-void ExtensionInstallEventLogUploader::SetDelegate(Delegate* delegate) {
-  if (delegate_)
-    CancelUpload();
-  delegate_ = delegate;
-}
-
-ExtensionInstallEventLogUploader::ExtensionInstallEventLogUploader(
-    Profile* profile,
-    std::unique_ptr<::reporting::ReportQueue, base::OnTaskRunnerDeleter>
-        report_queue)
-    : InstallEventLogUploaderBase(profile),
-      report_queue_(std::move(report_queue)) {}
-
-void ExtensionInstallEventLogUploader::CancelClientUpload() {
-  weak_factory_.InvalidateWeakPtrs();
-}
-
-void ExtensionInstallEventLogUploader::StartSerialization() {
-  delegate_->SerializeExtensionLogForUpload(
-      base::BindOnce(&ExtensionInstallEventLogUploader::EnqueueReport,
-                     weak_factory_.GetWeakPtr()));
-}
-
-void ExtensionInstallEventLogUploader::CheckDelegateSet() {
-  CHECK(delegate_);
-}
-
-void ExtensionInstallEventLogUploader::OnUploadSuccess() {
-  delegate_->OnExtensionLogUploadSuccess();
-}
-
-void ExtensionInstallEventLogUploader::PostTaskForStartSerialization() {
-  base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE,
-      base::BindOnce(&ExtensionInstallEventLogUploader::StartSerialization,
-                     weak_factory_.GetWeakPtr()),
-      base::Milliseconds(retry_backoff_ms_));
-}
-
-void ExtensionInstallEventLogUploader::EnqueueReport(
-    const em::ExtensionInstallReportRequest* report) {
-  base::Value::Dict context = ::reporting::GetContext(profile_);
-  base::Value::List event_list = ConvertExtensionProtoToValue(report, context);
-
-  base::Value::Dict value_report =
-      RealtimeReportingJobConfiguration::BuildReport(std::move(event_list),
-                                                     std::move(context));
-
-  // If --extension-install-event-chrome-log-for-tests is present, write event
-  // logs to Chrome log. LOG(ERROR) ensures that logs are written.
-  if (base::CommandLine::ForCurrentProcess()->HasSwitch(
-          ash::switches::kExtensionInstallEventChromeLogForTests)) {
-    for (const em::ExtensionInstallReport& extension_install_report :
-         report->extension_install_reports()) {
-      for (const em::ExtensionInstallReportLogEvent&
-               extension_install_report_log_event :
-           extension_install_report.logs()) {
-        if (extension_install_report_log_event.has_event_type()) {
-          LOG(ERROR) << "Add extension install event: "
-                     << extension_install_report.extension_id() << ", "
-                     << extension_install_report_log_event.event_type();
-        }
-      }
-    }
-  }
-
-  // Uploader must be called on the correct thread, in order to achieve that we
-  // pass the appropriate task_runner along with the call.
-  auto on_enqueue_done_cb = base::BindOnce(
-      [](base::WeakPtr<ExtensionInstallEventLogUploader> uploader,
-         scoped_refptr<base::SingleThreadTaskRunner> task_runner,
-         ::reporting::Status status) {
-        auto call_uploader_with_status = base::BindOnce(
-            [](base::WeakPtr<ExtensionInstallEventLogUploader> uploader,
-               const ::reporting::Status& status) {
-              uploader->OnUploadDone(status.ok());
-            },
-            uploader, status);
-
-        task_runner->PostTask(FROM_HERE, std::move(call_uploader_with_status));
-      },
-      weak_factory_.GetWeakPtr(), base::ThreadTaskRunnerHandle::Get());
-
-  report_queue_->Enqueue(std::move(value_report),
-                         ::reporting::Priority::SLOW_BATCH,
-                         std::move(on_enqueue_done_cb));
-}
-
-}  // namespace policy
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.h b/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.h
deleted file mode 100644
index e654ac5..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.h
+++ /dev/null
@@ -1,109 +0,0 @@
-// 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.
-
-#ifndef CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_UPLOADER_H_
-#define CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_UPLOADER_H_
-
-#include <memory>
-
-#include "base/callback.h"
-#include "base/memory/weak_ptr.h"
-#include "base/task/sequenced_task_runner.h"
-#include "chrome/browser/ash/policy/reporting/install_event_log_uploader_base.h"
-#include "components/reporting/client/report_queue.h"
-#include "components/reporting/client/report_queue_provider.h"
-#include "components/reporting/util/status.h"
-#include "components/reporting/util/statusor.h"
-#include "components/reporting/util/task_runner_context.h"
-
-namespace enterprise_management {
-class ExtensionInstallReportRequest;
-}
-
-class Profile;
-
-namespace policy {
-
-// Adapter between the system that captures and stores extension install event
-// logs and the policy system which uploads them to the management server.
-class ExtensionInstallEventLogUploader : public InstallEventLogUploaderBase {
- public:
-  // The delegate that event logs will be retrieved from.
-  class Delegate {
-   public:
-    // Callback invoked by the delegate with the extension logs to be uploaded
-    // in |report|.
-    using ExtensionLogSerializationCallback = base::OnceCallback<void(
-        const enterprise_management::ExtensionInstallReportRequest* report)>;
-
-    // Requests that the delegate serialize the current logs into a protobuf
-    // and pass it to |callback|.
-    virtual void SerializeExtensionLogForUpload(
-        ExtensionLogSerializationCallback callback) = 0;
-
-    // Notification to the delegate that the logs passed via the most recent
-    // |ExtensionLogSerializationCallback| have been successfully uploaded to
-    // the server and can be pruned from storage.
-    virtual void OnExtensionLogUploadSuccess() = 0;
-
-   protected:
-    virtual ~Delegate();
-  };
-
-  // Helper for creating a new |ExtensionInstallEventLogUploader| using the
-  // specified profile.
-  static std::unique_ptr<ExtensionInstallEventLogUploader> Create(
-      Profile* profile);
-
-  // Test helper for creating a new |ExtensionInstallEventLogUploader| using the
-  // specified profile and mock report queue.
-  static std::unique_ptr<ExtensionInstallEventLogUploader> CreateForTest(
-      Profile* profile,
-      std::unique_ptr<::reporting::ReportQueue, base::OnTaskRunnerDeleter>
-          report_queue);
-
-  ~ExtensionInstallEventLogUploader() override;
-
-  // Sets the delegate. The delegate must either outlive |this| or be explicitly
-  // removed by calling |SetDelegate(nullptr)|. Removing or changing the
-  // delegate cancels the pending log upload, if any.
-  void SetDelegate(Delegate* delegate);
-
- private:
-  explicit ExtensionInstallEventLogUploader(
-      Profile* profile,
-      std::unique_ptr<::reporting::ReportQueue, base::OnTaskRunnerDeleter>
-          report_queue);
-
-  // InstallEventLogUploaderBase:
-  void CheckDelegateSet() override;
-  void PostTaskForStartSerialization() override;
-  void CancelClientUpload() override;
-  void OnUploadSuccess() override;
-  void StartSerialization() override;
-
-  // Enqueues the report for upload, and is invoked by the delegate with the
-  // extension logs to be uploaded in |report|.
-  void EnqueueReport(
-      const enterprise_management::ExtensionInstallReportRequest* report);
-
-  // Handles the status of the report enqueue.
-  void OnEnqueueDone(reporting::Status status);
-
-  // The delegate that provides serialized logs to be uploaded.
-  Delegate* delegate_ = nullptr;
-
-  // Speculative report queue for uploading events.
-  const std::unique_ptr<::reporting::ReportQueue, base::OnTaskRunnerDeleter>
-      report_queue_;
-
-  // Weak pointer factory for invalidating callbacks passed to the delegate and
-  // scheduled retries when the upload request is canceled or |this| is
-  // destroyed.
-  base::WeakPtrFactory<ExtensionInstallEventLogUploader> weak_factory_{this};
-};
-
-}  // namespace policy
-
-#endif  // CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOG_UPLOADER_H_
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader_unittest.cc b/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader_unittest.cc
deleted file mode 100644
index 5edbbbb..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader_unittest.cc
+++ /dev/null
@@ -1,397 +0,0 @@
-// 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.
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.h"
-
-#include <algorithm>
-#include <memory>
-#include <string>
-#include <utility>
-
-#include "base/json/json_string_value_serializer.h"
-#include "base/memory/ref_counted.h"
-#include "base/task/sequenced_task_runner.h"
-#include "base/test/gmock_move_support.h"
-#include "base/test/task_environment.h"
-#include "base/test/test_mock_time_task_runner.h"
-#include "base/threading/sequenced_task_runner_handle.h"
-#include "base/threading/thread_task_runner_handle.h"
-#include "base/time/time.h"
-#include "base/values.h"
-#include "chrome/browser/ash/policy/reporting/install_event_log_util.h"
-#include "chrome/browser/profiles/reporting_util.h"
-#include "chromeos/system/fake_statistics_provider.h"
-#include "components/policy/core/common/cloud/mock_cloud_policy_client.h"
-#include "components/policy/core/common/cloud/realtime_reporting_job_configuration.h"
-#include "components/policy/proto/device_management_backend.pb.h"
-#include "components/reporting/client/mock_report_queue.h"
-#include "components/reporting/util/status.h"
-#include "components/reporting/util/test_support_callbacks.h"
-#include "content/public/test/browser_task_environment.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::_;
-using testing::DoAll;
-using testing::Invoke;
-using testing::Mock;
-using testing::WithArgs;
-
-namespace em = enterprise_management;
-
-namespace policy {
-
-namespace {
-
-constexpr base::TimeDelta kMinRetryBackoff = base::Seconds(10);
-constexpr base::TimeDelta kMaxRetryBackoff = base::Days(1);
-
-static const char kExtensionId[] = "abcdefghabcdefghabcdefghabcdefgh";
-
-MATCHER_P(MatchEvents, expected, "contains events") {
-  DCHECK(expected);
-  std::string expected_serialized_string;
-  JSONStringValueSerializer expected_serializer(&expected_serialized_string);
-  if (!expected_serializer.Serialize(*expected))
-    return false;
-
-  return arg == expected_serialized_string;
-}
-
-class MockExtensionInstallEventLogUploaderDelegate
-    : public ExtensionInstallEventLogUploader::Delegate {
- public:
-  MockExtensionInstallEventLogUploaderDelegate() {}
-
-  void SerializeExtensionLogForUpload(
-      ExtensionLogSerializationCallback callback) override {
-    SerializeExtensionLogForUpload_(callback);
-  }
-
-  MOCK_METHOD1(SerializeExtensionLogForUpload_,
-               void(ExtensionLogSerializationCallback&));
-  MOCK_METHOD0(OnExtensionLogUploadSuccess, void());
-};
-
-}  // namespace
-
-class ExtensionInstallEventLogUploaderTest : public testing::Test {
- protected:
-  ExtensionInstallEventLogUploaderTest() = default;
-
-  void SetUp() override {
-    CreateUploader();
-    waiter_ = std::make_unique<reporting::test::TestCallbackWaiter>();
-  }
-
-  void TearDown() override {
-    waiter_->Wait();
-    Mock::VerifyAndClearExpectations(mock_report_queue_);
-    Mock::VerifyAndClearExpectations(&delegate_);
-    uploader_.reset();
-  }
-
-  void WaitAndReset() {
-    waiter_->Wait();
-    waiter_ = std::make_unique<reporting::test::TestCallbackWaiter>();
-  }
-
-  void CreateUploader() {
-    ASSERT_TRUE(base::SequencedTaskRunnerHandle::IsSet());
-    auto mock_report_queue = std::unique_ptr<::reporting::MockReportQueue,
-                                             base::OnTaskRunnerDeleter>(
-        new ::reporting::MockReportQueue(),
-        base::OnTaskRunnerDeleter(base::SequencedTaskRunnerHandle::Get()));
-    mock_report_queue_ = mock_report_queue.get();
-
-    uploader_ = ExtensionInstallEventLogUploader::CreateForTest(
-        /*profile=*/nullptr, std::move(mock_report_queue));
-    uploader_->SetDelegate(&delegate_);
-  }
-
-  void CompleteSerialize() {
-    waiter_->Attach();
-    EXPECT_CALL(delegate_, SerializeExtensionLogForUpload_(_))
-        .WillOnce(WithArgs<0>(
-            Invoke([=](ExtensionInstallEventLogUploader::Delegate::
-                           ExtensionLogSerializationCallback& callback) {
-              std::move(callback).Run(&log_);
-              waiter_->Signal();
-            })));
-  }
-
-  void CaptureSerialize(ExtensionInstallEventLogUploader::Delegate::
-                            ExtensionLogSerializationCallback* callback) {
-    waiter_->Attach();
-    EXPECT_CALL(delegate_, SerializeExtensionLogForUpload_(_))
-        .WillOnce(
-            DoAll(MoveArg<0>(callback), Invoke([=]() { waiter_->Signal(); })));
-  }
-
-  void CompleteUpload(bool success) {
-    value_report_.clear();
-    base::Value::Dict context = reporting::GetContext(/*profile=*/nullptr);
-    base::Value::List events = ConvertExtensionProtoToValue(&log_, context);
-    value_report_ = RealtimeReportingJobConfiguration::BuildReport(
-        std::move(events), std::move(context));
-
-    waiter_->Attach();
-
-    EXPECT_CALL(*mock_report_queue_,
-                AddRecord(MatchEvents(&value_report_), _, _))
-        .WillOnce(
-            Invoke([=](base::StringPiece, reporting::Priority priority,
-                       reporting::MockReportQueue::EnqueueCallback callback) {
-              reporting::Status status =
-                  success ? reporting::Status::StatusOK()
-                          : reporting::Status(reporting::error::INTERNAL,
-                                              "Failing for tests");
-              std::move(callback).Run(status);
-              waiter_->Signal();
-
-              // In the real ReportEnqueue::ValueEnqueue call this status return
-              // would indicate the that storage module is unavailable. From
-              // ExtensionInstallEventLogUploader, it follows the same execution
-              // path of failing UploadDone.
-              return reporting::Status::StatusOK();
-            }));
-  }
-
-  void CaptureUpload(reporting::MockReportQueue::EnqueueCallback* callback) {
-    value_report_.clear();
-    base::Value::Dict context = reporting::GetContext(/*profile=*/nullptr);
-    base::Value::List events = ConvertExtensionProtoToValue(&log_, context);
-    value_report_ = RealtimeReportingJobConfiguration::BuildReport(
-        std::move(events), std::move(context));
-
-    EXPECT_CALL(*mock_report_queue_,
-                AddRecord(MatchEvents(&value_report_), _, _))
-        .WillOnce(
-            Invoke([callback](base::StringPiece, reporting::Priority priority,
-                              reporting::MockReportQueue::EnqueueCallback cb) {
-              *callback = std::move(cb);
-              return reporting::Status::StatusOK();
-            }));
-  }
-
-  void CompleteSerializeAndUpload(bool success) {
-    CompleteSerialize();
-    CompleteUpload(success);
-  }
-
-  void CompleteSerializeAndCaptureUpload(
-      reporting::MockReportQueue::EnqueueCallback* callback) {
-    CompleteSerialize();
-    CaptureUpload(callback);
-  }
-
-  void ExpectExtensionLogUploadSuccess() {
-    waiter_->Attach();
-    EXPECT_CALL(delegate_, OnExtensionLogUploadSuccess())
-        .WillOnce(Invoke([=]() { waiter_->Signal(); }));
-  }
-
-  // Setup retry by serializing event, but failing to upload.
-  void SetupForRetry() {
-    CompleteSerializeAndUpload(false /* success */);
-    EXPECT_CALL(delegate_, OnExtensionLogUploadSuccess()).Times(0);
-    uploader_->RequestUpload();
-
-    WaitAndReset();
-
-    Mock::VerifyAndClearExpectations(&delegate_);
-    Mock::VerifyAndClearExpectations(mock_report_queue_);
-
-    // A task is enqueued with zero delay and needs to be processed.
-    base::TimeDelta zero_delay = base::Seconds(0);
-
-    // Expect and throwaway task.
-    EXPECT_EQ(task_environment_.NextMainThreadPendingTaskDelay(), zero_delay);
-    task_environment_.FastForwardBy(zero_delay);
-  }
-
-  content::BrowserTaskEnvironment task_environment_{
-      base::test::TaskEnvironment::TimeSource::MOCK_TIME};
-  em::ExtensionInstallReportRequest log_;
-  base::Value::Dict value_report_;
-
-  reporting::MockReportQueue* mock_report_queue_;
-  MockExtensionInstallEventLogUploaderDelegate delegate_;
-  std::unique_ptr<ExtensionInstallEventLogUploader> uploader_;
-
-  chromeos::system::ScopedFakeStatisticsProvider
-      scoped_fake_statistics_provider_;
-  std::unique_ptr<reporting::test::TestCallbackWaiter> waiter_;
-};
-
-// Make a log upload request. Have serialization and log upload succeed. Verify
-// that the delegate is notified of the success.
-TEST_F(ExtensionInstallEventLogUploaderTest, RequestSerializeAndUpload) {
-  CompleteSerializeAndUpload(true /* success */);
-  ExpectExtensionLogUploadSuccess();
-  uploader_->RequestUpload();
-}
-
-// Make a log upload request. Have serialization succeed and log upload begin.
-// Make a second upload request. Have the first upload succeed. Verify that the
-// delegate is notified of the first request's success and no serialization is
-// started for the second request.
-TEST_F(ExtensionInstallEventLogUploaderTest, RequestSerializeRequestAndUpload) {
-  reporting::MockReportQueue::EnqueueCallback upload_callback;
-  CompleteSerializeAndCaptureUpload(&upload_callback);
-  uploader_->RequestUpload();
-
-  WaitAndReset();
-
-  Mock::VerifyAndClearExpectations(&delegate_);
-
-  EXPECT_CALL(delegate_, SerializeExtensionLogForUpload_(_)).Times(0);
-  uploader_->RequestUpload();
-  Mock::VerifyAndClearExpectations(&delegate_);
-
-  ExpectExtensionLogUploadSuccess();
-  EXPECT_CALL(delegate_, SerializeExtensionLogForUpload_(_)).Times(0);
-  std::move(upload_callback).Run(reporting::Status::StatusOK());
-}
-
-// Make a log upload request. Have serialization begin. Make a second upload
-// request. Verify that no serialization is started for the second request.
-// Then, have the first request's serialization and upload succeed. Verify that
-// the delegate is notified of the first request's success.
-TEST_F(ExtensionInstallEventLogUploaderTest, RequestRequestSerializeAndUpload) {
-  ExtensionInstallEventLogUploader::Delegate::ExtensionLogSerializationCallback
-      serialization_callback;
-  CaptureSerialize(&serialization_callback);
-  uploader_->RequestUpload();
-
-  WaitAndReset();
-
-  Mock::VerifyAndClearExpectations(&delegate_);
-
-  EXPECT_CALL(delegate_, SerializeExtensionLogForUpload_(_)).Times(0);
-  uploader_->RequestUpload();
-  Mock::VerifyAndClearExpectations(&delegate_);
-
-  CompleteUpload(true /* success */);
-  ExpectExtensionLogUploadSuccess();
-  std::move(serialization_callback).Run(&log_);
-}
-
-// Make a log upload request. Have serialization begin. Cancel the request. Have
-// the serialization succeed. Verify that the serialization result is ignored
-// and no upload is started.
-TEST_F(ExtensionInstallEventLogUploaderTest, RequestCancelAndSerialize) {
-  ExtensionInstallEventLogUploader::Delegate::ExtensionLogSerializationCallback
-      serialization_callback;
-  CaptureSerialize(&serialization_callback);
-  uploader_->RequestUpload();
-
-  WaitAndReset();
-
-  Mock::VerifyAndClearExpectations(&delegate_);
-
-  uploader_->CancelUpload();
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-
-  EXPECT_CALL(*mock_report_queue_, AddRecord(_, _, _)).Times(0);
-  EXPECT_CALL(delegate_, OnExtensionLogUploadSuccess()).Times(0);
-  std::move(serialization_callback).Run(&log_);
-}
-
-// Make a log upload request. Have serialization succeed and log upload begin.
-// Cancel the request.
-TEST_F(ExtensionInstallEventLogUploaderTest, RequestSerializeAndCancel) {
-  reporting::MockReportQueue::EnqueueCallback upload_callback;
-  CompleteSerializeAndCaptureUpload(&upload_callback);
-  uploader_->RequestUpload();
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-
-  uploader_->CancelUpload();
-}
-
-// Make a log upload request. Have serialization succeed but log upload fail.
-// Verify that serialization and log upload are retried with exponential
-// backoff. Have the retries fail until the maximum backoff is seen twice. Then,
-// have serialization and log upload succeed. Verify that the delegate is
-// notified of the success. Then, make another log upload request. Have the
-// serialization succeed but log upload fail again. Verify that the backoff has
-// returned to the minimum.
-TEST_F(ExtensionInstallEventLogUploaderTest, Retry) {
-  SetupForRetry();
-
-  const base::TimeDelta min_delay = kMinRetryBackoff;
-  const base::TimeDelta max_delay = kMaxRetryBackoff;
-
-  base::TimeDelta expected_delay = min_delay;
-  int max_delay_count = 0;
-  while (max_delay_count < 2) {
-    // Make sure next upload attempt is scheduled correctly.
-    EXPECT_EQ(task_environment_.NextMainThreadPendingTaskDelay(),
-              expected_delay);
-
-    // Setup expectations for upload attempt.
-    CompleteSerializeAndUpload(false /* success */);
-    EXPECT_CALL(delegate_, OnExtensionLogUploadSuccess()).Times(0);
-
-    // FastForward until upload attempts are complete.
-    task_environment_.FastForwardBy(expected_delay);
-
-    WaitAndReset();
-
-    if (expected_delay == max_delay) {
-      ++max_delay_count;
-    }
-
-    expected_delay = std::min(expected_delay * 2, max_delay);
-  }
-  EXPECT_EQ(task_environment_.NextMainThreadPendingTaskDelay(), expected_delay);
-
-  // Allow Upload to succeed.
-  log_.add_extension_install_reports()->set_extension_id(kExtensionId);
-  CompleteSerializeAndUpload(true /* success */);
-  ExpectExtensionLogUploadSuccess();
-
-  task_environment_.FastForwardBy(expected_delay);
-
-  WaitAndReset();
-
-  Mock::VerifyAndClearExpectations(&delegate_);
-  Mock::VerifyAndClearExpectations(mock_report_queue_);
-
-  // Ensure upload fails and retry delay happens again.
-  SetupForRetry();
-  EXPECT_EQ(task_environment_.NextMainThreadPendingTaskDelay(), min_delay);
-}
-
-// When there is more than one identical event in the log, ensure that only one
-// of those duplicate events is in the created report.
-TEST_F(ExtensionInstallEventLogUploaderTest, DuplicateEvents) {
-  em::ExtensionInstallReport* report = log_.add_extension_install_reports();
-  report->set_extension_id(kExtensionId);
-
-  // Adding 3 events, but the first two are identical, so the final report
-  // should only contain 2 events.
-  em::ExtensionInstallReportLogEvent* ev1 = report->add_logs();
-  ev1->set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  ev1->set_timestamp(0);
-
-  em::ExtensionInstallReportLogEvent* ev2 = report->add_logs();
-  ev2->set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  ev2->set_timestamp(0);
-
-  em::ExtensionInstallReportLogEvent* ev3 = report->add_logs();
-  ev3->set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  ev3->set_timestamp(1000);
-
-  CompleteSerializeAndUpload(true /* success */);
-  ExpectExtensionLogUploadSuccess();
-  uploader_->RequestUpload();
-
-  WaitAndReset();
-  EXPECT_EQ(2u, value_report_
-                    .FindList(RealtimeReportingJobConfiguration::kEventListKey)
-                    ->size());
-}
-
-}  // namespace policy
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_logger.cc b/chrome/browser/ash/policy/reporting/extension_install_event_logger.cc
deleted file mode 100644
index 5918379..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_logger.cc
+++ /dev/null
@@ -1,131 +0,0 @@
-// 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.
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_logger.h"
-
-#include "ash/components/disks/disk.h"
-#include "base/system/sys_info.h"
-#include "base/task/task_traits.h"
-#include "base/task/thread_pool.h"
-#include "base/time/time.h"
-#include "base/values.h"
-#include "chrome/browser/policy/profile_policy_connector.h"
-#include "chrome/browser/profiles/profile.h"
-#include "components/policy/proto/device_management_backend.pb.h"
-#include "components/pref_registry/pref_registry_syncable.h"
-#include "components/prefs/pref_service.h"
-#include "extensions/browser/pref_names.h"
-
-namespace em = enterprise_management;
-
-namespace policy {
-ExtensionInstallEventLogger::ExtensionInstallEventLogger(
-    Delegate* delegate,
-    Profile* profile,
-    extensions::ExtensionRegistry* registry)
-    : InstallEventLoggerBase(profile),
-      delegate_(delegate),
-      registry_(registry),
-      pref_service_(profile->GetPrefs()) {
-  pref_change_registrar_.Init(pref_service_);
-  pref_change_registrar_.Add(
-      extensions::pref_names::kInstallForceList,
-      base::BindRepeating(
-          &ExtensionInstallEventLogger::OnForcedExtensionsPrefChanged,
-          base::Unretained(this)));
-  // Try to load list now.
-  OnForcedExtensionsPrefChanged();
-}
-
-ExtensionInstallEventLogger::~ExtensionInstallEventLogger() {
-  if (log_collector_)
-    log_collector_->OnLogout();
-  pref_change_registrar_.RemoveAll();
-}
-
-void ExtensionInstallEventLogger::AddForAllExtensions(
-    std::unique_ptr<em::ExtensionInstallReportLogEvent> event) {
-  EnsureTimestampSet(event.get());
-  AddForSetOfApps(pending_extensions_, std::move(event));
-}
-
-void ExtensionInstallEventLogger::Add(
-    const extensions::ExtensionId& extension_id,
-    bool gather_disk_space_info,
-    std::unique_ptr<em::ExtensionInstallReportLogEvent> event) {
-  AddEvent(extension_id, gather_disk_space_info, event);
-}
-
-void ExtensionInstallEventLogger::OnForcedExtensionsPrefChanged() {
-  const base::Value::Dict& value =
-      pref_service_->GetValueDict(extensions::pref_names::kInstallForceList);
-  std::set<extensions::ExtensionId> current_requested;
-  for (const auto entry : value)
-    current_requested.insert(entry.first);
-  const std::set<extensions::ExtensionId> previous_pending =
-      pending_extensions_;
-
-  const std::set<extensions::ExtensionId> added =
-      GetDifference(current_requested, extensions_);
-  const std::set<extensions::ExtensionId> removed =
-      GetDifference(previous_pending, current_requested);
-
-  if (!added.empty()) {
-    AddForSetOfAppsWithDiskSpaceInfo(
-        added, CreateEvent(em::ExtensionInstallReportLogEvent::POLICY_REQUEST));
-  }
-  if (!removed.empty()) {
-    AddForSetOfApps(removed,
-                    CreateEvent(em::ExtensionInstallReportLogEvent::CANCELED));
-  }
-  std::set<extensions::ExtensionId> current_pending = GetDifference(
-      current_requested, GetDifference(extensions_, previous_pending));
-  pending_extensions_ = std::move(current_pending);
-  extensions_ = std::move(current_requested);
-
-  if (!pending_extensions_.empty()) {
-    UpdateCollector();
-    if (initial_) {
-      log_collector_->OnLogin();
-      initial_ = false;
-    }
-    log_collector_->OnExtensionsRequested(added);
-  } else {
-    StopCollector();
-  }
-}
-
-void ExtensionInstallEventLogger::OnExtensionInstallationFinished(
-    const extensions::ExtensionId& extension_id) {
-  pending_extensions_.erase(extension_id);
-  UpdateCollector();
-}
-
-bool ExtensionInstallEventLogger::IsExtensionPending(
-    const extensions::ExtensionId& extension_id) {
-  return pending_extensions_.find(extension_id) != pending_extensions_.end();
-}
-
-void ExtensionInstallEventLogger::UpdateCollector() {
-  if (pending_extensions_.empty()) {
-    StopCollector();
-    return;
-  }
-  if (!log_collector_) {
-    log_collector_ = std::make_unique<ExtensionInstallEventLogCollector>(
-        registry_, this, profile_);
-  }
-}
-
-void ExtensionInstallEventLogger::StopCollector() {
-  log_collector_.reset();
-}
-
-void ExtensionInstallEventLogger::AddForSetOfApps(
-    const std::set<extensions::ExtensionId>& extensions,
-    std::unique_ptr<em::ExtensionInstallReportLogEvent> event) {
-  delegate_->Add(extensions, *event);
-}
-
-}  // namespace policy
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_logger.h b/chrome/browser/ash/policy/reporting/extension_install_event_logger.h
deleted file mode 100644
index c9678d4..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_logger.h
+++ /dev/null
@@ -1,117 +0,0 @@
-// 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.
-
-#ifndef CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOGGER_H_
-#define CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOGGER_H_
-
-#include <memory>
-#include <set>
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_collector.h"
-#include "chrome/browser/ash/policy/reporting/install_event_logger_base.h"
-#include "components/policy/core/common/policy_service.h"
-#include "components/policy/proto/device_management_backend.pb.h"
-#include "components/prefs/pref_change_registrar.h"
-#include "extensions/common/extension_id.h"
-
-class Profile;
-
-namespace policy {
-
-// Ensure that events related to extension installation process are logged. It
-// observes the kInstallForceList pref and keeps track of the forced extensions
-// to be installed. Additionally, an |ExtensionInstallEventLogCollector| is
-// instantiated to collect detailed logs of the extension installation process
-// whenever there is at least one pending installation request.
-class ExtensionInstallEventLogger
-    : public InstallEventLoggerBase<
-          enterprise_management::ExtensionInstallReportLogEvent,
-          enterprise_management::ExtensionInstallReportLogEvent::EventType,
-          extensions::ExtensionId>,
-      public ExtensionInstallEventLogCollector::Delegate {
- public:
-  // The delegate that events are forwarded to for inclusion in the log.
-  class Delegate {
-   public:
-    // Adds an identical log entry for every extension in |extensions|.
-    virtual void Add(
-        std::set<extensions::ExtensionId> extensions,
-        const enterprise_management::ExtensionInstallReportLogEvent& event) = 0;
-
-   protected:
-    virtual ~Delegate() = default;
-  };
-
-  // Delegate must outlive |this|.
-  ExtensionInstallEventLogger(Delegate* delegate,
-                              Profile* profile,
-                              extensions::ExtensionRegistry* registry);
-  ~ExtensionInstallEventLogger() override;
-
-  // Clears all data related to extension-install event log collection for
-  // |profile|. Must not be called while an |ExtensionInstallEventLogger| exists
-  // for |profile|.
-  static void Clear(Profile* profile);
-
-  // ExtensionInstallEventLogCollector::Delegate:
-  void AddForAllExtensions(
-      std::unique_ptr<enterprise_management::ExtensionInstallReportLogEvent>
-          event) override;
-  void Add(
-      const extensions::ExtensionId& extension_id,
-      bool gather_disk_space_info,
-      std::unique_ptr<enterprise_management::ExtensionInstallReportLogEvent>
-          event) override;
-  void OnExtensionInstallationFinished(
-      const extensions::ExtensionId& extension_id) override;
-  bool IsExtensionPending(const extensions::ExtensionId& extension_id) override;
-
- private:
-  // Loads list of force-installed extensions if available.
-  void OnForcedExtensionsPrefChanged();
-
-  // Informs the existing |log_collector_| that the list of extension
-  // install requests has changed or instantiates a new |log_collector_| if
-  // none exists yet.
-  void UpdateCollector();
-
-  // Destroys the |log_collector_|, if it exists.
-  void StopCollector();
-
-  // Override for InstallEventLoggerBase::AddForSetOfApps.
-  void AddForSetOfApps(
-      const std::set<extensions::ExtensionId>& extensions,
-      std::unique_ptr<enterprise_management::ExtensionInstallReportLogEvent>
-          event) override;
-
-  // The set of forced installed extensions updated from the forced list policy.
-  std::set<extensions::ExtensionId> extensions_;
-
-  // The set of forced installed extensions that are currently not loaded and
-  // are not failed.
-  std::set<extensions::ExtensionId> pending_extensions_;
-
-  // The delegate that events are forwarded to for inclusion in the log.
-  Delegate* const delegate_;
-
-  extensions::ExtensionRegistry* registry_;
-
-  // Unowned, but guaranteed to outlive this object.
-  PrefService* pref_service_;
-  PrefChangeRegistrar pref_change_registrar_;
-
-  // Whether we are calling OnForcedExtensionPrefChanged for the first time or
-  // not. In the initial case we would have to add the login event for the
-  // extensions.
-  bool initial_ = true;
-
-  // The |ArcAppInstallEventLogCollector| that collects detailed logs of the
-  // push-install process. Non-|nullptr| whenever there are one or more pending
-  // app push-install requests.
-  std::unique_ptr<ExtensionInstallEventLogCollector> log_collector_;
-};
-
-}  // namespace policy
-
-#endif  // CHROME_BROWSER_ASH_POLICY_REPORTING_EXTENSION_INSTALL_EVENT_LOGGER_H_
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_logger_unittest.cc b/chrome/browser/ash/policy/reporting/extension_install_event_logger_unittest.cc
deleted file mode 100644
index e9fdf825e..0000000
--- a/chrome/browser/ash/policy/reporting/extension_install_event_logger_unittest.cc
+++ /dev/null
@@ -1,356 +0,0 @@
-// 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.
-
-#include "chrome/browser/ash/policy/reporting/extension_install_event_logger.h"
-
-#include "ash/components/disks/disk_mount_manager.h"
-#include "ash/components/disks/mock_disk_mount_manager.h"
-#include "base/files/file_path.h"
-#include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
-#include "chrome/browser/extensions/external_provider_impl.h"
-#include "chrome/browser/prefs/browser_prefs.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/test/base/testing_browser_process.h"
-#include "chrome/test/base/testing_profile.h"
-#include "chromeos/ash/components/dbus/cros_disks/cros_disks_client.h"
-#include "chromeos/ash/components/network/network_handler_test_helper.h"
-#include "components/policy/policy_constants.h"
-#include "components/policy/proto/device_management_backend.pb.h"
-#include "components/prefs/testing_pref_service.h"
-#include "components/sync_preferences/testing_pref_service_syncable.h"
-#include "components/user_manager/scoped_user_manager.h"
-#include "components/user_manager/user_names.h"
-#include "content/public/test/browser_task_environment.h"
-#include "extensions/browser/pref_names.h"
-#include "extensions/common/value_builder.h"
-
-using testing::_;
-using testing::DoAll;
-using testing::Mock;
-
-namespace em = enterprise_management;
-
-namespace policy {
-
-namespace {
-
-constexpr char kStatefulPath[] = "/tmp";
-// The extension ids used here should be valid extension ids.
-constexpr char kExtensionId1[] = "abcdefghijklmnopabcdefghijklmnop";
-constexpr char kExtensionId2[] = "bcdefghijklmnopabcdefghijklmnopa";
-constexpr char kExtensionUpdateUrl[] =
-    "https://clients2.google.com/service/update2/crx";  // URL of Chrome Web
-                                                        // Store backend.
-constexpr char kEmailId[] = "test@example.com";
-constexpr char kGaiaId[] = "12345";
-
-const int kTimestamp = 123456;
-
-MATCHER_P(MatchProto, expected, "matches protobuf") {
-  return arg.SerializePartialAsString() == expected.SerializePartialAsString();
-}
-
-MATCHER_P(MatchEventExceptTimestamp, expected, "event matches") {
-  em::ExtensionInstallReportLogEvent actual_event;
-  actual_event.MergeFrom(arg);
-  actual_event.clear_timestamp();
-
-  em::ExtensionInstallReportLogEvent expected_event;
-  expected_event.MergeFrom(expected);
-  expected_event.clear_timestamp();
-
-  return actual_event.SerializePartialAsString() ==
-         expected_event.SerializePartialAsString();
-}
-
-MATCHER_P(MatchEventExceptDiskSpace, expected, "event matches") {
-  em::ExtensionInstallReportLogEvent actual_event;
-  actual_event.MergeFrom(arg);
-  actual_event.clear_stateful_total();
-  actual_event.clear_stateful_free();
-
-  em::ExtensionInstallReportLogEvent expected_event;
-  expected_event.MergeFrom(expected);
-  expected_event.clear_stateful_total();
-  expected_event.clear_stateful_free();
-
-  return actual_event.SerializePartialAsString() ==
-         expected_event.SerializePartialAsString();
-}
-
-MATCHER_P(MatchEventExceptTimestampAndDiskSpace, expected, "event matches") {
-  em::ExtensionInstallReportLogEvent actual_event;
-  actual_event.MergeFrom(arg);
-  actual_event.clear_timestamp();
-  actual_event.clear_stateful_total();
-  actual_event.clear_stateful_free();
-
-  em::ExtensionInstallReportLogEvent expected_event;
-  expected_event.MergeFrom(expected);
-  expected_event.clear_timestamp();
-  expected_event.clear_stateful_total();
-  expected_event.clear_stateful_free();
-
-  return actual_event.SerializePartialAsString() ==
-         expected_event.SerializePartialAsString();
-}
-
-ACTION_TEMPLATE(SaveTimestamp,
-                HAS_1_TEMPLATE_PARAMS(int, k),
-                AND_1_VALUE_PARAMS(out)) {
-  *out = testing::get<k>(args).timestamp();
-}
-
-ACTION_TEMPLATE(SaveStatefulTotal,
-                HAS_1_TEMPLATE_PARAMS(int, k),
-                AND_1_VALUE_PARAMS(out)) {
-  *out = testing::get<k>(args).stateful_total();
-}
-
-ACTION_TEMPLATE(SaveStatefulFree,
-                HAS_1_TEMPLATE_PARAMS(int, k),
-                AND_1_VALUE_PARAMS(out)) {
-  *out = testing::get<k>(args).stateful_free();
-}
-
-int64_t GetCurrentTimestamp() {
-  return (base::Time::Now() - base::Time::UnixEpoch()).InMicroseconds();
-}
-
-class MockExtensionInstallEventLoggerDelegate
-    : public ExtensionInstallEventLogger::Delegate {
- public:
-  MockExtensionInstallEventLoggerDelegate() = default;
-
-  MOCK_METHOD2(Add,
-               void(std::set<extensions::ExtensionId> extensions,
-                    const em::ExtensionInstallReportLogEvent& event));
-};
-
-}  // namespace
-
-class ExtensionInstallEventLoggerTest : public testing::Test {
- protected:
-  ExtensionInstallEventLoggerTest()
-      : task_environment_(
-            base::test::TaskEnvironment::MainThreadType::UI,
-            base::test::TaskEnvironment::ThreadPoolExecutionMode::QUEUED),
-        prefs_(profile_.GetTestingPrefService()),
-        registry_(extensions::ExtensionRegistry::Get(&profile_)) {}
-
-  void SetUp() override {
-    RegisterLocalState(pref_service_.registry());
-    TestingBrowserProcess::GetGlobal()->SetLocalState(&pref_service_);
-
-    chromeos::PowerManagerClient::InitializeFake();
-  }
-
-  void TearDown() override {
-    logger_.reset();
-    task_environment_.RunUntilIdle();
-    chromeos::PowerManagerClient::Shutdown();
-    TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr);
-  }
-
-  void SetupForceList() {
-    std::unique_ptr<base::Value> dict =
-        extensions::DictionaryBuilder()
-            .Set(kExtensionId1,
-                 extensions::DictionaryBuilder()
-                     .Set(extensions::ExternalProviderImpl::kExternalUpdateUrl,
-                          kExtensionUpdateUrl)
-                     .Build())
-            .Set(kExtensionId2,
-                 extensions::DictionaryBuilder()
-                     .Set(extensions::ExternalProviderImpl::kExternalUpdateUrl,
-                          kExtensionUpdateUrl)
-                     .Build())
-            .Build();
-    prefs_->SetManagedPref(extensions::pref_names::kInstallForceList,
-                           std::move(dict));
-  }
-
-  // Runs |function|, verifies that the expected event is added to the logs for
-  // all apps in |extensions_| and its timestamp is set to the time at which the
-  // |function| is run.
-  template <typename T>
-  void RunAndVerifyAdd(T function,
-                       const std::set<extensions::ExtensionId>& extensions_) {
-    Mock::VerifyAndClearExpectations(&delegate_);
-
-    int64_t timestamp = 0;
-    EXPECT_CALL(delegate_, Add(extensions_, MatchEventExceptTimestamp(event_)))
-        .WillOnce(SaveTimestamp<1>(&timestamp));
-    const int64_t before = GetCurrentTimestamp();
-    function();
-    const int64_t after = GetCurrentTimestamp();
-    Mock::VerifyAndClearExpectations(&delegate_);
-
-    EXPECT_LE(before, timestamp);
-    EXPECT_GE(after, timestamp);
-  }
-
-  void CreateLogger() {
-    logger_ = std::make_unique<ExtensionInstallEventLogger>(
-        &delegate_, &profile_, registry_);
-    event_.set_event_type(em::ExtensionInstallReportLogEvent::SUCCESS);
-  }
-
-  content::BrowserTaskEnvironment task_environment_;
-  ash::NetworkHandlerTestHelper network_handler_test_helper_;
-  TestingProfile profile_;
-  TestingPrefServiceSimple pref_service_;
-
-  sync_preferences::TestingPrefServiceSyncable* prefs_;
-  extensions::ExtensionRegistry* registry_;
-  MockExtensionInstallEventLoggerDelegate delegate_;
-
-  em::ExtensionInstallReportLogEvent event_;
-
-  std::unique_ptr<ExtensionInstallEventLogger> logger_;
-};
-
-// Adds an event with a timestamp. Verifies that the event is added to the log
-// and the timestamp is not changed.
-TEST_F(ExtensionInstallEventLoggerTest, Add) {
-  CreateLogger();
-
-  event_.set_timestamp(kTimestamp);
-  std::unique_ptr<em::ExtensionInstallReportLogEvent> event =
-      std::make_unique<em::ExtensionInstallReportLogEvent>();
-  event->MergeFrom(event_);
-
-  EXPECT_CALL(delegate_, Add(std::set<extensions::ExtensionId>{kExtensionId1},
-                             MatchProto(event_)));
-  logger_->Add(kExtensionId1, false /* gather_disk_space_info */,
-               std::move(event));
-}
-
-// Adds an event without a timestamp. Verifies that the event is added to the
-// log and the timestamp is set to the current time.
-TEST_F(ExtensionInstallEventLoggerTest, AddSetsTimestamp) {
-  CreateLogger();
-
-  std::unique_ptr<em::ExtensionInstallReportLogEvent> event =
-      std::make_unique<em::ExtensionInstallReportLogEvent>();
-  event->MergeFrom(event_);
-
-  RunAndVerifyAdd(
-      [&]() {
-        logger_->Add(kExtensionId1, false /* gather_disk_space_info */,
-                     std::move(event));
-      },
-      {kExtensionId1});
-}
-
-// Adds an event with a timestamp, requesting that disk space information be
-// added to it. Verifies that a background task is posted that consults the disk
-// mount manager. Then, verifies that after the background task has run, the
-// event is added.
-//
-// It is not possible to test that disk size information is retrieved correctly
-// as a mounted stateful partition cannot be simulated in unit tests.
-TEST_F(ExtensionInstallEventLoggerTest, AddSetsDiskSpaceInfo) {
-  CreateLogger();
-  logger_->SetStatefulPathForTesting(base::FilePath(kStatefulPath));
-
-  event_.set_timestamp(kTimestamp);
-  std::unique_ptr<em::ExtensionInstallReportLogEvent> event =
-      std::make_unique<em::ExtensionInstallReportLogEvent>();
-  event->MergeFrom(event_);
-  event->clear_stateful_total();
-  event->clear_stateful_free();
-
-  EXPECT_CALL(delegate_, Add(_, _)).Times(0);
-  logger_->Add(kExtensionId1, true /* gather_disk_space_info */,
-               std::move(event));
-  Mock::VerifyAndClearExpectations(&delegate_);
-
-  int64_t stateful_total = 0;
-  int64_t stateful_free = 0;
-  EXPECT_CALL(delegate_, Add(std::set<extensions::ExtensionId>{kExtensionId1},
-                             MatchEventExceptDiskSpace(event_)))
-      .WillOnce(DoAll(SaveStatefulTotal<1>(&stateful_total),
-                      SaveStatefulFree<1>(&stateful_free)));
-  task_environment_.RunUntilIdle();
-
-  EXPECT_GT(stateful_total, 0);
-  EXPECT_GT(stateful_free, 0);
-}
-
-// Adds an event without a timestamp, requesting that disk space information be
-// added to it. Verifies that a background task is posted that consults the disk
-// mount manager. Then, verifies that after the background task has run, the
-// event is added and its timestamp is set to the current time before posting
-// the background task.
-//
-// It is not possible to test that disk size information is retrieved correctly
-// as a mounted stateful partition cannot be simulated in unit tests.
-TEST_F(ExtensionInstallEventLoggerTest, AddSetsTimestampAndDiskSpaceInfo) {
-  CreateLogger();
-  logger_->SetStatefulPathForTesting(base::FilePath(kStatefulPath));
-
-  std::unique_ptr<em::ExtensionInstallReportLogEvent> event =
-      std::make_unique<em::ExtensionInstallReportLogEvent>();
-  event->MergeFrom(event_);
-  event->clear_stateful_total();
-  event->clear_stateful_free();
-
-  EXPECT_CALL(delegate_, Add(_, _)).Times(0);
-  const int64_t before = GetCurrentTimestamp();
-  logger_->Add(kExtensionId1, true /* gather_disk_space_info */,
-               std::move(event));
-  const int64_t after = GetCurrentTimestamp();
-  Mock::VerifyAndClearExpectations(&delegate_);
-
-  int64_t timestamp = 0;
-  int64_t stateful_total = 0;
-  int64_t stateful_free = 0;
-  EXPECT_CALL(delegate_, Add(std::set<extensions::ExtensionId>{kExtensionId1},
-                             MatchEventExceptTimestampAndDiskSpace(event_)))
-      .WillOnce(DoAll(SaveTimestamp<1>(&timestamp),
-                      SaveStatefulTotal<1>(&stateful_total),
-                      SaveStatefulFree<1>(&stateful_free)));
-  task_environment_.RunUntilIdle();
-
-  EXPECT_GT(stateful_total, 0);
-  EXPECT_GT(stateful_free, 0);
-  EXPECT_LE(before, timestamp);
-  EXPECT_GE(after, timestamp);
-}
-
-TEST_F(ExtensionInstallEventLoggerTest, UpdatePolicy) {
-  auto* fake_user_manager = new ash::FakeChromeUserManager();
-  user_manager::ScopedUserManager scoped_user_manager(
-      base::WrapUnique(fake_user_manager));
-  AccountId account_id = AccountId::FromUserEmailGaiaId(kEmailId, kGaiaId);
-  user_manager::User* user =
-      fake_user_manager->AddUserWithAffiliationAndTypeAndProfile(
-          account_id, false /*is_affiliated*/, user_manager::USER_TYPE_REGULAR,
-          &profile_);
-  fake_user_manager->UserLoggedIn(account_id, user->username_hash(),
-                                  false /* browser_restart */,
-                                  false /* is_child */);
-  CreateLogger();
-  logger_->SetStatefulPathForTesting(base::FilePath(kStatefulPath));
-
-  SetupForceList();
-
-  // Expected new extensions_ added with disk info.
-  event_.set_event_type(em::ExtensionInstallReportLogEvent::POLICY_REQUEST);
-  int64_t stateful_total = 0;
-  int64_t stateful_free = 0;
-  EXPECT_CALL(delegate_, Add(std::set<extensions::ExtensionId>{kExtensionId1,
-                                                               kExtensionId2},
-                             MatchEventExceptTimestampAndDiskSpace(event_)))
-      .WillOnce(DoAll(SaveStatefulTotal<1>(&stateful_total),
-                      SaveStatefulFree<1>(&stateful_free)));
-  task_environment_.RunUntilIdle();
-  Mock::VerifyAndClearExpectations(&delegate_);
-
-  EXPECT_GT(stateful_total, 0);
-  EXPECT_GT(stateful_free, 0);
-}
-
-}  // namespace policy
diff --git a/chrome/browser/ash/policy/reporting/install_event_log_util_unittest.cc b/chrome/browser/ash/policy/reporting/install_event_log_util_unittest.cc
deleted file mode 100644
index 4c29888..0000000
--- a/chrome/browser/ash/policy/reporting/install_event_log_util_unittest.cc
+++ /dev/null
@@ -1,228 +0,0 @@
-// 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.
-
-#include "chrome/browser/ash/policy/reporting/install_event_log_util.h"
-
-#include <vector>
-
-#include "base/values.h"
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log.h"
-#include "chrome/browser/profiles/reporting_util.h"
-#include "chromeos/system/fake_statistics_provider.h"
-#include "components/policy/proto/device_management_backend.pb.h"
-#include "net/base/net_errors.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::_;
-
-namespace em = enterprise_management;
-
-namespace policy {
-namespace {
-
-constexpr char kTestExtensionId[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
-constexpr int64_t kDiskSpaceTotalBytes = 5 * 1024 * 1024;
-const int64_t kDiskSpaceFreeBytes = 2 * 1024 * 1024;
-
-const int kExampleFetchTries = 5;
-// HTTP_UNAUTHORIZED
-const int kExampleResponseCode = 401;
-
-// Common key names used when building the dictionary to pass to the Chrome
-// Reporting API. These must be same as ones mentioned in
-// install_event_log_util.cc.
-constexpr char kEventType[] = "eventType";
-constexpr char kOnline[] = "online";
-constexpr char kSessionStateChangeType[] = "sessionStateChangeType";
-constexpr char kStatefulTotal[] = "statefulTotal";
-constexpr char kStatefulFree[] = "statefulFree";
-constexpr char kTime[] = "time";
-
-// Key names used for extensions when building the dictionary to pass to the
-// Chrome Reporting API. These must be same as ones mentioned in
-// install_event_log_util.cc.
-constexpr char kExtensionId[] = "extensionId";
-constexpr char kExtensionInstallEvent[] = "extensionAppInstallEvent";
-constexpr char kDownloadingStage[] = "downloadingStage";
-constexpr char kFailureReason[] = "failureReason";
-constexpr char kInstallationStage[] = "installationStage";
-constexpr char kExtensionType[] = "extensionType";
-constexpr char kUserType[] = "userType";
-constexpr char kIsNewUser[] = "isNewUser";
-constexpr char kIsMisconfigurationFailure[] = "isMisconfigurationFailure";
-constexpr char kInstallCreationStage[] = "installCreationStage";
-constexpr char kDownloadCacheStatus[] = "downloadCacheStatus";
-constexpr char kUnpackerFailureReason[] = "unpackerFailureReason";
-constexpr char kManifestInvalidError[] = "manifestInvalidError";
-constexpr char kCrxInstallErrorDetail[] = "crxInstallErrorDetail";
-constexpr char kFetchErrorCode[] = "fetchErrorCode";
-constexpr char kFetchTries[] = "fetchTries";
-
-void ConvertToValueAndVerify(const em::ExtensionInstallReportLogEvent& event,
-                             const std::vector<std::string>& keys) {
-  base::Value::Dict context = reporting::GetContext(nullptr /*profile*/);
-  base::Value::Dict wrapper =
-      ConvertExtensionEventToValue(kTestExtensionId, event, context);
-  ASSERT_TRUE(wrapper.Find(kExtensionInstallEvent) != nullptr);
-  EXPECT_TRUE(wrapper.Find(kTime) != nullptr);
-  base::Value::Dict* dict = wrapper.FindDict(kExtensionInstallEvent);
-  EXPECT_TRUE(dict->Find(kExtensionId) != nullptr);
-  for (const std::string& key : keys) {
-    EXPECT_TRUE(dict->Find(key) != nullptr);
-  }
-}
-
-}  // namespace
-
-class ExtensionInstallEventLogUtilTest : public testing::Test {
- public:
-  ExtensionInstallEventLogUtilTest()
-      : scoped_fake_statistics_provider_(
-            std::make_unique<
-                chromeos::system::ScopedFakeStatisticsProvider>()) {
-    event_.set_timestamp(1000);
-  }
-
- protected:
-  em::ExtensionInstallReportLogEvent event_;
-
- private:
-  std::unique_ptr<chromeos::system::ScopedFakeStatisticsProvider>
-      scoped_fake_statistics_provider_;
-};
-
-// Verifies that an event reporting extension install failure is successfully
-// parsed.
-TEST_F(ExtensionInstallEventLogUtilTest, FailureReasonEvent) {
-  event_.set_event_type(
-      em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED);
-  event_.set_failure_reason(em::ExtensionInstallReportLogEvent::INVALID_ID);
-  event_.set_is_misconfiguration_failure(false);
-  event_.set_extension_type(em::Extension_ExtensionType_TYPE_EXTENSION);
-  event_.set_stateful_total(kDiskSpaceTotalBytes);
-  event_.set_stateful_free(kDiskSpaceFreeBytes);
-  ConvertToValueAndVerify(
-      event_, {kEventType, kFailureReason, kIsMisconfigurationFailure,
-               kExtensionType, kStatefulTotal, kStatefulFree});
-}
-
-// Verifies that an event reporting extension installation failure after
-// unpacking is successfully parsed.
-TEST_F(ExtensionInstallEventLogUtilTest, CrxInstallErrorEvent) {
-  event_.set_event_type(
-      em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED);
-  event_.set_failure_reason(
-      em::ExtensionInstallReportLogEvent::CRX_INSTALL_ERROR_OTHER);
-  event_.set_crx_install_error_detail(
-      em::ExtensionInstallReportLogEvent::UNEXPECTED_ID);
-  event_.set_is_misconfiguration_failure(false);
-  event_.set_extension_type(em::Extension_ExtensionType_TYPE_EXTENSION);
-  event_.set_stateful_total(kDiskSpaceTotalBytes);
-  event_.set_stateful_free(kDiskSpaceFreeBytes);
-  ConvertToValueAndVerify(
-      event_, {kEventType, kFailureReason, kCrxInstallErrorDetail,
-               kIsMisconfigurationFailure, kExtensionType, kStatefulTotal,
-               kStatefulFree});
-}
-
-// Verifies that an event reporting extension unpack failure is successfully
-// parsed.
-TEST_F(ExtensionInstallEventLogUtilTest, UnpackerFailureReasonEvent) {
-  event_.set_event_type(
-      em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED);
-  event_.set_failure_reason(em::ExtensionInstallReportLogEvent::
-                                CRX_INSTALL_ERROR_SANDBOXED_UNPACKER_FAILURE);
-  event_.set_unpacker_failure_reason(
-      em::ExtensionInstallReportLogEvent::CRX_HEADER_INVALID);
-  event_.set_stateful_total(kDiskSpaceTotalBytes);
-  event_.set_stateful_free(kDiskSpaceFreeBytes);
-  ConvertToValueAndVerify(event_,
-                          {kEventType, kFailureReason, kUnpackerFailureReason,
-                           kStatefulTotal, kStatefulFree});
-}
-
-// Verifies that an event reporting update manifest invalid error is
-// successfully parsed.
-TEST_F(ExtensionInstallEventLogUtilTest, ManifestInvalidFailureReasonEvent) {
-  event_.set_event_type(
-      em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED);
-  event_.set_failure_reason(
-      em::ExtensionInstallReportLogEvent::MANIFEST_INVALID);
-  event_.set_manifest_invalid_error(
-      em::ExtensionInstallReportLogEvent::XML_PARSING_FAILED);
-  event_.set_stateful_total(kDiskSpaceTotalBytes);
-  event_.set_stateful_free(kDiskSpaceFreeBytes);
-  ConvertToValueAndVerify(event_,
-                          {kEventType, kFailureReason, kManifestInvalidError,
-                           kStatefulTotal, kStatefulFree});
-}
-
-// Verifies that an event reporting error codes and number of fetch tries when
-// extension failed to install with error MANIFEST_FETCH_FAILED is successfully
-// parsed.
-TEST_F(ExtensionInstallEventLogUtilTest, ManifestFetchFailedEvent) {
-  event_.set_event_type(
-      em::ExtensionInstallReportLogEvent::INSTALLATION_FAILED);
-  event_.set_failure_reason(
-      em::ExtensionInstallReportLogEvent::MANIFEST_FETCH_FAILED);
-  event_.set_fetch_error_code(kExampleResponseCode);
-  event_.set_fetch_tries(kExampleFetchTries);
-  event_.set_stateful_total(kDiskSpaceTotalBytes);
-  event_.set_stateful_free(kDiskSpaceFreeBytes);
-  ConvertToValueAndVerify(event_, {kEventType, kFailureReason, kFetchErrorCode,
-                                   kFetchTries, kStatefulTotal, kStatefulFree});
-}
-
-// Verifies that an event reporting extension installation stage is successfully
-// parsed.
-TEST_F(ExtensionInstallEventLogUtilTest, InstallationStageEvent) {
-  event_.set_installation_stage(em::ExtensionInstallReportLogEvent::PENDING);
-  event_.set_stateful_total(kDiskSpaceTotalBytes);
-  event_.set_stateful_free(kDiskSpaceFreeBytes);
-  ConvertToValueAndVerify(event_,
-                          {kInstallationStage, kStatefulTotal, kStatefulFree});
-}
-
-// Verifies that an event reporting extension downloading stage is successfully
-// parsed.
-TEST_F(ExtensionInstallEventLogUtilTest, DownloadingStageEvent) {
-  event_.set_downloading_stage(
-      em::ExtensionInstallReportLogEvent::PARSING_MANIFEST);
-  event_.set_stateful_total(kDiskSpaceTotalBytes);
-  event_.set_stateful_free(kDiskSpaceFreeBytes);
-  ConvertToValueAndVerify(event_,
-                          {kDownloadingStage, kStatefulTotal, kStatefulFree});
-}
-
-// Verifies that a login event reporting user type is successfully parsed.
-TEST_F(ExtensionInstallEventLogUtilTest, LoginEvent) {
-  event_.set_event_type(
-      em::ExtensionInstallReportLogEvent::SESSION_STATE_CHANGE);
-  event_.set_session_state_change_type(
-      em::ExtensionInstallReportLogEvent::LOGIN);
-  event_.set_user_type(em::ExtensionInstallReportLogEvent::USER_TYPE_REGULAR);
-  event_.set_is_new_user(false);
-  event_.set_online(true);
-  ConvertToValueAndVerify(event_, {kEventType, kSessionStateChangeType,
-                                   kUserType, kIsNewUser, kOnline});
-}
-
-// Verifies that an event reporting extension install creation stage is
-// successfully parsed.
-TEST_F(ExtensionInstallEventLogUtilTest, InstallCreationStageEvent) {
-  event_.set_install_creation_stage(
-      em::ExtensionInstallReportLogEvent::CREATION_INITIATED);
-  ConvertToValueAndVerify(event_, {kInstallCreationStage});
-}
-
-// Verifies that an event reporting cache status during downloading process is
-// successfully parsed.
-TEST_F(ExtensionInstallEventLogUtilTest, DownloadCacheStatusEvent) {
-  event_.set_download_cache_status(
-      em::ExtensionInstallReportLogEvent::CACHE_OUTDATED);
-  ConvertToValueAndVerify(event_, {kDownloadCacheStatus});
-}
-
-}  // namespace policy
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/usb/usb_events_browsertest.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/usb/usb_events_browsertest.cc
new file mode 100644
index 0000000..ffbe1f3a
--- /dev/null
+++ b/chrome/browser/ash/policy/reporting/metrics_reporting/usb/usb_events_browsertest.cc
@@ -0,0 +1,239 @@
+// Copyright 2022 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 <memory>
+#include <string>
+#include "ash/components/settings/cros_settings_names.h"
+#include "ash/constants/ash_switches.h"
+#include "chrome/browser/ash/login/test/fake_gaia_mixin.h"
+#include "chrome/browser/ash/login/test/login_manager_mixin.h"
+#include "chrome/browser/ash/login/test/session_manager_state_waiter.h"
+#include "chrome/browser/ash/login/test/user_policy_mixin.h"
+#include "chrome/browser/ash/policy/core/device_policy_cros_browser_test.h"
+#include "chrome/browser/ash/settings/scoped_testing_cros_settings.h"
+#include "chrome/browser/ash/settings/stub_cros_settings_provider.h"
+#include "chromeos/ash/services/cros_healthd/public/cpp/fake_cros_healthd.h"
+#include "chromeos/ash/services/cros_healthd/public/mojom/cros_healthd.mojom.h"
+#include "chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_probe.mojom.h"
+#include "chromeos/dbus/missive/missive_client_test_observer.h"
+#include "components/account_id/account_id.h"
+#include "components/reporting/proto/synced/metric_data.pb.h"
+#include "components/reporting/proto/synced/record.pb.h"
+#include "components/reporting/proto/synced/record_constants.pb.h"
+#include "components/signin/public/identity_manager/identity_test_utils.h"
+#include "content/public/test/browser_test.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace chromeos {
+namespace {
+
+// Browser test that validate Usb added/removed events and telemetry collection
+// when the`ReportDevicePeripherals policy is set/unset. These tests cases only
+// cover USB added events and telemetry collection since FakeCrosHealthd doesn't
+// expose a EmitUsbRemovedEventForTesting function.
+constexpr char kTestUserEmail[] = "test@example.com";
+constexpr char kTestAffiliationId[] = "test_affiliation_id";
+
+class UsbEventsBrowserTest : public ::policy::DevicePolicyCrosBrowserTest {
+ protected:
+  UsbEventsBrowserTest() {
+    // Add unaffiliated user for testing purposes.
+    login_manager_mixin_.AppendRegularUsers(1);
+  }
+
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    command_line->AppendSwitch(ash::switches::kLoginManager);
+  }
+
+  void SetUpInProcessBrowserTestFixture() override {
+    policy::DevicePolicyCrosBrowserTest::SetUpInProcessBrowserTestFixture();
+
+    // Set up affiliation for the test user.
+    auto device_policy_update = device_state_.RequestDevicePolicyUpdate();
+    auto user_policy_update = user_policy_mixin_.RequestPolicyUpdate();
+
+    device_policy_update->policy_data()->add_device_affiliation_ids(
+        kTestAffiliationId);
+    user_policy_update->policy_data()->add_user_affiliation_ids(
+        kTestAffiliationId);
+  }
+
+  void EnableUsbPolicy() {
+    scoped_testing_cros_settings_.device_settings()->SetBoolean(
+        ash::kReportDevicePeripherals, true);
+  }
+
+  void DisableUsbPolicy() {
+    scoped_testing_cros_settings_.device_settings()->SetBoolean(
+        ash::kReportDevicePeripherals, false);
+  }
+
+  bool NoUsbEventsEnqueued(const std::vector<::reporting::Record>& records) {
+    return std::none_of(
+        records.begin(), records.end(), [](::reporting::Record r) {
+          return r.destination() == ::reporting::Destination::PERIPHERAL_EVENTS;
+        });
+  }
+
+  void LoginAffiliatedUser() {
+    const LoginManagerMixin::TestUserInfo user_info(test_account_id_);
+    const auto& context =
+        LoginManagerMixin::CreateDefaultUserContext(user_info);
+    login_manager_mixin_.LoginAsNewRegularUser(context);
+    test::WaitForPrimaryUserSessionStart();
+  }
+
+  void LoginUnaffiliatedUser() {
+    login_manager_mixin_.LoginAsNewRegularUser();
+    test::WaitForPrimaryUserSessionStart();
+  }
+
+  cros_healthd::mojom::TelemetryInfoPtr CreateUsbTelemetry() {
+    constexpr uint8_t kClassId = 255;
+    constexpr uint8_t kSubclassId = 1;
+    constexpr uint16_t kVendorId = 65535;
+    constexpr uint16_t kProductId = 1;
+    constexpr char kVendorName[] = "VendorName";
+    constexpr char kProductName[] = "ProductName";
+    constexpr char kFirmwareVersion[] = "FirmwareVersion";
+
+    cros_healthd::mojom::BusDevicePtr usb_device =
+        cros_healthd::mojom::BusDevice::New();
+    usb_device->vendor_name = kVendorName;
+    usb_device->product_name = kProductName;
+    usb_device->bus_info = cros_healthd::mojom::BusInfo::NewUsbBusInfo(
+        cros_healthd::mojom::UsbBusInfo::New(
+            kClassId, kSubclassId, /*protocol_id=*/0, kVendorId, kProductId,
+            /*interfaces = */
+            std::vector<cros_healthd::mojom::UsbBusInterfaceInfoPtr>(),
+            cros_healthd::mojom::FwupdFirmwareVersionInfo::New(
+                kFirmwareVersion,
+                cros_healthd::mojom::FwupdVersionFormat::kPlain)));
+
+    std::vector<cros_healthd::mojom::BusDevicePtr> usb_devices;
+    usb_devices.push_back(std::move(usb_device));
+    auto telemetry_info = cros_healthd::mojom::TelemetryInfo::New();
+    telemetry_info->bus_result =
+        cros_healthd::mojom::BusResult::NewBusDevices(std::move(usb_devices));
+    return telemetry_info;
+  }
+
+  const AccountId test_account_id_ = AccountId::FromUserEmailGaiaId(
+      kTestUserEmail,
+      signin::GetTestGaiaIdForEmail(kTestUserEmail));
+
+  UserPolicyMixin user_policy_mixin_{&mixin_host_, test_account_id_};
+  FakeGaiaMixin fake_gaia_mixin_{&mixin_host_};
+  LoginManagerMixin login_manager_mixin_{
+      &mixin_host_, LoginManagerMixin::UserList(), &fake_gaia_mixin_};
+  ScopedTestingCrosSettings scoped_testing_cros_settings_;
+};
+
+IN_PROC_BROWSER_TEST_F(
+    UsbEventsBrowserTest,
+    UsbAddedEventCollectedWhenPolicyEnabledWithAffiliatedUser) {
+  EnableUsbPolicy();
+
+  LoginAffiliatedUser();
+
+  MissiveClientTestObserver missive_observer_(
+      ::reporting::Destination::PERIPHERAL_EVENTS);
+
+  cros_healthd::FakeCrosHealthd::Get()->EmitUsbAddEventForTesting();
+  std::tuple<::reporting::Priority, ::reporting::Record> entry =
+      missive_observer_.GetNextEnqueuedRecord();
+  ::reporting::Record record = std::get<1>(entry);
+  ::reporting::MetricData record_data;
+  ASSERT_TRUE(record_data.ParseFromString(record.data()));
+
+  EXPECT_TRUE(record_data.has_telemetry_data());
+  EXPECT_TRUE(record_data.telemetry_data().has_peripherals_telemetry());
+  EXPECT_THAT(record_data.event_data().type(),
+              ::testing::Eq(::reporting::MetricEventType::USB_ADDED));
+  EXPECT_THAT(record.destination(),
+              ::testing::Eq(reporting::Destination::PERIPHERAL_EVENTS));
+}
+
+IN_PROC_BROWSER_TEST_F(
+    UsbEventsBrowserTest,
+    UsbTelemetryCollectedWhenPolicyEnabledWithAffiliatedUser) {
+  EnableUsbPolicy();
+
+  MissiveClientTestObserver missive_observer_(
+      ::reporting::Destination::PERIPHERAL_EVENTS);
+
+  auto usb_telemetry = CreateUsbTelemetry();
+  ash::cros_healthd::FakeCrosHealthd::Get()
+      ->SetProbeTelemetryInfoResponseForTesting(usb_telemetry);
+
+  // This triggers USB telemetry collection, a.k.a USB status updates
+  LoginAffiliatedUser();
+
+  std::tuple<::reporting::Priority, ::reporting::Record> entry =
+      missive_observer_.GetNextEnqueuedRecord();
+  ::reporting::Record record = std::get<1>(entry);
+  ::reporting::MetricData record_data;
+  ASSERT_TRUE(record_data.ParseFromString(record.data()));
+
+  EXPECT_TRUE(record_data.has_telemetry_data());
+  EXPECT_TRUE(record_data.telemetry_data().has_peripherals_telemetry());
+  // Even though USB status updates are triggered by affiliated login, they're
+  // technically telemetry, not events, so their event type is
+  // EVENT_TYPE_UNSPECIFIED
+  EXPECT_THAT(
+      record_data.event_data().type(),
+      ::testing::Eq(::reporting::MetricEventType::EVENT_TYPE_UNSPECIFIED));
+  EXPECT_THAT(record.destination(),
+              ::testing::Eq(::reporting::Destination::PERIPHERAL_EVENTS));
+}
+
+IN_PROC_BROWSER_TEST_F(
+    UsbEventsBrowserTest,
+    NoUsbEventsOrTelemetryWhenPolicyEnabledWithUnaffiliatedUser) {
+  EnableUsbPolicy();
+
+  MissiveClientTestObserver missive_observer_(
+      ::reporting::Destination::PERIPHERAL_EVENTS);
+
+  LoginUnaffiliatedUser();
+
+  cros_healthd::FakeCrosHealthd::Get()->EmitUsbAddEventForTesting();
+  EXPECT_TRUE(NoUsbEventsEnqueued(
+      MissiveClient::Get()->GetTestInterface()->GetEnqueuedRecords(
+          ::reporting::Priority::SECURITY)));
+}
+
+IN_PROC_BROWSER_TEST_F(
+    UsbEventsBrowserTest,
+    NoUsbEventsOrTelemetryWhenPolicyDisabledWithAffiliatedUser) {
+  DisableUsbPolicy();
+
+  LoginAffiliatedUser();
+
+  cros_healthd::FakeCrosHealthd::Get()->EmitUsbAddEventForTesting();
+
+  // Shouldn't be any USB event related records in the MissiveClient queue
+  EXPECT_TRUE(NoUsbEventsEnqueued(
+      MissiveClient::Get()->GetTestInterface()->GetEnqueuedRecords(
+          ::reporting::Priority::SECURITY)));
+}
+
+IN_PROC_BROWSER_TEST_F(
+    UsbEventsBrowserTest,
+    NoUsbEventsOrTelemetryWhenPolicyDisabledWithUnaffiliatedUser) {
+  DisableUsbPolicy();
+
+  LoginUnaffiliatedUser();
+
+  cros_healthd::FakeCrosHealthd::Get()->EmitUsbAddEventForTesting();
+
+  // Shouldn't be any USB event related records in the MissiveClient queue
+  EXPECT_TRUE(NoUsbEventsEnqueued(
+      MissiveClient::Get()->GetTestInterface()->GetEnqueuedRecords(
+          ::reporting::Priority::SECURITY)));
+}
+
+}  // namespace
+}  // namespace chromeos
diff --git a/chrome/browser/ash/preferences.cc b/chrome/browser/ash/preferences.cc
index 0970acf9..89a8da9 100644
--- a/chrome/browser/ash/preferences.cc
+++ b/chrome/browser/ash/preferences.cc
@@ -1088,14 +1088,13 @@
 
   if (pref_name == ::prefs::kParentAccessCodeConfig ||
       reason != REASON_PREF_CHANGED) {
-    const base::Value* value =
-        prefs_->GetDictionary(::prefs::kParentAccessCodeConfig);
-    if (value &&
-        prefs_->IsManagedPreference(::prefs::kParentAccessCodeConfig) &&
+    if (prefs_->IsManagedPreference(::prefs::kParentAccessCodeConfig) &&
         user_->IsChild()) {
+      const base::Value::Dict& value =
+          prefs_->GetValueDict(::prefs::kParentAccessCodeConfig);
       known_user.SetPath(user_->GetAccountId(),
                          ::prefs::kKnownUserParentAccessCodeConfig,
-                         value->Clone());
+                         base::Value(value.Clone()));
       parent_access::ParentAccessService::Get().LoadConfigForUser(user_);
     } else {
       known_user.RemovePref(user_->GetAccountId(),
@@ -1105,12 +1104,8 @@
 
   for (auto* copy_pref : kCopyToKnownUserPrefs) {
     if (pref_name == copy_pref || reason != REASON_ACTIVE_USER_CHANGED) {
-      absl::optional<base::Value> opt_value = absl::nullopt;
-      if (const base::Value* value = prefs_->Get(copy_pref)) {
-        opt_value = value->Clone();
-      }
       known_user.SetPath(user_->GetAccountId(), copy_pref,
-                         std::move(opt_value));
+                         prefs_->GetValue(copy_pref).Clone());
     }
   }
 
diff --git a/chrome/browser/ash/printing/oauth2/authorization_zone_impl.cc b/chrome/browser/ash/printing/oauth2/authorization_zone_impl.cc
index 95acd85..e379fe51 100644
--- a/chrome/browser/ash/printing/oauth2/authorization_zone_impl.cc
+++ b/chrome/browser/ash/printing/oauth2/authorization_zone_impl.cc
@@ -14,6 +14,7 @@
 #include "base/base64.h"
 #include "base/bind.h"
 #include "base/check_op.h"
+#include "base/containers/adapters.h"
 #include "base/containers/flat_map.h"
 #include "base/containers/flat_set.h"
 #include "base/strings/strcat.h"
@@ -509,9 +510,9 @@
     IppEndpointTokenFetcher* endpoint) {
   AuthorizationServerSession* auth_session = nullptr;
   // Try to match a session starting from the newest one.
-  for (auto its = sessions_.rbegin(); its != sessions_.rend(); ++its) {
-    if ((*its)->ContainsAll(endpoint->scope())) {
-      auth_session = its->get();
+  for (auto& session : base::Reversed(sessions_)) {
+    if (session->ContainsAll(endpoint->scope())) {
+      auth_session = session.get();
       break;
     }
   }
diff --git a/chrome/browser/ash/system_logs/single_log_file_log_source.cc b/chrome/browser/ash/system_logs/single_log_file_log_source.cc
index 55d6fe3..13dc32f0 100644
--- a/chrome/browser/ash/system_logs/single_log_file_log_source.cc
+++ b/chrome/browser/ash/system_logs/single_log_file_log_source.cc
@@ -88,7 +88,9 @@
     : SystemLogsSource(GetLogFileSourceRelativeFilePathValue(source_type)),
       source_type_(source_type),
       log_file_dir_path_(kDefaultSystemLogDirPath),
-      max_read_size_(kMaxReadSize) {}
+      max_read_size_(kMaxReadSize),
+      file_cursor_position_(0),
+      file_inode_(0) {}
 
 SingleLogFileLogSource::~SingleLogFileLogSource() {}
 
@@ -136,36 +138,35 @@
     bool bytes_skipped,
     size_t num_rotations_allowed,
     SystemLogsResponse* response) {
-  // Handle for reading the log file that is source of logging data.
-  base::File file;
-
   // Attempt to open the file if it was not previously opened.
-  file.Initialize(GetLogFilePath(),
-                  base::File::FLAG_OPEN | base::File::FLAG_READ);
-  if (!file.IsValid())
-    return;
+  if (!file_.IsValid()) {
+    file_.Initialize(GetLogFilePath(),
+                     base::File::FLAG_OPEN | base::File::FLAG_READ);
+    if (!file_.IsValid())
+      return;
 
-  // Keeps track of how much data has been read or skipped from |file|.
-  size_t file_cursor_position = 0;
-
-  // File system inode value that was associated with |log_file_path_| when it
-  // was originally opened for reading.
-  ino_t file_inode = GetInodeValue(GetLogFilePath());
+    file_cursor_position_ = 0;
+    file_inode_ = GetInodeValue(GetLogFilePath());
+  }
 
   // Check for file size reset.
-  const size_t length = file.GetLength();
+  const size_t length = file_.GetLength();
+  if (length < file_cursor_position_) {
+    file_cursor_position_ = 0;
+    file_.Seek(base::File::FROM_BEGIN, 0);
+  }
 
   // Check for large read and skip forward to avoid out-of-memory conditions.
-  if (length > max_read_size_) {
+  if (length - file_cursor_position_ > max_read_size_) {
     bytes_skipped = true;
-    file.Seek(base::File::FROM_END, -max_read_size_);
-    // Update |file_cursor_position| to support the file size reset check.
-    file_cursor_position = length - max_read_size_;
+    file_.Seek(base::File::FROM_END, -max_read_size_);
+    // Update |file_cursor_position_| to support the file size reset check.
+    file_cursor_position_ = length - max_read_size_;
   }
 
   // The calculated amount of data to read, after adjusting for
   // |max_read_size_|.
-  const size_t size_to_read = length - file_cursor_position;
+  const size_t size_to_read = length - file_cursor_position_;
 
   // Trim down the previously read data before starting a new read.
   const size_t available_previous_read_size = max_read_size_ - size_to_read;
@@ -177,10 +178,11 @@
   // Read from file until end.
   std::string new_result_string;
   new_result_string.resize(size_to_read);
-  size_t size_read = file.ReadAtCurrentPos(&new_result_string[0], size_to_read);
+  size_t size_read =
+      file_.ReadAtCurrentPos(&new_result_string[0], size_to_read);
   new_result_string.resize(size_read);
 
-  const bool file_was_rotated = file_inode != GetInodeValue(GetLogFilePath());
+  const bool file_was_rotated = file_inode_ != GetInodeValue(GetLogFilePath());
   const bool should_handle_file_rotation =
       file_was_rotated && num_rotations_allowed > 0;
 
@@ -197,7 +199,7 @@
     // itself.
     size_t adjusted_size_read =
         last_newline_pos == std::string::npos ? 0 : last_newline_pos + 1;
-    file.Seek(base::File::FROM_CURRENT, -size_read + adjusted_size_read);
+    file_.Seek(base::File::FROM_CURRENT, -size_read + adjusted_size_read);
     new_result_string.resize(adjusted_size_read);
 
     // Update |size_read| to reflect that the read was only up to the last
@@ -205,12 +207,16 @@
     size_read = adjusted_size_read;
   }
 
+  file_cursor_position_ += size_read;
+
   result_string->append(new_result_string);
 
   // If the file was rotated, close the file handle and call this function
   // again, to read from the new file.
   if (should_handle_file_rotation) {
-    file.Close();
+    file_.Close();
+    file_cursor_position_ = 0;
+    file_inode_ = 0;
     ContinueReadFile(std::move(result_string), bytes_skipped,
                      num_rotations_allowed - 1, response);
   } else {
diff --git a/chrome/browser/ash/system_logs/single_log_file_log_source.h b/chrome/browser/ash/system_logs/single_log_file_log_source.h
index de01c7a..bfcaabe9 100644
--- a/chrome/browser/ash/system_logs/single_log_file_log_source.h
+++ b/chrome/browser/ash/system_logs/single_log_file_log_source.h
@@ -18,7 +18,7 @@
 
 namespace system_logs {
 
-// Gathers log data from a single source.
+// Gathers log data from a single source, possibly incrementally.
 class SingleLogFileLogSource : public SystemLogsSource {
  public:
   enum class SupportedSource {
@@ -106,9 +106,19 @@
   // Path to system log file directory.
   base::FilePath log_file_dir_path_;
 
-  // The maximum size of a read from the system log file.
+  // The maximum size of a read from |file_|.
   size_t max_read_size_;
 
+  // Keeps track of how much data has been read or skipped from |file_|.
+  size_t file_cursor_position_;
+
+  // Handle for reading the log file that is source of logging data.
+  base::File file_;
+
+  // File system inode value that was associated with |log_file_path_| when it
+  // was originally opened for reading.
+  ino_t file_inode_;
+
   base::WeakPtrFactory<SingleLogFileLogSource> weak_ptr_factory_{this};
 };
 
diff --git a/chrome/browser/ash/system_logs/single_log_file_log_source_unittest.cc b/chrome/browser/ash/system_logs/single_log_file_log_source_unittest.cc
index edd942a..911d76b 100644
--- a/chrome/browser/ash/system_logs/single_log_file_log_source_unittest.cc
+++ b/chrome/browser/ash/system_logs/single_log_file_log_source_unittest.cc
@@ -169,18 +169,62 @@
   FetchFromSource();
 
   EXPECT_EQ(2, num_callback_calls());
-  EXPECT_EQ("Hello world!\nThe quick brown fox jumps over the lazy dog\n",
-            latest_response());
+  EXPECT_EQ("The quick brown fox jumps over the lazy dog\n", latest_response());
 
   EXPECT_TRUE(AppendToFile(base::FilePath("messages"),
                            "Some like it hot.\nSome like it cold\n"));
   FetchFromSource();
 
   EXPECT_EQ(3, num_callback_calls());
+  EXPECT_EQ("Some like it hot.\nSome like it cold\n", latest_response());
+
+  // As a sanity check, read entire contents of file separately to make sure it
+  // was written incrementally, and hence read incrementally.
+  std::string file_contents;
+  EXPECT_TRUE(base::ReadFileToString(log_file_path(), &file_contents));
   EXPECT_EQ(
-      "Hello world!\nThe quick brown fox jumps over the lazy dog\nSome like it "
-      "hot.\nSome like it cold\n",
-      latest_response());
+      "Hello world!\nThe quick brown fox jumps over the lazy dog\n"
+      "Some like it hot.\nSome like it cold\n",
+      file_contents);
+}
+
+// The log files read by SingleLogFileLogSource are not expected to be
+// overwritten. This test is just to ensure that the SingleLogFileLogSource
+// class is robust enough not to break in the event of an overwrite.
+TEST_F(SingleLogFileLogSourceTest, FileOverwrite) {
+  InitializeSource(SingleLogFileLogSource::SupportedSource::kUiLatest);
+
+  EXPECT_TRUE(AppendToFile(base::FilePath("ui/ui.LATEST"), "0123456789\n"));
+  FetchFromSource();
+
+  EXPECT_EQ(1, num_callback_calls());
+  EXPECT_EQ("0123456789\n", latest_response());
+
+  // Overwrite the file.
+  EXPECT_TRUE(WriteFile(base::FilePath("ui/ui.LATEST"), "abcdefg\n"));
+  FetchFromSource();
+
+  // Should re-read from the beginning.
+  EXPECT_EQ(2, num_callback_calls());
+  EXPECT_EQ("abcdefg\n", latest_response());
+
+  // Append to the file to make sure incremental read still works.
+  EXPECT_TRUE(AppendToFile(base::FilePath("ui/ui.LATEST"), "hijk\n"));
+  FetchFromSource();
+
+  EXPECT_EQ(3, num_callback_calls());
+  EXPECT_EQ("hijk\n", latest_response());
+
+  // Overwrite again, this time with a longer length than the existing file.
+  // Previous contents:
+  //   abcdefg~hijk~     <-- "~" is a single-char representation of newline.
+  // New contents:
+  //   lmnopqrstuvwxyz~  <-- excess text beyond end of prev contents: "yz~"
+  EXPECT_TRUE(WriteFile(base::FilePath("ui/ui.LATEST"), "lmnopqrstuvwxyz\n"));
+  FetchFromSource();
+
+  EXPECT_EQ(4, num_callback_calls());
+  EXPECT_EQ("yz\n", latest_response());
 }
 
 TEST_F(SingleLogFileLogSourceTest, IncompleteLines) {
@@ -211,14 +255,52 @@
   FetchFromSource();
 
   EXPECT_EQ(4, num_callback_calls());
-  EXPECT_EQ("0123456789abcdefghijk\nHello world\n", latest_response());
+  EXPECT_EQ("Hello world\n", latest_response());
 
   EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "\n"));
   FetchFromSource();
 
   EXPECT_EQ(5, num_callback_calls());
-  EXPECT_EQ("0123456789abcdefghijk\nHello world\nGoodbye world\n",
-            latest_response());
+  EXPECT_EQ("Goodbye world\n", latest_response());
+}
+
+TEST_F(SingleLogFileLogSourceTest, HandleLogFileRotation) {
+  InitializeSource(SingleLogFileLogSource::SupportedSource::kMessages);
+
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "1st log file\n"));
+  FetchFromSource();
+  EXPECT_EQ(1, num_callback_calls());
+  EXPECT_EQ("1st log file\n", latest_response());
+
+  // Rotate file. Make sure the rest of the old file and the contents of the new
+  // file are both read.
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "More 1st log file\n"));
+  EXPECT_TRUE(
+      RotateFile(base::FilePath("messages"), base::FilePath("messages.1")));
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "2nd log file\n"));
+
+  FetchFromSource();
+  EXPECT_EQ(2, num_callback_calls());
+  EXPECT_EQ("More 1st log file\n2nd log file\n", latest_response());
+
+  // Rotate again, but this time omit the newline before rotating.
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "No newline here..."));
+  EXPECT_TRUE(
+      RotateFile(base::FilePath("messages"), base::FilePath("messages.1")));
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "3rd log file\n"));
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "Also no newline here"));
+
+  FetchFromSource();
+  EXPECT_EQ(3, num_callback_calls());
+  // Make sure the rotation didn't break anything: the last part of the new file
+  // does not end with a newline; thus the new file should not be read.
+  EXPECT_EQ("No newline here...3rd log file\n", latest_response());
+
+  // Finish the previous read attempt by adding the missing newline.
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "...yet\n"));
+  FetchFromSource();
+  EXPECT_EQ(4, num_callback_calls());
+  EXPECT_EQ("Also no newline here...yet\n", latest_response());
 }
 
 TEST_F(SingleLogFileLogSourceTest, ReadAtMaxReadSizeNotLimited) {
@@ -252,6 +334,104 @@
       latest_response());
 }
 
+TEST_F(SingleLogFileLogSourceTest, ReadOverMaxReadSizeBeforeRotate) {
+  InitializeSource(SingleLogFileLogSource::SupportedSource::kMessages);
+  SetMaxReadSize(14);
+
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "1st log file\n"));
+  EXPECT_TRUE(
+      AppendToFile(base::FilePath("messages"), "Exceeds max read size\n"));
+  FetchFromSource();
+  EXPECT_EQ(1, num_callback_calls());
+  EXPECT_EQ("<earlier logs truncated>\n<partial line>max read size\n",
+            latest_response());
+
+  // Rotate file. Make sure the rest of the old file and the contents of the new
+  // file are both read.
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "More\n"));
+  EXPECT_TRUE(
+      RotateFile(base::FilePath("messages"), base::FilePath("messages.1")));
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "2nd file\n"));
+
+  FetchFromSource();
+  EXPECT_EQ(2, num_callback_calls());
+  EXPECT_EQ("More\n2nd file\n", latest_response());
+
+  // Rotate again, but this time omit the newline before rotating.
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"),
+                           "Long line without a newline ... "));
+  EXPECT_TRUE(
+      RotateFile(base::FilePath("messages"), base::FilePath("messages.1")));
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "ended\n"));
+  // Partial line counted against max read size.
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "partial"));
+
+  FetchFromSource();
+  EXPECT_EQ(3, num_callback_calls());
+  EXPECT_EQ("<earlier logs truncated>\n<partial line> ended\n",
+            latest_response());
+}
+
+TEST_F(SingleLogFileLogSourceTest, ReadOverMaxReadSizeAfterRotate) {
+  InitializeSource(SingleLogFileLogSource::SupportedSource::kMessages);
+  SetMaxReadSize(14);
+
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "1st\n"));
+  FetchFromSource();
+  EXPECT_EQ(1, num_callback_calls());
+  EXPECT_EQ("1st\n", latest_response());
+
+  // Rotate file. Make sure the rest of the old file and the contents of the new
+  // file are both read.
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "More\n"));
+  EXPECT_TRUE(
+      RotateFile(base::FilePath("messages"), base::FilePath("messages.1")));
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "2nd file\n"));
+  EXPECT_TRUE(
+      AppendToFile(base::FilePath("messages"), "More data in 2nd file\n"));
+
+  FetchFromSource();
+  EXPECT_EQ(2, num_callback_calls());
+  EXPECT_EQ("<earlier logs truncated>\n<partial line>a in 2nd file\n",
+            latest_response());
+
+  // Rotate again, but this time omit the newline before rotating.
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "Start ... "));
+  EXPECT_TRUE(
+      RotateFile(base::FilePath("messages"), base::FilePath("messages.1")));
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"),
+                           "ended here but is a long line\n"));
+  // Partial line counted against max read size.
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "partial"));
+
+  FetchFromSource();
+  EXPECT_EQ(3, num_callback_calls());
+  EXPECT_EQ("<earlier logs truncated>\n<partial line>g line\n",
+            latest_response());
+}
+
+TEST_F(SingleLogFileLogSourceTest, ReadOverMaxReadSizeBeforeAndAfterRotate) {
+  InitializeSource(SingleLogFileLogSource::SupportedSource::kMessages);
+  SetMaxReadSize(14);
+
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "1st log file\n"));
+  FetchFromSource();
+  EXPECT_EQ(1, num_callback_calls());
+  EXPECT_EQ("1st log file\n", latest_response());
+
+  EXPECT_TRUE(
+      AppendToFile(base::FilePath("messages"), "Exceeds max read size 1\n"));
+  EXPECT_TRUE(
+      RotateFile(base::FilePath("messages"), base::FilePath("messages.1")));
+  EXPECT_TRUE(AppendToFile(base::FilePath("messages"), "2nd file\n"));
+  EXPECT_TRUE(
+      AppendToFile(base::FilePath("messages"), "Exceeds max read size 2\n"));
+  FetchFromSource();
+  EXPECT_EQ(2, num_callback_calls());
+  EXPECT_EQ("<earlier logs truncated>\n<partial line>x read size 2\n",
+            latest_response());
+}
+
 TEST_F(SingleLogFileLogSourceTest, LongPartialLineEventuallySkipped) {
   InitializeSource(SingleLogFileLogSource::SupportedSource::kMessages);
   SetMaxReadSize(14);
diff --git a/chrome/browser/ash/system_web_apps/BUILD.gn b/chrome/browser/ash/system_web_apps/BUILD.gn
index 5629d9c..0fb1779c 100644
--- a/chrome/browser/ash/system_web_apps/BUILD.gn
+++ b/chrome/browser/ash/system_web_apps/BUILD.gn
@@ -47,6 +47,7 @@
   ]
 
   if (!is_official_build) {
+    deps += [ "//ash/webui/facial_ml_app_ui" ]
     deps += [ "//ash/webui/sample_system_web_app_ui" ]
   }
 }
diff --git a/chrome/browser/ash/system_web_apps/system_web_app_manager.cc b/chrome/browser/ash/system_web_apps/system_web_app_manager.cc
index 8d76f46..0eccd6e5 100644
--- a/chrome/browser/ash/system_web_apps/system_web_app_manager.cc
+++ b/chrome/browser/ash/system_web_apps/system_web_app_manager.cc
@@ -94,6 +94,7 @@
 #include "url/origin.h"
 #if !defined(OFFICIAL_BUILD)
 #include "chrome/browser/ash/web_applications/demo_mode_web_app_info.h"
+#include "chrome/browser/ash/web_applications/facial_ml_system_web_app_info.h"
 #include "chrome/browser/ash/web_applications/sample_system_web_app_info.h"
 #endif  // !defined(OFFICIAL_BUILD)
 
@@ -139,6 +140,7 @@
 
 #if !defined(OFFICIAL_BUILD)
   info_vec.push_back(std::make_unique<DemoModeSystemAppDelegate>(profile));
+  info_vec.push_back(std::make_unique<FacialMLSystemAppDelegate>(profile));
   info_vec.push_back(std::make_unique<SampleSystemAppDelegate>(profile));
 #endif  // !defined(OFFICIAL_BUILD)
 
diff --git a/chrome/browser/ash/system_web_apps/types/system_web_app_data.proto b/chrome/browser/ash/system_web_apps/types/system_web_app_data.proto
index 6260f64..fc828ac 100644
--- a/chrome/browser/ash/system_web_apps/types/system_web_app_data.proto
+++ b/chrome/browser/ash/system_web_apps/types/system_web_app_data.proto
@@ -34,6 +34,7 @@
     OS_URL_HANDLER = 21;
     FIRMWARE_UPDATE = 22;
     OS_FLAGS = 23;
+    FACIAL_ML = 24;
   };
 
   optional SystemWebAppType system_app_type = 1;
diff --git a/chrome/browser/ash/web_applications/facial_ml_system_web_app_info.cc b/chrome/browser/ash/web_applications/facial_ml_system_web_app_info.cc
new file mode 100644
index 0000000..4a8cfd7
--- /dev/null
+++ b/chrome/browser/ash/web_applications/facial_ml_system_web_app_info.cc
@@ -0,0 +1,91 @@
+// Copyright 2022 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/ash/web_applications/facial_ml_system_web_app_info.h"
+
+#include <memory>
+
+#include "ash/constants/ash_features.h"
+#include "ash/webui/facial_ml_app_ui/url_constants.h"
+#include "ash/webui/grit/ash_facial_ml_app_resources.h"
+#include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/apps/app_service/app_launch_params.h"
+#include "chrome/browser/ash/web_applications/system_web_app_install_utils.h"
+#include "chrome/browser/web_applications/user_display_mode.h"
+#include "chrome/browser/web_applications/web_app_constants.h"
+#include "chrome/browser/web_applications/web_app_install_info.h"
+#include "third_party/blink/public/mojom/manifest/display_mode.mojom.h"
+#include "ui/chromeos/styles/cros_styles.h"
+#include "ui/display/screen.h"
+
+namespace {
+constexpr gfx::Size DEFAULT_SIZE(800, 600);
+}  // namespace
+
+std::unique_ptr<WebAppInstallInfo> CreateWebAppInfoForFacialMLApp() {
+  std::unique_ptr<WebAppInstallInfo> info =
+      std::make_unique<WebAppInstallInfo>();
+  info->start_url = GURL(ash::kChromeUIFacialMLAppURL);
+  info->scope = GURL(ash::kChromeUIFacialMLAppURL);
+  // TODO(b/239374316): Convert the title to a localized string
+  info->title = u"Facial ML";
+  web_app::CreateIconInfoForSystemWebApp(
+      info->start_url,
+      {
+          {"app_icon_192.png", 192, IDR_ASH_FACIAL_ML_APP_APP_ICON_192_PNG},
+          {"app_icon_512.png", 512, IDR_ASH_FACIAL_ML_APP_APP_ICON_512_PNG},
+      },
+      *info);
+
+  // Support Dark/Light mode.
+  if (chromeos::features::IsDarkLightModeEnabled()) {
+    info->theme_color = cros_styles::ResolveColor(
+        cros_styles::ColorName::kBgColor, /*is_dark_mode=*/false);
+    info->dark_mode_theme_color =
+        cros_styles::ResolveColor(cros_styles::ColorName::kBgColor,
+                                  /*is_dark_mode=*/true);
+    info->background_color = info->theme_color;
+    info->dark_mode_background_color = info->dark_mode_theme_color;
+  } else {
+    info->theme_color = 0xffffffff;
+    info->background_color = 0xffffffff;
+  }
+
+  info->display_mode = blink::mojom::DisplayMode::kStandalone;
+  info->user_display_mode = web_app::UserDisplayMode::kStandalone;
+  return info;
+}
+
+FacialMLSystemAppDelegate::FacialMLSystemAppDelegate(Profile* profile)
+    : ash::SystemWebAppDelegate(
+          ash::SystemWebAppType::FACIAL_ML,
+          "FacialML",
+          GURL(ash::kChromeUIFacialMLAppURL),
+          profile,
+          ash::OriginTrialsMap({{ash::GetOrigin(ash::kChromeUIFacialMLAppURL),
+                                 {"FileHandling"}}})) {}
+
+std::unique_ptr<WebAppInstallInfo> FacialMLSystemAppDelegate::GetWebAppInfo()
+    const {
+  return CreateWebAppInfoForFacialMLApp();
+}
+
+gfx::Rect FacialMLSystemAppDelegate::GetDefaultBounds(Browser* browser) const {
+  gfx::Rect bounds =
+      display::Screen::GetScreen()->GetDisplayForNewWindows().work_area();
+  bounds.ClampToCenteredSize(DEFAULT_SIZE);
+  return bounds;
+}
+
+bool FacialMLSystemAppDelegate::ShouldCaptureNavigations() const {
+  return true;
+}
+
+bool FacialMLSystemAppDelegate::ShouldShowNewWindowMenuOption() const {
+  return false;
+}
+
+bool FacialMLSystemAppDelegate::ShouldReuseExistingWindow() const {
+  return true;
+}
diff --git a/chrome/browser/ash/web_applications/facial_ml_system_web_app_info.h b/chrome/browser/ash/web_applications/facial_ml_system_web_app_info.h
new file mode 100644
index 0000000..a6574231
--- /dev/null
+++ b/chrome/browser/ash/web_applications/facial_ml_system_web_app_info.h
@@ -0,0 +1,31 @@
+// Copyright 2022 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_ASH_WEB_APPLICATIONS_FACIAL_ML_SYSTEM_WEB_APP_INFO_H_
+#define CHROME_BROWSER_ASH_WEB_APPLICATIONS_FACIAL_ML_SYSTEM_WEB_APP_INFO_H_
+
+#include "chrome/browser/ash/system_web_apps/types/system_web_app_background_task_info.h"
+#include "chrome/browser/ash/system_web_apps/types/system_web_app_delegate.h"
+#include "chrome/browser/ash/system_web_apps/types/system_web_app_type.h"
+#include "chrome/browser/profiles/profile.h"
+#include "ui/gfx/geometry/rect.h"
+
+struct WebAppInstallInfo;
+
+class FacialMLSystemAppDelegate : public ash::SystemWebAppDelegate {
+ public:
+  explicit FacialMLSystemAppDelegate(Profile* profile);
+
+  // ash::SystemWebAppDelegate overrides:
+  std::unique_ptr<WebAppInstallInfo> GetWebAppInfo() const override;
+  gfx::Rect GetDefaultBounds(Browser*) const override;
+  bool ShouldCaptureNavigations() const override;
+  bool ShouldReuseExistingWindow() const override;
+  bool ShouldShowNewWindowMenuOption() const override;
+};
+
+// Return a WebAppInstallInfo used to install the app.
+std::unique_ptr<WebAppInstallInfo> CreateWebAppInfoForFacialMLApp();
+
+#endif  // CHROME_BROWSER_ASH_WEB_APPLICATIONS_FACIAL_ML_SYSTEM_WEB_APP_INFO_H_
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn
index a64774d..4fbbe15 100644
--- a/chrome/browser/chromeos/BUILD.gn
+++ b/chrome/browser/chromeos/BUILD.gn
@@ -1367,18 +1367,6 @@
     "../ash/policy/reporting/arc_app_install_event_log_uploader.h",
     "../ash/policy/reporting/arc_app_install_event_logger.cc",
     "../ash/policy/reporting/arc_app_install_event_logger.h",
-    "../ash/policy/reporting/extension_install_event_log.cc",
-    "../ash/policy/reporting/extension_install_event_log.h",
-    "../ash/policy/reporting/extension_install_event_log_collector.cc",
-    "../ash/policy/reporting/extension_install_event_log_collector.h",
-    "../ash/policy/reporting/extension_install_event_log_manager.cc",
-    "../ash/policy/reporting/extension_install_event_log_manager.h",
-    "../ash/policy/reporting/extension_install_event_log_manager_wrapper.cc",
-    "../ash/policy/reporting/extension_install_event_log_manager_wrapper.h",
-    "../ash/policy/reporting/extension_install_event_log_uploader.cc",
-    "../ash/policy/reporting/extension_install_event_log_uploader.h",
-    "../ash/policy/reporting/extension_install_event_logger.cc",
-    "../ash/policy/reporting/extension_install_event_logger.h",
     "../ash/policy/reporting/install_event_log.h",
     "../ash/policy/reporting/install_event_log_collector_base.cc",
     "../ash/policy/reporting/install_event_log_collector_base.h",
@@ -2348,7 +2336,9 @@
   if (!is_official_build) {
     deps += [
       "//ash/webui/demo_mode_app_ui",
+      "//ash/webui/facial_ml_app_ui",
       "//ash/webui/resources:demo_mode_app_resources_grit",
+      "//ash/webui/resources:facial_ml_app_resources_grit",
       "//ash/webui/resources:sample_system_web_app_resources_grit",
       "//ash/webui/resources:sample_system_web_app_untrusted_resources_grit",
       "//ash/webui/sample_system_web_app_ui",
@@ -2356,6 +2346,8 @@
     sources += [
       "../ash/web_applications/demo_mode_web_app_info.cc",
       "../ash/web_applications/demo_mode_web_app_info.h",
+      "../ash/web_applications/facial_ml_system_web_app_info.cc",
+      "../ash/web_applications/facial_ml_system_web_app_info.h",
       "../ash/web_applications/sample_system_web_app_info.cc",
       "../ash/web_applications/sample_system_web_app_info.h",
     ]
@@ -3273,13 +3265,6 @@
     "../ash/policy/reporting/arc_app_install_event_log_unittest.cc",
     "../ash/policy/reporting/arc_app_install_event_log_uploader_unittest.cc",
     "../ash/policy/reporting/arc_app_install_event_logger_unittest.cc",
-    "../ash/policy/reporting/extension_install_event_log_collector_unittest.cc",
-    "../ash/policy/reporting/extension_install_event_log_manager_unittest.cc",
-    "../ash/policy/reporting/extension_install_event_log_manager_wrapper_unittest.cc",
-    "../ash/policy/reporting/extension_install_event_log_unittest.cc",
-    "../ash/policy/reporting/extension_install_event_log_uploader_unittest.cc",
-    "../ash/policy/reporting/extension_install_event_logger_unittest.cc",
-    "../ash/policy/reporting/install_event_log_util_unittest.cc",
     "../ash/policy/reporting/metrics_reporting/audio/audio_events_observer_unittest.cc",
     "../ash/policy/reporting/metrics_reporting/cros_healthd_events_observer_base_unittest.cc",
     "../ash/policy/reporting/metrics_reporting/cros_healthd_metric_sampler_unittest.cc",
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/remote_diagnostics_service_strategy.cc b/chrome/browser/chromeos/extensions/telemetry/api/remote_diagnostics_service_strategy.cc
index 899a70b4..778f285 100644
--- a/chrome/browser/chromeos/extensions/telemetry/api/remote_diagnostics_service_strategy.cc
+++ b/chrome/browser/chromeos/extensions/telemetry/api/remote_diagnostics_service_strategy.cc
@@ -6,14 +6,23 @@
 
 #include <memory>
 
-#include "chrome/browser/ash/telemetry_extension/diagnostics_service_ash.h"
+#include "build/chromeos_buildflags.h"
 #include "chromeos/crosapi/mojom/diagnostics_service.mojom.h"
 #include "mojo/public/cpp/bindings/remote.h"
 
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+#include "chrome/browser/ash/telemetry_extension/diagnostics_service_ash.h"
+#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+#include "chromeos/lacros/lacros_service.h"
+#endif  // BUILDFLAG (IS_CHROMEOS_LACROS)
+
 namespace chromeos {
 
 namespace {
 
+#if BUILDFLAG(IS_CHROMEOS_ASH)
 class RemoteDiagnosticsServiceStrategyAsh
     : public RemoteDiagnosticsServiceStrategy {
  public:
@@ -34,13 +43,40 @@
 
   std::unique_ptr<crosapi::mojom::DiagnosticsService> diagnostics_service_;
 };
+#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+class RemoteDiagnosticsServiceStrategyLacros
+    : public RemoteDiagnosticsServiceStrategy {
+ public:
+  RemoteDiagnosticsServiceStrategyLacros() = default;
+
+  ~RemoteDiagnosticsServiceStrategyLacros() override = default;
+
+  // RemoteDiagnosticsServiceStrategy override:
+  mojo::Remote<crosapi::mojom::DiagnosticsService>& GetRemoteService()
+      override {
+    return LacrosService::Get()
+        ->GetRemote<crosapi::mojom::DiagnosticsService>();
+  }
+};
+#endif  // BUILDFLAG (IS_CHROMEOS_LACROS)
 
 }  // namespace
 
 // static
 std::unique_ptr<RemoteDiagnosticsServiceStrategy>
 RemoteDiagnosticsServiceStrategy::Create() {
+#if BUILDFLAG(IS_CHROMEOS_ASH)
   return std::make_unique<RemoteDiagnosticsServiceStrategyAsh>();
+#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+  if (!LacrosService::Get()
+           ->IsAvailable<crosapi::mojom::DiagnosticsService>()) {
+    return nullptr;
+  }
+  return std::make_unique<RemoteDiagnosticsServiceStrategyLacros>();
+#endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
 }
 
 RemoteDiagnosticsServiceStrategy::RemoteDiagnosticsServiceStrategy() = default;
diff --git a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java
index 7a22325..83a5856 100644
--- a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java
+++ b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java
@@ -26,6 +26,7 @@
             "allow_disable_price_annotations";
     @VisibleForTesting
     public static final String PRICE_DROP_IPH_ENABLED_PARAM = "enable_price_drop_iph";
+    private static final String PRICE_DROP_BADGE_ENABLED_PARAM = "enable_price_drop_badge";
     private static final String PRICE_ANNOTATIONS_ENABLED_METRICS_WINDOW_DURATION_PARAM =
             "price_annotations_enabled_metrics_window_duration_ms";
 
@@ -131,4 +132,14 @@
         }
         return isPriceTrackingEligible();
     }
+
+    public static boolean isPriceDropBadgeEnabled() {
+        if (FeatureList.isInitialized()) {
+            return isPriceTrackingEligible()
+                    && ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean(
+                            ChromeFeatureList.COMMERCE_PRICE_TRACKING,
+                            PRICE_DROP_BADGE_ENABLED_PARAM, false);
+        }
+        return isPriceTrackingEligible();
+    }
 }
\ No newline at end of file
diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc
index 0dd512c..57baad3 100644
--- a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc
+++ b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc
@@ -6,7 +6,12 @@
 
 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
 #include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/android/tab_model/tab_model.h"
+#include "components/content_settings/core/common/content_settings_utils.h"
+#include "components/content_settings/core/common/pref_names.h"
+#include "components/prefs/pref_service.h"
 #include "content/public/browser/navigation_handle.h"
+#include "content/public/common/content_features.h"
 
 RequestDesktopSiteWebContentsObserverAndroid::
     RequestDesktopSiteWebContentsObserverAndroid(content::WebContents* contents)
@@ -17,6 +22,10 @@
       Profile::FromBrowserContext(web_contents()->GetBrowserContext());
   host_content_settings_map_ =
       HostContentSettingsMapFactory::GetForProfile(profile);
+  if (base::FeatureList::IsEnabled(features::kRequestDesktopSiteAdditions)) {
+    pref_service_ = profile->GetPrefs();
+    tab_android_ = TabAndroid::FromWebContents(contents);
+  }
 }
 
 RequestDesktopSiteWebContentsObserverAndroid::
@@ -36,15 +45,38 @@
   if (!navigation_handle->IsRendererInitiated()) {
     return;
   }
+  if (!base::FeatureList::IsEnabled(features::kRequestDesktopSiteExceptions)) {
+    // Stop UA override if there is a tab level setting.
+    TabModel::TabUserAgent tabSetting =
+        tab_android_
+            ? static_cast<TabModel::TabUserAgent>(tab_android_->GetUserAgent())
+            : TabModel::TabUserAgent::DEFAULT;
+    if (tabSetting != TabModel::TabUserAgent::DEFAULT) {
+      return;
+    }
+  }
 
   const GURL& url = navigation_handle->GetParentFrameOrOuterDocument()
                         ? navigation_handle->GetParentFrameOrOuterDocument()
                               ->GetOutermostMainFrame()
                               ->GetLastCommittedURL()
                         : navigation_handle->GetURL();
-  ContentSetting setting = host_content_settings_map_->GetContentSetting(
-      url, url, ContentSettingsType::REQUEST_DESKTOP_SITE);
-  bool use_rds = setting == CONTENT_SETTING_ALLOW;
+  content_settings::SettingInfo setting_info;
+  const base::Value setting = host_content_settings_map_->GetWebsiteSetting(
+      url, url, ContentSettingsType::REQUEST_DESKTOP_SITE, &setting_info);
+  bool use_rds =
+      content_settings::ValueToContentSetting(setting) == CONTENT_SETTING_ALLOW;
+
+  // Take secondary settings into account if ContentSetting is global setting.
+  if (!use_rds &&
+      base::FeatureList::IsEnabled(features::kRequestDesktopSiteAdditions) &&
+      setting_info.primary_pattern.MatchesAllHosts()) {
+    bool use_rds_peripheral =
+        pref_service_->GetBoolean(prefs::kDesktopSitePeripheralSettingEnabled);
+    if (use_rds_peripheral) {
+      use_rds = TabAndroid::isHardwareKeyboardAvailable(tab_android_);
+    }
+  }
   navigation_handle->SetIsOverridingUserAgent(use_rds);
 }
 
diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.h b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.h
index 9eb6eb3..f737e83 100644
--- a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.h
+++ b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.h
@@ -5,6 +5,7 @@
 #ifndef CHROME_BROWSER_CONTENT_SETTINGS_REQUEST_DESKTOP_SITE_WEB_CONTENTS_OBSERVER_ANDROID_H_
 #define CHROME_BROWSER_CONTENT_SETTINGS_REQUEST_DESKTOP_SITE_WEB_CONTENTS_OBSERVER_ANDROID_H_
 
+#include "chrome/browser/android/tab_android.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "content/public/browser/web_contents_user_data.h"
@@ -12,6 +13,7 @@
 // This observer is Android-specific and intercepts each navigation on the main
 // frame. For sites configured so, it overrides the user agent to request the
 // desktop version of the site.
+// TODO(crbug.com/1349647): Add tests for this class.
 class RequestDesktopSiteWebContentsObserverAndroid
     : public content::WebContentsObserver,
       public content::WebContentsUserData<
@@ -35,6 +37,8 @@
       RequestDesktopSiteWebContentsObserverAndroid>;
 
   scoped_refptr<HostContentSettingsMap> host_content_settings_map_;
+  raw_ptr<PrefService> pref_service_ = nullptr;
+  raw_ptr<TabAndroid> tab_android_ = nullptr;
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 };
diff --git a/chrome/browser/download/download_item_model_unittest.cc b/chrome/browser/download/download_item_model_unittest.cc
index 58af6478..e2dd00c 100644
--- a/chrome/browser/download/download_item_model_unittest.cc
+++ b/chrome/browser/download/download_item_model_unittest.cc
@@ -887,6 +887,58 @@
     EXPECT_EQ(test_case.expected_should_show, model().ShouldShowInBubble());
   }
 }
+
+TEST_F(DownloadItemModelTest, GetBubbleStatusMessageWithBytes) {
+  auto compare_results = [](std::u16string actual, std::vector<int> expected) {
+    EXPECT_EQ(actual.length(), expected.size());
+    for (auto it = expected.begin(); it < expected.end(); it++) {
+      int index = std::distance(expected.begin(), it);
+      EXPECT_EQ(actual[index], expected[index]);
+    }
+  };
+
+  base::i18n::SetRTLForTesting(true);
+
+  // Arabic
+  auto* arabic_bytes = L"5 \x062A";
+  auto* arabic_status = L"\x0645";
+  std::u16string arabic =
+      DownloadUIModel::BubbleStatusTextBuilder::GetBubbleStatusMessageWithBytes(
+          base::WideToUTF16(arabic_bytes), base::WideToUTF16(arabic_status),
+          false);
+  std::vector<int> expected_arabic =
+#if BUILDFLAG(IS_MAC)
+      {8207, 8235, 53, 32, 1578, 32, 8226, 32, 1605, 8236, 8207};
+#elif BUILDFLAG(IS_POSIX)
+      {8207, 8235, 8207, 53, 32, 1578, 32, 8226, 32, 1605, 8236, 8207};
+#else
+      {8235, 53, 32, 1578, 32, 8226, 32, 1605, 8236};
+#endif
+  compare_results(arabic, expected_arabic);
+
+  // Hebrew
+  auto* hebrew_status = L"\x05D0";
+  std::u16string hebrew = DownloadUIModel::BubbleStatusTextBuilder ::
+      GetBubbleStatusMessageWithBytes(u"5 MB", base::WideToUTF16(hebrew_status),
+                                      false);
+  std::vector<int> expected_hebrew =
+#if BUILDFLAG(IS_MAC)
+      {8207, 8235, 8234, 53, 32, 77, 66, 8236, 32, 8226, 32, 1488, 8236, 8207};
+#elif BUILDFLAG(IS_POSIX)
+      {8207, 8235, 8207, 8234, 53,   32,   77,  66,
+       8236, 32,   8226, 32,   1488, 8236, 8207};
+#else
+      {8235, 8234, 53, 32, 77, 66, 8236, 32, 8226, 32, 1488, 8236};
+#endif
+  compare_results(hebrew, expected_hebrew);
+
+  // English
+  base::i18n::SetRTLForTesting(false);
+  std::u16string english = DownloadUIModel::BubbleStatusTextBuilder ::
+      GetBubbleStatusMessageWithBytes(u"5 MB", u"A", false);
+  std::vector<int> expected_english = {53, 32, 77, 66, 32, 8226, 32, 65};
+  compare_results(english, expected_english);
+}
 #endif  // !BUILDFLAG(IS_ANDROID)
 
 TEST_F(DownloadItemModelTest, ShouldShowInShelf) {
diff --git a/chrome/browser/download/download_ui_model.cc b/chrome/browser/download/download_ui_model.cc
index ee114c0..b4826db 100644
--- a/chrome/browser/download/download_ui_model.cc
+++ b/chrome/browser/download/download_ui_model.cc
@@ -178,9 +178,14 @@
 }
 
 std::u16string DownloadUIModel::GetProgressSizesString() const {
+  return status_text_builder_->GetProgressSizesString();
+}
+
+std::u16string DownloadUIModel::StatusTextBuilder::GetProgressSizesString()
+    const {
   std::u16string size_ratio;
-  int64_t size = GetCompletedBytes();
-  int64_t total = GetTotalBytes();
+  int64_t size = model_->GetCompletedBytes();
+  int64_t total = model_->GetTotalBytes();
   if (total > 0) {
     ui::DataUnits amount_units = ui::GetByteDisplayUnits(total);
     std::u16string simple_size =
@@ -202,6 +207,33 @@
   return size_ratio;
 }
 
+std::u16string
+DownloadUIModel::BubbleStatusTextBuilder::GetProgressSizesString() const {
+  std::u16string size_ratio;
+  int64_t size = model_->GetCompletedBytes();
+  int64_t total = model_->GetTotalBytes();
+  if (total > 0) {
+    ui::DataUnits amount_units = ui::GetByteDisplayUnits(total);
+    std::u16string simple_size =
+        ui::FormatBytesWithUnits(size, amount_units, false);
+    std::u16string simple_total =
+        ui::FormatBytesWithUnits(total, amount_units, true);
+
+    // Linux prepends an RLM (right-to-left mark) in the FormatBytesWithUnits
+    // call when showing units if the string has strong RTL characters. This is
+    // problematic for this fraction use case because it ends up moving it
+    // around so that the numerator is in the wrong place. Therefore, we remove
+    // that extra marker before proceeding.
+    base::i18n::UnadjustStringForLocaleDirection(&simple_total);
+    size_ratio = l10n_util::GetStringFUTF16(IDS_DOWNLOAD_STATUS_SIZES,
+                                            simple_size, simple_total);
+  } else {
+    size_ratio = ui::FormatBytes(size);
+  }
+
+  return size_ratio;
+}
+
 std::u16string DownloadUIModel::GetStatusText() const {
   return status_text_builder_->GetStatusText(GetState());
 }
@@ -1173,7 +1205,7 @@
        web_drive.empty());
 
   // Indication of progress. (E.g.:"100/200 MB" or "100MB")
-  std::u16string size_ratio = model_->GetProgressSizesString();
+  std::u16string size_ratio = GetProgressSizesString();
 
   // The download is a CRX (app, extension, theme, ...) and it is being unpacked
   // and validated.
@@ -1226,6 +1258,43 @@
   }
 }
 
+// static
+std::u16string
+DownloadUIModel::BubbleStatusTextBuilder::GetBubbleStatusMessageWithBytes(
+    const std::u16string& bytes_substring,
+    const std::u16string& detail_message,
+    bool is_active) {
+  // For some RTL languages (e.g. Hebrew), the translated form of 123/456 MB
+  // still uses the English characters "MB" rather than RTL characters. We
+  // specifically mark this as LTR because it should be displayed as "123/456
+  // MB" (not "MB 123/456"). Conversely, some other RTL languages (e.g. Arabic)
+  // do translate "MB" to RTL characters. For these, we do nothing, that way the
+  // phrase is correctly displayed as RTL, with the translated "MB" to the left
+  // of the fraction.
+  std::u16string final_bytes_substring =
+      base::i18n::GetStringDirection(bytes_substring) ==
+              base::i18n::TextDirection::LEFT_TO_RIGHT
+          ? base::i18n::GetDisplayStringInLTRDirectionality(bytes_substring)
+          : bytes_substring;
+
+  std::u16string download_progress =
+      is_active ? l10n_util::GetStringFUTF16(
+                      IDS_DOWNLOAD_BUBBLE_DOWNLOAD_STATUS_WITH_SYMBOL,
+                      final_bytes_substring)
+                : final_bytes_substring;
+
+  std::u16string text = l10n_util::GetStringFUTF16(
+      IDS_DOWNLOAD_BUBBLE_DOWNLOAD_STATUS_MESSAGE_WITH_SEPARATOR,
+      download_progress, detail_message);
+
+  // Some RTL languages like Hebrew still display "MB" in English
+  // characters, which are the first strongly directional characters in
+  // the full string. We mark the full string as RTL to ensure it doesn't get
+  // displayed as LTR in spite of the first characters ("MB") being LTR.
+  base::i18n::AdjustStringForLocaleDirection(&text);
+  return text;
+}
+
 std::u16string
 DownloadUIModel::BubbleStatusTextBuilder::GetBubbleWarningStatusText() const {
   // If the detail message is "Malware", then this returns "Blocked • Malware"
@@ -1343,35 +1412,30 @@
        web_drive.empty());
 
   // Indication of progress. (E.g.:"100/200 MB" or "100MB")
-  std::u16string size_ratio = model_->GetProgressSizesString();
+  std::u16string size_ratio = GetProgressSizesString();
 
   // If the detail message is "Paused" and the size_ratio is "100/120 MB", then
   // this returns "100/120 MB • Paused".
   auto get_size_ratio_string = [size_ratio](std::u16string detail_message) {
-    return l10n_util::GetStringFUTF16(
-        IDS_DOWNLOAD_BUBBLE_DOWNLOAD_STATUS_MESSAGE_WITH_SEPARATOR, size_ratio,
-        detail_message);
+    return GetBubbleStatusMessageWithBytes(size_ratio, detail_message,
+                                           /*is_active=*/false);
   };
   // If the detail message is "Opening in 10 seconds..." and the size_ratio is
   // "100/120 MB", then this returns "↓ 100/120 MB • Opening in 10 seconds...".
   auto get_active_download_size_ratio_string =
       [size_ratio](std::u16string detail_message) {
-        return l10n_util::GetStringFUTF16(
-            IDS_DOWNLOAD_BUBBLE_DOWNLOAD_STATUS_MESSAGE_WITH_SEPARATOR,
-            l10n_util::GetStringFUTF16(
-                IDS_DOWNLOAD_BUBBLE_DOWNLOAD_STATUS_WITH_SYMBOL, size_ratio),
-            detail_message);
+        return GetBubbleStatusMessageWithBytes(size_ratio, detail_message,
+                                               /*is_active=*/true);
       };
 
   const auto completed_bytes = model_->GetCompletedBytes();
   const auto total_bytes = model_->GetTotalBytes();
 
-  // If the detail message is "Done" and the total_byes is "120 MB", then
+  // If the detail message is "Done" and the total_bytes is "120 MB", then
   // this returns "120 MB • Done".
   auto get_total_string = [total_bytes](std::u16string detail_message) {
-    return l10n_util::GetStringFUTF16(
-        IDS_DOWNLOAD_BUBBLE_DOWNLOAD_STATUS_MESSAGE_WITH_SEPARATOR,
-        ui::FormatBytes(total_bytes), detail_message);
+    return GetBubbleStatusMessageWithBytes(ui::FormatBytes(total_bytes),
+                                           detail_message, /*is_active=*/false);
   };
 
   // The download is a CRX (app, extension, theme, ...) and it is being unpacked
@@ -1464,7 +1528,6 @@
     // Offline items have these null.
     return l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_STATUS_DONE);
   } else {
-    std::u16string size_text = ui::FormatBytes(model_->GetTotalBytes());
     std::u16string delta_str;
     if (model_->GetDangerType() ==
         download::DOWNLOAD_DANGER_TYPE_DEEP_SCANNED_SAFE) {
@@ -1482,9 +1545,9 @@
                                        ui::TimeFormat::LENGTH_LONG,
                                        time_elapsed);
     }
-    return l10n_util::GetStringFUTF16(
-        IDS_DOWNLOAD_BUBBLE_DOWNLOAD_STATUS_MESSAGE_WITH_SEPARATOR, size_text,
-        delta_str);
+    return GetBubbleStatusMessageWithBytes(
+        ui::FormatBytes(model_->GetTotalBytes()), delta_str,
+        /*is_active=*/false);
   }
 }
 
diff --git a/chrome/browser/download/download_ui_model.h b/chrome/browser/download/download_ui_model.h
index 5ce35e8..1d34e96 100644
--- a/chrome/browser/download/download_ui_model.h
+++ b/chrome/browser/download/download_ui_model.h
@@ -55,6 +55,13 @@
     // Returns a string indicating the status of a completed download.
     virtual std::u16string GetCompletedStatusText() const = 0;
 
+    // Returns a string representation of the current download progress sizes.
+    // If the total size of the download is known, this string looks like:
+    // "100/200 MB" where the numerator is the transferred size and the
+    // denominator is the total size. If the total isn't known, returns the
+    // transferred size as a string (e.g.: "100 MB").
+    virtual std::u16string GetProgressSizesString() const = 0;
+
     // Returns a string indicating the status of an interrupted download.
     virtual std::u16string GetInterruptedStatusText(
         offline_items_collection::FailState fail_state) const;
@@ -72,6 +79,7 @@
    public:
     std::u16string GetInProgressStatusText() const override;
     std::u16string GetCompletedStatusText() const override;
+    std::u16string GetProgressSizesString() const override;
   };
 
   // Used in Download bubble.
@@ -81,8 +89,16 @@
     std::u16string GetCompletedStatusText() const override;
     std::u16string GetInterruptedStatusText(
         offline_items_collection::FailState fail_state) const override;
+    std::u16string GetProgressSizesString() const override;
 
    private:
+    FRIEND_TEST_ALL_PREFIXES(DownloadItemModelTest,
+                             GetBubbleStatusMessageWithBytes);
+
+    static std::u16string GetBubbleStatusMessageWithBytes(
+        const std::u16string& bytes_substring,
+        const std::u16string& detail_message,
+        bool is_active);
     std::u16string GetBubbleWarningStatusText() const;
   };
 
diff --git a/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java b/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java
index 794fb077..8e09e6f 100644
--- a/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java
+++ b/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java
@@ -149,7 +149,8 @@
     @IntDef({IncognitoMessageEvent.SHOWN, IncognitoMessageEvent.ACCEPTED,
             IncognitoMessageEvent.DISMISSED_WITH_GESTURE,
             IncognitoMessageEvent.DISMISSED_WITH_TIMER, IncognitoMessageEvent.NUM_ENTRIES,
-            IncognitoMessageEvent.DISMISSED_WITH_DIFFERENT_REASON})
+            IncognitoMessageEvent.DISMISSED_WITH_DIFFERENT_REASON,
+            IncognitoMessageEvent.DISMISSED_INTERNAL_ERROR})
     @Retention(RetentionPolicy.SOURCE)
     private @interface IncognitoMessageEvent {
         int SHOWN = 0;
@@ -157,8 +158,9 @@
         int DISMISSED_WITH_GESTURE = 2;
         int DISMISSED_WITH_TIMER = 3;
         int DISMISSED_WITH_DIFFERENT_REASON = 4;
+        int DISMISSED_INTERNAL_ERROR = 5;
 
-        int NUM_ENTRIES = 5;
+        int NUM_ENTRIES = 6;
     }
 
     /**
@@ -368,7 +370,19 @@
             }
             callback.onResult(/*accepted=*/false);
         });
-        getMessageDispatcher().enqueueWindowScopedMessage(mPropertyModel, /*highPriority=*/true);
+
+        MessageDispatcher dispatcher = getMessageDispatcher();
+      
+      	// TODO(https://crbug.com/1350110): Fix the issue with dispatcher 
+      	//                                  being Null and remove the following if clause
+        if (dispatcher == null) {
+            callback.onResult(/*accepted=*/false);
+            recordIncognitoDownloadMessage(IncognitoMessageEvent.DISMISSED_INTERNAL_ERROR);
+
+            return;
+        }
+
+        dispatcher.enqueueWindowScopedMessage(mPropertyModel, /*highPriority=*/true);
         recordIncognitoDownloadMessage(IncognitoMessageEvent.SHOWN);
     }
 
diff --git a/chrome/browser/first_party_sets/first_party_sets_policy_service.h b/chrome/browser/first_party_sets/first_party_sets_policy_service.h
index 7f315344..151f855 100644
--- a/chrome/browser/first_party_sets/first_party_sets_policy_service.h
+++ b/chrome/browser/first_party_sets/first_party_sets_policy_service.h
@@ -8,6 +8,7 @@
 #include "base/sequence_checker.h"
 #include "base/values.h"
 #include "components/keyed_service/core/keyed_service.h"
+#include "content/public/browser/first_party_sets_handler.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "mojo/public/cpp/bindings/remote_set.h"
 #include "services/network/public/mojom/first_party_sets_access_delegate.mojom.h"
@@ -26,15 +27,8 @@
 // policy.
 class FirstPartySetsPolicyService : public KeyedService {
  public:
-  // The keys are member sites and the values are their owners in the final
-  // list of First-Party Sets that result from combining the public sets and
-  // the per-profile Overrides policy. Entries of site -> absl::nullopt means
-  // the key site is considered deleted from the existing First-Party Sets.
   using PolicyCustomization =
-      base::flat_map<net::SchemefulSite, absl::optional<net::SchemefulSite>>;
-
-  // The standard representation of the list of First-Party Sets.
-  using FlattenedSets = base::flat_map<net::SchemefulSite, net::SchemefulSite>;
+      content::FirstPartySetsHandler::PolicyCustomization;
 
   FirstPartySetsPolicyService(content::BrowserContext* context,
                               const base::Value::Dict& policy);
diff --git a/chrome/browser/history_clusters/java/res/layout/history_clusters_activity_content.xml b/chrome/browser/history_clusters/java/res/layout/history_clusters_activity_content.xml
index 24a3bfc..3ee1fb7 100644
--- a/chrome/browser/history_clusters/java/res/layout/history_clusters_activity_content.xml
+++ b/chrome/browser/history_clusters/java/res/layout/history_clusters_activity_content.xml
@@ -7,4 +7,5 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/selectable_list"
     android:layout_width="match_parent"
-    android:layout_height="match_parent" />
\ No newline at end of file
+    android:layout_height="match_parent"
+    android:background="@macro/default_bg_color" />
\ No newline at end of file
diff --git a/chrome/browser/lacros/net/network_settings_translation_crosapi.cc b/chrome/browser/lacros/net/network_settings_translation_crosapi.cc
index 8fafe4e..1da1d989 100644
--- a/chrome/browser/lacros/net/network_settings_translation_crosapi.cc
+++ b/chrome/browser/lacros/net/network_settings_translation_crosapi.cc
@@ -62,6 +62,34 @@
                                         kAshProxyConfigTrafficAnnotation);
 }
 
+net::ProxyServer::Scheme CrosapiSchemeToNetScheme(
+    crosapi::mojom::ProxyLocation::Scheme in) {
+  switch (in) {
+    // We map kUnknown to HTTP because this will make the proxy setting work for
+    // most deployments with older ASH browser versions which do not support
+    // sending the ProxyLocation::Scheme yet, as HTTP is the most commonly used
+    // scheme for communicating with a HTTP proxy server.
+    case crosapi::mojom::ProxyLocation::Scheme::kUnknown:
+      return net::ProxyServer::Scheme::SCHEME_HTTP;
+    case crosapi::mojom::ProxyLocation::Scheme::kInvalid:
+      return net::ProxyServer::Scheme::SCHEME_INVALID;
+    case crosapi::mojom::ProxyLocation::Scheme::kDirect:
+      return net::ProxyServer::Scheme::SCHEME_DIRECT;
+    case crosapi::mojom::ProxyLocation::Scheme::kHttp:
+      return net::ProxyServer::Scheme::SCHEME_HTTP;
+    case crosapi::mojom::ProxyLocation::Scheme::kSocks4:
+      return net::ProxyServer::Scheme::SCHEME_SOCKS4;
+    case crosapi::mojom::ProxyLocation::Scheme::kSocks5:
+      return net::ProxyServer::Scheme::SCHEME_SOCKS5;
+    case crosapi::mojom::ProxyLocation::Scheme::kHttps:
+      return net::ProxyServer::Scheme::SCHEME_HTTPS;
+    case crosapi::mojom::ProxyLocation::Scheme::kQuic:
+      return net::ProxyServer::Scheme::SCHEME_QUIC;
+  }
+
+  return net::ProxyServer::Scheme::SCHEME_INVALID;
+}
+
 net::ProxyConfigWithAnnotation TranslateManualProxySettings(
     crosapi::mojom::ProxySettingsManualPtr proxy_settings) {
   net::ProxyConfig proxy_config = net::ProxyConfig();
@@ -70,18 +98,18 @@
 
   for (auto const& proxy : proxy_settings->http_proxies) {
     proxy_config.proxy_rules().proxies_for_http.AddProxyServer(
-        net::ProxyServer(net::ProxyServer::Scheme::SCHEME_HTTP,
+        net::ProxyServer(CrosapiSchemeToNetScheme(proxy->scheme),
                          net::HostPortPair(proxy->host, proxy->port)));
   }
   for (auto const& proxy : proxy_settings->secure_http_proxies) {
     proxy_config.proxy_rules().proxies_for_https.AddProxyServer(
-        net::ProxyServer(net::ProxyServer::Scheme::SCHEME_HTTPS,
+        net::ProxyServer(CrosapiSchemeToNetScheme(proxy->scheme),
                          net::HostPortPair(proxy->host, proxy->port)));
   }
   for (auto const& proxy : proxy_settings->socks_proxies) {
     // See `net::ProxyServer::GetSchemeFromPacTypeInternal()`.
     proxy_config.proxy_rules().fallback_proxies.AddProxyServer(
-        net::ProxyServer(net::ProxyServer::Scheme::SCHEME_SOCKS4,
+        net::ProxyServer(CrosapiSchemeToNetScheme(proxy->scheme),
                          net::HostPortPair(proxy->host, proxy->port)));
   }
 
diff --git a/chrome/browser/lacros/net/network_settings_translation_net_proxy.cc b/chrome/browser/lacros/net/network_settings_translation_net_proxy.cc
index be5595da..4b0d5b9 100644
--- a/chrome/browser/lacros/net/network_settings_translation_net_proxy.cc
+++ b/chrome/browser/lacros/net/network_settings_translation_net_proxy.cc
@@ -16,6 +16,28 @@
 
 namespace {
 
+crosapi::mojom::ProxyLocation::Scheme NetSchemeToCrosapiScheme(
+    net::ProxyServer::Scheme in) {
+  switch (in) {
+    case net::ProxyServer::Scheme::SCHEME_INVALID:
+      return crosapi::mojom::ProxyLocation::Scheme::kInvalid;
+    case net::ProxyServer::Scheme::SCHEME_DIRECT:
+      return crosapi::mojom::ProxyLocation::Scheme::kDirect;
+    case net::ProxyServer::Scheme::SCHEME_HTTP:
+      return crosapi::mojom::ProxyLocation::Scheme::kHttp;
+    case net::ProxyServer::Scheme::SCHEME_SOCKS4:
+      return crosapi::mojom::ProxyLocation::Scheme::kSocks4;
+    case net::ProxyServer::Scheme::SCHEME_SOCKS5:
+      return crosapi::mojom::ProxyLocation::Scheme::kSocks5;
+    case net::ProxyServer::Scheme::SCHEME_HTTPS:
+      return crosapi::mojom::ProxyLocation::Scheme::kHttps;
+    case net::ProxyServer::Scheme::SCHEME_QUIC:
+      return crosapi::mojom::ProxyLocation::Scheme::kQuic;
+  }
+
+  return crosapi::mojom::ProxyLocation::Scheme::kUnknown;
+}
+
 std::vector<crosapi::mojom::ProxyLocationPtr> TranslateProxyLocations(
     const net::ProxyList& proxy_list) {
   std::vector<net::ProxyServer> proxies = proxy_list.GetAll();
@@ -25,6 +47,7 @@
     ptr = crosapi::mojom::ProxyLocation::New();
     ptr->host = proxy.host_port_pair().host();
     ptr->port = proxy.host_port_pair().port();
+    ptr->scheme = NetSchemeToCrosapiScheme(proxy.scheme());
     ptr_list.push_back(std::move(ptr));
   }
   return ptr_list;
diff --git a/chrome/browser/lacros/net/network_settings_translation_unittest.cc b/chrome/browser/lacros/net/network_settings_translation_unittest.cc
index c82aa36..826508b 100644
--- a/chrome/browser/lacros/net/network_settings_translation_unittest.cc
+++ b/chrome/browser/lacros/net/network_settings_translation_unittest.cc
@@ -58,7 +58,10 @@
 TEST(NetworkSettingsTranslationTest, NetProxyToCrosapiProxyManual) {
   net::ProxyConfig config;
   config.proxy_rules().ParseFromString(
-      "http=proxy:80;https=secure_proxy:81;socks=socks_proxy:82;");
+      "http=http://proxy:80;https=https://secure_proxy:81;socks=socks4://"
+      "socks_proxy:82;"
+      "http=invalid://proxy2:83;http=direct://proxy3:84;"
+      "http=socks5://proxy4:85;http=quic://proxy5:86;");
   config.proxy_rules().bypass_rules.ParseFromString("localhost;google.com;");
 
   crosapi::mojom::ProxyConfigPtr actual = NetProxyToCrosapiProxy(
@@ -66,20 +69,32 @@
   ASSERT_TRUE(actual->proxy_settings->is_manual());
   std::vector<crosapi::mojom::ProxyLocationPtr> proxy_ptr =
       std::move(actual->proxy_settings->get_manual()->http_proxies);
-  ASSERT_EQ(proxy_ptr.size(), 1u);
+  ASSERT_EQ(proxy_ptr.size(), 3u);
   EXPECT_EQ(proxy_ptr[0]->host, "proxy");
   EXPECT_EQ(proxy_ptr[0]->port, 80);
+  EXPECT_EQ(proxy_ptr[0]->scheme, crosapi::mojom::ProxyLocation::Scheme::kHttp);
+  EXPECT_EQ(proxy_ptr[1]->host, "proxy4");
+  EXPECT_EQ(proxy_ptr[1]->port, 85);
+  EXPECT_EQ(proxy_ptr[1]->scheme,
+            crosapi::mojom::ProxyLocation::Scheme::kSocks5);
+  EXPECT_EQ(proxy_ptr[2]->host, "proxy5");
+  EXPECT_EQ(proxy_ptr[2]->port, 86);
+  EXPECT_EQ(proxy_ptr[2]->scheme, crosapi::mojom::ProxyLocation::Scheme::kQuic);
 
   proxy_ptr =
       std::move(actual->proxy_settings->get_manual()->secure_http_proxies);
   ASSERT_EQ(proxy_ptr.size(), 1u);
   EXPECT_EQ(proxy_ptr[0]->host, "secure_proxy");
   EXPECT_EQ(proxy_ptr[0]->port, 81);
+  EXPECT_EQ(proxy_ptr[0]->scheme,
+            crosapi::mojom::ProxyLocation::Scheme::kHttps);
 
   proxy_ptr = std::move(actual->proxy_settings->get_manual()->socks_proxies);
   ASSERT_EQ(proxy_ptr.size(), 1u);
   EXPECT_EQ(proxy_ptr[0]->host, "socks_proxy");
   EXPECT_EQ(proxy_ptr[0]->port, 82);
+  EXPECT_EQ(proxy_ptr[0]->scheme,
+            crosapi::mojom::ProxyLocation::Scheme::kSocks4);
 
   const std::vector<std::string> exclude_domains =
       actual->proxy_settings->get_manual()->exclude_domains;
@@ -172,12 +187,23 @@
       crosapi::mojom::ProxyLocation::New();
   location->host = "proxy";
   location->port = 80;
+  // Note: Setting the scheme will be reflected in the pac string below. So
+  // no need to test those separately after setting. kHttp will map to
+  // PROXY in the pac string!
+  location->scheme = crosapi::mojom::ProxyLocation::Scheme::kHttp;
   manual->http_proxies.push_back(location.Clone());
   location->host = "secure_proxy";
   location->port = 81;
+  location->scheme = crosapi::mojom::ProxyLocation::Scheme::kHttps;
+  manual->secure_http_proxies.push_back(location.Clone());
+  // Note that the secure_http_proxies may speak HTTP, so test this as well.
+  location->host = "secure_proxy2";
+  location->port = 82;
+  location->scheme = crosapi::mojom::ProxyLocation::Scheme::kHttp;
   manual->secure_http_proxies.push_back(location.Clone());
   location->host = "socks_proxy";
   location->port = 82;
+  location->scheme = crosapi::mojom::ProxyLocation::Scheme::kSocks4;
   manual->socks_proxies.push_back(std::move(location));
   manual->exclude_domains = {"localhost", "google.com"};
   ptr->proxy_settings =
@@ -188,7 +214,7 @@
   EXPECT_EQ(actual.value().proxy_rules().proxies_for_http.ToPacString(),
             "PROXY proxy:80");
   EXPECT_EQ(actual.value().proxy_rules().proxies_for_https.ToPacString(),
-            "HTTPS secure_proxy:81");
+            "HTTPS secure_proxy:81;PROXY secure_proxy2:82");
   EXPECT_EQ(actual.value().proxy_rules().fallback_proxies.ToPacString(),
             "SOCKS socks_proxy:82");
   EXPECT_EQ(actual.value().proxy_rules().bypass_rules.ToString(),
diff --git a/chrome/browser/media/webrtc/desktop_media_list_ash.cc b/chrome/browser/media/webrtc/desktop_media_list_ash.cc
index bc6901f..41f5814 100644
--- a/chrome/browser/media/webrtc/desktop_media_list_ash.cc
+++ b/chrome/browser/media/webrtc/desktop_media_list_ash.cc
@@ -38,20 +38,20 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 }
 
-void DesktopMediaListAsh::Refresh(bool update_thumnails) {
+void DesktopMediaListAsh::Refresh(bool update_thumbnails) {
   DCHECK(can_refresh());
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK_EQ(pending_window_capture_requests_, 0);
 
   std::vector<SourceDescription> new_sources;
-  EnumerateSources(&new_sources, update_thumnails);
+  EnumerateSources(&new_sources, update_thumbnails);
   UpdateSourcesList(new_sources);
   OnRefreshMaybeComplete();
 }
 
 void DesktopMediaListAsh::EnumerateWindowsForRoot(
     std::vector<DesktopMediaListAsh::SourceDescription>* sources,
-    bool update_thumnails,
+    bool update_thumbnails,
     aura::Window* root_window,
     int container_id) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -72,14 +72,14 @@
     SourceDescription window_source(id, window->GetTitle());
     sources->push_back(window_source);
 
-    if (update_thumnails)
+    if (update_thumbnails)
       CaptureThumbnail(window_source.id, window);
   }
 }
 
 void DesktopMediaListAsh::EnumerateSources(
     std::vector<DesktopMediaListAsh::SourceDescription>* sources,
-    bool update_thumnails) {
+    bool update_thumbnails) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   aura::Window::Windows root_windows = ash::Shell::GetAllRootWindows();
@@ -112,18 +112,18 @@
         }
       }
 
-      if (update_thumnails)
+      if (update_thumbnails)
         CaptureThumbnail(screen_source.id, root_windows[i]);
     } else {
       // The list of desks containers depends on whether the Virtual Desks
       // feature is enabled or not.
       for (int desk_id : ash::desks_util::GetDesksContainersIds())
-        EnumerateWindowsForRoot(sources, update_thumnails, root_windows[i],
+        EnumerateWindowsForRoot(sources, update_thumbnails, root_windows[i],
                                 desk_id);
 
-      EnumerateWindowsForRoot(sources, update_thumnails, root_windows[i],
+      EnumerateWindowsForRoot(sources, update_thumbnails, root_windows[i],
                               ash::kShellWindowId_AlwaysOnTopContainer);
-      EnumerateWindowsForRoot(sources, update_thumnails, root_windows[i],
+      EnumerateWindowsForRoot(sources, update_thumbnails, root_windows[i],
                               ash::kShellWindowId_PipContainer);
     }
   }
diff --git a/chrome/browser/media/webrtc/desktop_media_list_ash.h b/chrome/browser/media/webrtc/desktop_media_list_ash.h
index ba5f92f..b2f7933 100644
--- a/chrome/browser/media/webrtc/desktop_media_list_ash.h
+++ b/chrome/browser/media/webrtc/desktop_media_list_ash.h
@@ -33,15 +33,15 @@
 
  private:
   // Override from DesktopMediaListBase.
-  void Refresh(bool update_thumnails) override;
+  void Refresh(bool update_thumbnails) override;
   void EnumerateWindowsForRoot(
       std::vector<DesktopMediaListAsh::SourceDescription>* windows,
-      bool update_thumnails,
+      bool update_thumbnails,
       aura::Window* root_window,
       int container_id);
   void EnumerateSources(
       std::vector<DesktopMediaListAsh::SourceDescription>* windows,
-      bool update_thumnails);
+      bool update_thumbnails);
   void CaptureThumbnail(content::DesktopMediaID id, aura::Window* window);
   void OnThumbnailCaptured(content::DesktopMediaID id, gfx::Image image);
   void OnRefreshMaybeComplete();
diff --git a/chrome/browser/payments/android/java/src/org/chromium/chrome/browser/payments/test_support/PaymentRequestParamsBuilder.java b/chrome/browser/payments/android/java/src/org/chromium/chrome/browser/payments/test_support/PaymentRequestParamsBuilder.java
index 8275f11..a4d39ec 100644
--- a/chrome/browser/payments/android/java/src/org/chromium/chrome/browser/payments/test_support/PaymentRequestParamsBuilder.java
+++ b/chrome/browser/payments/android/java/src/org/chromium/chrome/browser/payments/test_support/PaymentRequestParamsBuilder.java
@@ -240,16 +240,6 @@
     }
 
     @Override
-    public PaymentAppFactoryInterface createAutofillPaymentAppFactory() {
-        return null;
-    }
-
-    @Override
-    public boolean canMakeAutofillPayment(Map<String, PaymentMethodData> methodData) {
-        return false;
-    }
-
-    @Override
     public boolean isWebContentsActive(RenderFrameHost renderFrameHost) {
         return true;
     }
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
index 0647655..4df9088 100644
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -1243,9 +1243,6 @@
   { key::kSuggestedContentEnabled,
     chromeos::prefs::kSuggestedContentEnabled,
     base::Value::Type::BOOLEAN },
-  { key::kExtensionInstallEventLoggingEnabled,
-    prefs::kExtensionInstallEventLoggingEnabled,
-    base::Value::Type::BOOLEAN },
   { key::kRequiredClientCertificateForUser,
     prefs::kRequiredClientCertificateForUser,
     base::Value::Type::LIST },
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 5fe15ec..267c1cf2 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -367,7 +367,6 @@
 #include "chrome/browser/ash/policy/handlers/tpm_auto_update_mode_policy_handler.h"
 #include "chrome/browser/ash/policy/reporting/app_install_event_log_manager_wrapper.h"
 #include "chrome/browser/ash/policy/reporting/arc_app_install_event_logger.h"
-#include "chrome/browser/ash/policy/reporting/extension_install_event_log_manager_wrapper.h"
 #include "chrome/browser/ash/policy/scheduled_task_handler/reboot_notifications_scheduler.h"
 #include "chrome/browser/ash/policy/server_backed_state/active_directory_device_state_uploader.h"
 #include "chrome/browser/ash/policy/status_collector/device_status_collector.h"
@@ -1560,8 +1559,6 @@
   plugin_vm::prefs::RegisterProfilePrefs(registry);
   policy::ArcAppInstallEventLogger::RegisterProfilePrefs(registry);
   policy::AppInstallEventLogManagerWrapper::RegisterProfilePrefs(registry);
-  policy::ExtensionInstallEventLogManagerWrapper::RegisterProfilePrefs(
-      registry);
   policy::StatusCollector::RegisterProfilePrefs(registry);
   ash::SystemProxyManager::RegisterProfilePrefs(registry);
   ChromeShelfPrefs::RegisterProfilePrefs(registry);
diff --git a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service.cc b/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service.cc
index 0556d964..bc50c1d 100644
--- a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service.cc
+++ b/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service.cc
@@ -115,8 +115,8 @@
   ~SearchPrefetchServingReasonRecorder() {
     base::UmaHistogramEnumeration(
         for_prerender_
-            ? "Omnibox.SearchPrefetch.PrefetchServingReason.Prerender"
-            : "Omnibox.SearchPrefetch.PrefetchServingReason",
+            ? "Omnibox.SearchPrefetch.PrefetchServingReason2.Prerender"
+            : "Omnibox.SearchPrefetch.PrefetchServingReason2",
         reason_);
   }
 
@@ -833,6 +833,23 @@
     return prefetches_.end();
   }
 
+  std::u16string search_terms;
+  template_url_service->GetDefaultSearchProvider()->ExtractSearchTermsFromURL(
+      navigation_url, template_url_service->search_terms_data(), &search_terms);
+
+  if (search_terms.length() == 0) {
+    recorder.reason_ = SearchPrefetchServingReason::kNotDefaultSearchWithTerms;
+    return prefetches_.end();
+  }
+
+  const auto& iter = prefetches_.find(search_terms);
+
+  // Check if present is present before checking for other reasons.
+  if (iter == prefetches_.end()) {
+    recorder.reason_ = SearchPrefetchServingReason::kNoPrefetch;
+    return prefetches_.end();
+  }
+
   // The user may have disabled JS since the prefetch occurred.
   if (!profile_->GetPrefs() ||
       !profile_->GetPrefs()->GetBoolean(prefs::kWebKitJavascriptEnabled)) {
@@ -850,22 +867,6 @@
     return prefetches_.end();
   }
 
-  std::u16string search_terms;
-  template_url_service->GetDefaultSearchProvider()->ExtractSearchTermsFromURL(
-      navigation_url, template_url_service->search_terms_data(), &search_terms);
-
-  if (search_terms.length() == 0) {
-    recorder.reason_ = SearchPrefetchServingReason::kNotDefaultSearchWithTerms;
-    return prefetches_.end();
-  }
-
-  const auto& iter = prefetches_.find(search_terms);
-
-  if (iter == prefetches_.end()) {
-    recorder.reason_ = SearchPrefetchServingReason::kNoPrefetch;
-    return prefetches_.end();
-  }
-
   // Verify that the URL is the same origin as the prefetch URL. While other
   // checks should address this by clearing prefetches on user changes to
   // default search, it is paramount to never serve content from one origin to
diff --git a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service_browsertest.cc b/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service_browsertest.cc
index 9d2cdafc..8143e1c 100644
--- a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service_browsertest.cc
+++ b/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service_browsertest.cc
@@ -1193,7 +1193,7 @@
   EXPECT_TRUE(base::Contains(inner_html, "regular"));
   EXPECT_FALSE(base::Contains(inner_html, "prefetch"));
   histogram_tester.ExpectUniqueSample(
-      "Omnibox.SearchPrefetch.PrefetchServingReason",
+      "Omnibox.SearchPrefetch.PrefetchServingReason2",
       SearchPrefetchServingReason::kNoPrefetch, 1);
 }
 
@@ -1230,7 +1230,7 @@
   EXPECT_TRUE(base::Contains(inner_html, "regular"));
   EXPECT_FALSE(base::Contains(inner_html, "prefetch"));
   histogram_tester.ExpectUniqueSample(
-      "Omnibox.SearchPrefetch.PrefetchServingReason",
+      "Omnibox.SearchPrefetch.PrefetchServingReason2",
       SearchPrefetchServingReason::kNoPrefetch, 1);
   histogram_tester.ExpectTotalCount(
       "Omnibox.SearchPrefetch.ClickToNavigationIntercepted", 0);
@@ -2002,7 +2002,7 @@
   ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), search_url));
 
   histogram_tester.ExpectUniqueSample(
-      "Omnibox.SearchPrefetch.PrefetchServingReason",
+      "Omnibox.SearchPrefetch.PrefetchServingReason2",
       SearchPrefetchServingReason::kJavascriptDisabled, 1);
   // The prefetch request and the new non-prefetched served request.
   EXPECT_EQ(2u, search_server_request_count());
@@ -2047,7 +2047,7 @@
   ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), search_url));
 
   histogram_tester.ExpectUniqueSample(
-      "Omnibox.SearchPrefetch.PrefetchServingReason",
+      "Omnibox.SearchPrefetch.PrefetchServingReason2",
       SearchPrefetchServingReason::kJavascriptDisabled, 1);
   // The prefetch request and the new non-prefetched served request.
   EXPECT_EQ(2u, search_server_request_count());
@@ -2091,7 +2091,7 @@
 
   EXPECT_EQ(2u, search_server_request_count());
   histogram_tester.ExpectUniqueSample(
-      "Omnibox.SearchPrefetch.PrefetchServingReason",
+      "Omnibox.SearchPrefetch.PrefetchServingReason2",
       SearchPrefetchServingReason::kPostReloadFormOrLink, 1);
 }
 
@@ -2134,7 +2134,7 @@
 
   EXPECT_EQ(3u, search_server_request_count());
   histogram_tester.ExpectBucketCount(
-      "Omnibox.SearchPrefetch.PrefetchServingReason",
+      "Omnibox.SearchPrefetch.PrefetchServingReason2",
       SearchPrefetchServingReason::kPostReloadFormOrLink, 1);
 }
 IN_PROC_BROWSER_TEST_P(SearchPrefetchServiceEnabledBrowserTest, NoServePost) {
@@ -2173,7 +2173,7 @@
 
   EXPECT_EQ(2u, search_server_request_count());
   histogram_tester.ExpectUniqueSample(
-      "Omnibox.SearchPrefetch.PrefetchServingReason",
+      "Omnibox.SearchPrefetch.PrefetchServingReason2",
       SearchPrefetchServingReason::kPostReloadFormOrLink, 1);
 }
 
diff --git a/chrome/browser/preloading/prefetch/search_prefetch/search_preload_unified_browsertest.cc b/chrome/browser/preloading/prefetch/search_prefetch/search_preload_unified_browsertest.cc
index f6ff586..579d9a1 100644
--- a/chrome/browser/preloading/prefetch/search_prefetch/search_preload_unified_browsertest.cc
+++ b/chrome/browser/preloading/prefetch/search_prefetch/search_preload_unified_browsertest.cc
@@ -503,7 +503,7 @@
 
   // Snapshot those samples recorded before the main test.
   histogram_tester.ExpectTotalCount(
-      "Omnibox.SearchPrefetch.PrefetchServingReason", 1);
+      "Omnibox.SearchPrefetch.PrefetchServingReason2", 1);
 
   std::string search_query = "pre";
   std::string prerender_query = "prerender";
@@ -524,7 +524,7 @@
   prerender_helper().WaitForPrerenderLoadCompletion(*GetActiveWebContents(),
                                                     expected_prerender_url);
   histogram_tester.ExpectUniqueSample(
-      "Omnibox.SearchPrefetch.PrefetchServingReason.Prerender",
+      "Omnibox.SearchPrefetch.PrefetchServingReason2.Prerender",
       SearchPrefetchServingReason::kPrerendered, 1);
 
   // Prefetch should be triggered as well.
@@ -548,7 +548,7 @@
   // On prerender activation, `URLLoaderRequestInterceptor` would not be called,
   // so no more sample should be recorded.
   histogram_tester.ExpectTotalCount(
-      "Omnibox.SearchPrefetch.PrefetchServingReason", 1);
+      "Omnibox.SearchPrefetch.PrefetchServingReason2", 1);
   {
     // Check that we store one entry corresponding to the prerender prediction
     // and attempt with prefetch hints.
@@ -779,7 +779,7 @@
   content::test::PrerenderHostObserver prerender_observer(
       *GetActiveWebContents(), expected_prerender_url);
   histogram_tester.ExpectUniqueSample(
-      "Omnibox.SearchPrefetch.PrefetchServingReason.Prerender",
+      "Omnibox.SearchPrefetch.PrefetchServingReason2.Prerender",
       SearchPrefetchServingReason::kPrerendered, 1);
 
   // 3. Type a different query which results in different suggestions.
@@ -1316,7 +1316,7 @@
   EXPECT_EQ(1, prerender_helper().GetRequestCount(expected_prefetch_url));
   EXPECT_EQ(0, prerender_helper().GetRequestCount(expected_prerender_url));
   histogram_tester.ExpectUniqueSample(
-      "Omnibox.SearchPrefetch.PrefetchServingReason.Prerender",
+      "Omnibox.SearchPrefetch.PrefetchServingReason2.Prerender",
       SearchPrefetchServingReason::kPrerendered, 1);
 
   // 4. Click and activate.
@@ -1384,7 +1384,7 @@
   EXPECT_EQ(1, prerender_helper().GetRequestCount(expected_prefetch_url));
   EXPECT_EQ(0, prerender_helper().GetRequestCount(expected_prerender_url));
   histogram_tester.ExpectUniqueSample(
-      "Omnibox.SearchPrefetch.PrefetchServingReason.Prerender",
+      "Omnibox.SearchPrefetch.PrefetchServingReason2.Prerender",
       SearchPrefetchServingReason::kPrerendered, 1);
 
   // 4. Fail the prerender by navigating it to another page.
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation.js
index 4cbb4ee..66bfdbc 100644
--- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation.js
+++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation.js
@@ -144,6 +144,13 @@
   /** @private */
   startDictation_() {
     this.active_ = true;
+    if (this.chromeVoxEnabled_) {
+      // Silence ChromeVox in case it was speaking. It can speak over the start
+      // tone and also cause a feedback loop if the user is not using
+      // headphones. This does not stop ChromeVox from speaking additional
+      // utterances added to the queue later.
+      chrome.accessibilityPrivate.silenceSpokenFeedback();
+    }
     this.startTone_.play();
     this.setStopTimeout_(
         Dictation.Timeouts.NO_FOCUSED_IME_MS,
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation_test.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation_test.js
index 72f035b..a7b8193 100644
--- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation_test.js
@@ -237,3 +237,34 @@
   await this.assertCommittedText('New line');
   this.mockInputIme.clearLastParameters();
 });
+
+AX_TEST_F(
+    'DictationE2ETest', 'SilencesSpokenFeedbackWhenStarting', async function() {
+      // Check that when ChromeVox is disabled we don't try to silence it.
+      this.toggleDictationOn();
+      assertEquals(
+          0, this.mockAccessibilityPrivate.getSpokenFeedbackSilencedCount());
+      this.toggleDictationOff();
+      assertEquals(
+          0, this.mockAccessibilityPrivate.getSpokenFeedbackSilencedCount());
+
+      // Turn on ChromeVox
+      await this.setPref(Dictation.SPOKEN_FEEDBACK_PREF, true);
+      // Wait for the callbacks to Dictation.
+      await this.getPref(Dictation.SPOKEN_FEEDBACK_PREF);
+
+      // Now silenceSpokenFeedback should get called when toggling Dictation on.
+      this.toggleDictationOn();
+      assertEquals(
+          1, this.mockAccessibilityPrivate.getSpokenFeedbackSilencedCount());
+      this.toggleDictationOff();
+      assertEquals(
+          1, this.mockAccessibilityPrivate.getSpokenFeedbackSilencedCount());
+
+      this.toggleDictationOn();
+      assertEquals(
+          2, this.mockAccessibilityPrivate.getSpokenFeedbackSilencedCount());
+      this.toggleDictationOff();
+      assertEquals(
+          2, this.mockAccessibilityPrivate.getSpokenFeedbackSilencedCount());
+    });
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn
index 60a2b059..5bce3f4 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn
@@ -28,7 +28,6 @@
   "background/braille/cursor_dots.js",
   "background/braille/pan_strategy.js",
   "common/abstract_earcons.js",
-  "common/braille/braille_key_types.js",
   "common/extension_bridge.js",
   "common/log_types.js",
   "common/panel_menu_data.js",
@@ -120,6 +119,7 @@
   "common/background_bridge.js",
   "common/braille/braille_command_data.js",
   "common/braille/braille_interface.js",
+  "common/braille/braille_key_types.js",
   "common/braille/braille_table.js",
   "common/braille/nav_braille.js",
   "common/bridge_constants.js",
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 7e11f85..4d1a40b 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js
@@ -54,6 +54,9 @@
         'OutputAction', '/chromevox/background/output/output_types.js');
     await importModule(
         ['Spannable', 'MultiSpannable'], '/chromevox/common/spannable.js');
+    await importModule(
+        ['BrailleKeyEvent', 'BrailleKeyCommand'],
+        '/chromevox/common/braille/braille_key_types.js');
 
     window.doGesture = this.doGesture;
     window.simulateHitTestResult = this.simulateHitTestResult;
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_background.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_background.js
index b6ed406f..183b8c1 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_background.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_background.js
@@ -6,6 +6,7 @@
  * @fileoverview Sends Braille commands to the Braille API.
  */
 import {BrailleInterface} from '../../common/braille/braille_interface.js';
+import {BrailleKeyEvent} from '../../common/braille/braille_key_types.js';
 import {NavBraille} from '../../common/braille/nav_braille.js';
 import {BridgeConstants} from '../../common/bridge_constants.js';
 import {BridgeHelper} from '../../common/bridge_helper.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_captions_background.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_captions_background.js
index 7f7b2cf..8624055 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_captions_background.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_captions_background.js
@@ -7,6 +7,7 @@
  * braille content to the Panel on Chrome OS, or a content script on
  * other platforms.
  */
+import {BrailleDisplayState} from '../../common/braille/braille_key_types.js';
 import {NavBraille} from '../../common/braille/nav_braille.js';
 import {Msgs} from '../../common/msgs.js';
 import {PanelCommand, PanelCommandType} from '../../common/panel_command.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_command_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_command_handler.js
index 45213b1..2d48784 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_command_handler.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_command_handler.js
@@ -7,6 +7,7 @@
  */
 import {EventGenerator} from '../../../common/event_generator.js';
 import {BrailleCommandData} from '../../common/braille/braille_command_data.js';
+import {BrailleKeyCommand, BrailleKeyEvent} from '../../common/braille/braille_key_types.js';
 import {NavBraille} from '../../common/braille/nav_braille.js';
 import {BridgeConstants} from '../../common/bridge_constants.js';
 import {BridgeHelper} from '../../common/bridge_helper.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_display_manager.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_display_manager.js
index 81d5f10..e317539 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_display_manager.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_display_manager.js
@@ -5,6 +5,7 @@
 /**
  * @fileoverview Puts text on a braille display.
  */
+import {BrailleDisplayState, BrailleKeyCommand, BrailleKeyEvent} from '../../common/braille/braille_key_types.js';
 import {NavBraille} from '../../common/braille/nav_braille.js';
 
 import {BrailleCaptionsBackground} from './braille_captions_background.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_input_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_input_handler.js
index 919c8bf..3caecbf 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_input_handler.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_input_handler.js
@@ -10,6 +10,7 @@
 
 import {EventGenerator} from '../../../common/event_generator.js';
 import {StringUtil} from '../../../common/string_util.js';
+import {BrailleKeyCommand, BrailleKeyEvent} from '../../common/braille/braille_key_types.js';
 import {Spannable} from '../../common/spannable.js';
 
 import {BrailleTranslatorManager} from './braille_translator_manager.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_input_handler_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_input_handler_test.js
index 62f247bf..0ef8260 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_input_handler_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_input_handler_test.js
@@ -446,6 +446,8 @@
         ['ExtraCellsSpan', 'ValueSelectionSpan', 'ValueSpan'],
         '/chromevox/background/braille/spans.js');
     await importModule('Spannable', '/chromevox/common/spannable.js');
+    await importModule(
+        'BrailleKeyCommand', '/chromevox/common/braille/braille_key_types.js');
 
     chrome.runtime.onConnectExternal = new FakeChromeEvent();
     this.port = new FakePort();
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_key_event_rewriter.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_key_event_rewriter.js
index e1b9499..04a52a8 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_key_event_rewriter.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_key_event_rewriter.js
@@ -5,6 +5,7 @@
 /**
  * @fileoverview Rewrites a braille key event.
  */
+import {BrailleKeyCommand, BrailleKeyEvent} from '../../common/braille/braille_key_types.js';
 import {Output} from '../output/output.js';
 
 /**
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/liblouis_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/liblouis_test.js
index 9a49a0f0..1f07989 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/liblouis_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/liblouis_test.js
@@ -17,6 +17,8 @@
     await importModule(
         'BrailleTable', '/chromevox/common/braille/braille_table.js');
     await importModule('LibLouis', '/chromevox/background/braille/liblouis.js');
+    await importModule(
+        'BrailleKeyEvent', '/chromevox/common/braille/braille_key_types.js');
   }
 
   createLiblouis() {
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/chromevox_state.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/chromevox_state.js
index a1113bf4..1ae37eb 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/chromevox_state.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/chromevox_state.js
@@ -8,6 +8,7 @@
  *     object and to facilitate mocking for tests.
  */
 import {CursorRange} from '../../common/cursors/range.js';
+import {BrailleKeyEvent} from '../common/braille/braille_key_types.js';
 import {NavBraille} from '../common/braille/nav_braille.js';
 import {BridgeConstants} from '../common/bridge_constants.js';
 import {BridgeHelper} from '../common/bridge_helper.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/loader.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/loader.js
index bfc4bf8..e112ecc3 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/loader.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/loader.js
@@ -12,9 +12,6 @@
 goog.require('AutomationTreeWalker');
 goog.require('AutomationUtil');
 goog.require('BaseLog');
-goog.require('BrailleDisplayState');
-goog.require('BrailleKeyCommand');
-goog.require('BrailleKeyEvent');
 goog.require('EventLog');
 goog.require('JaPhoneticData');
 goog.require('KeyCode');
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/common/braille/braille_interface.js b/chrome/browser/resources/chromeos/accessibility/chromevox/common/braille/braille_interface.js
index a1a5cb6..f9a51849 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/common/braille/braille_interface.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/common/braille/braille_interface.js
@@ -9,6 +9,7 @@
  *
  */
 
+import {BrailleDisplayState} from './braille_key_types.js';
 import {NavBraille} from './nav_braille.js';
 
 /** @interface */
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/common/braille/braille_key_types.js b/chrome/browser/resources/chromeos/accessibility/chromevox/common/braille/braille_key_types.js
index bb32871..2457386 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/common/braille/braille_key_types.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/common/braille/braille_key_types.js
@@ -11,17 +11,11 @@
  * chrome.brailleDisplayPrivate.*.
  */
 
-goog.provide('BrailleDisplayState');
-goog.provide('BrailleKeyCommand');
-goog.provide('BrailleKeyEvent');
-
-goog.require('KeyCode');
-
 /**
  * The set of commands sent from a braille display.
  * @enum {string}
  */
-BrailleKeyCommand = {
+export const BrailleKeyCommand = {
   PAN_LEFT: 'pan_left',
   PAN_RIGHT: 'pan_right',
   LINE_UP: 'line_up',
@@ -61,35 +55,35 @@
  * ctrlKey Whether the control key was pressed.
  * shiftKey Whether the shift key was pressed.
  */
-BrailleKeyEvent;
+export const BrailleKeyEvent = {
+  /**
+   * Returns the numeric key code for a DOM level 4 key code string.
+   * NOTE: Only the key codes produced by the brailleDisplayPrivate API are
+   * supported.
+   * @param {string} code DOM level 4 key code.
+   * @return {KeyCode|undefined} The numeric key code, or {@code undefined}
+   *     if unknown.
+   */
+  keyCodeToLegacyCode(code) {
+    return BrailleKeyEvent.legacyKeyCodeMap_[code];
+  },
 
-
-/**
- * Returns the numeric key code for a DOM level 4 key code string.
- * NOTE: Only the key codes produced by the brailleDisplayPrivate API are
- * supported.
- * @param {string} code DOM level 4 key code.
- * @return {KeyCode|undefined} The numeric key code, or {@code undefined}
- *     if unknown.
- */
-BrailleKeyEvent.keyCodeToLegacyCode = function(code) {
-  return BrailleKeyEvent.legacyKeyCodeMap_[code];
+  /**
+   * Returns a char value appropriate for a synthezised key event for a given
+   * key code.
+   * @param {string} keyCode The DOM level 4 key code.
+   * @return {number} Integral character code.
+   */
+  keyCodeToCharValue(keyCode) {
+    /** @const */
+    const SPECIAL_CODES = {'Backspace': 0x08, 'Tab': 0x09, 'Enter': 0x0A};
+    // Note, the Chrome virtual keyboard falls back on the first character of
+    // the key code if the key is not one of the above.  Do the same here.
+    return SPECIAL_CODES[keyCode] || keyCode.charCodeAt(0);
+  },
 };
 
 
-/**
- * Returns a char value appropriate for a synthezised key event for a given
- * key code.
- * @param {string} keyCode The DOM level 4 key code.
- * @return {number} Integral character code.
- */
-BrailleKeyEvent.keyCodeToCharValue = function(keyCode) {
-  /** @const */
-  const SPECIAL_CODES = {'Backspace': 0x08, 'Tab': 0x09, 'Enter': 0x0A};
-  // Note, the Chrome virtual keyboard falls back on the first character of the
-  // key code if the key is not one of the above.  Do the same here.
-  return SPECIAL_CODES[keyCode] || keyCode.charCodeAt(0);
-};
 
 /*
  * Note: Some of the below mappings contain raw braille dot
@@ -224,4 +218,4 @@
  * @typedef {{available: boolean, textRowCount: number,
  *     textColumnCount: number}}
  */
-let BrailleDisplayState;
+export let BrailleDisplayState;
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/learn_mode/kbexplorer_loader.js b/chrome/browser/resources/chromeos/accessibility/chromevox/learn_mode/kbexplorer_loader.js
index e0ec2bc8..e7c4550 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/learn_mode/kbexplorer_loader.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/learn_mode/kbexplorer_loader.js
@@ -7,8 +7,6 @@
  */
 
 goog.require('AbstractEarcons');
-goog.require('BrailleKeyCommand');
-goog.require('BrailleKeyEvent');
 goog.require('KeyCode');
 goog.require('TtsInterface');
 
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/learn_mode/learn_mode.js b/chrome/browser/resources/chromeos/accessibility/chromevox/learn_mode/learn_mode.js
index 2e106512..4e4461c 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/learn_mode/learn_mode.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/learn_mode/learn_mode.js
@@ -9,6 +9,7 @@
 
 import {BackgroundBridge} from '../common/background_bridge.js';
 import {BrailleCommandData} from '../common/braille/braille_command_data.js';
+import {BrailleKeyCommand, BrailleKeyEvent} from '../common/braille/braille_key_types.js';
 import {NavBraille} from '../common/braille/nav_braille.js';
 import {CommandStore} from '../common/command_store.js';
 import {GestureCommandData} from '../common/gesture_command_data.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/learn_mode/learn_mode_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/learn_mode/learn_mode_test.js
index 2530329..e5bc68f71 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/learn_mode/learn_mode_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/learn_mode/learn_mode_test.js
@@ -25,6 +25,9 @@
     await importModule(
         'CommandHandlerInterface',
         '/chromevox/background/command_handler_interface.js');
+    await importModule(
+        ['BrailleKeyEvent', 'BrailleKeyCommand'],
+        '/chromevox/common/braille/braille_key_types.js');
   }
 
   async runOnLearnModePage() {
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/options/options.html b/chrome/browser/resources/chromeos/accessibility/chromevox/options/options.html
index 033c15d2..d9986b7 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/options/options.html
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/options/options.html
@@ -15,7 +15,7 @@
 <script type="module" src="options.js"></script>
 
 <script type="module"
-    src="chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js">
+    src="chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js">
 </script>
 <script type="module"
     src="chrome://resources/cr_elements/cr_link_row/cr_link_row.js"></script>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/options/options_loader.js b/chrome/browser/resources/chromeos/accessibility/chromevox/options/options_loader.js
index f5cf9f47..d4af88a5 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/options/options_loader.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/options/options_loader.js
@@ -9,8 +9,7 @@
 goog.require('AbstractEarcons');
 goog.require('BluetoothBrailleDisplayListener');
 goog.require('BluetoothBrailleDisplayManager');
-goog.require('BrailleKeyCommand');
-goog.require('BrailleKeyEvent');
+goog.require('KeyCode');
 goog.require('SpeechLog');
 goog.require('TtsInterface');
 
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel.js b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel.js
index d179560..0c32cf5 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel.js
@@ -30,7 +30,7 @@
 export class Panel extends PanelInterface {
   /** @override */
   setPendingCallback(callback) {
-    /** @type {?function() : !Promise} @private */
+    /** @type {?Function} @private */
     Panel.pendingCallback_ = callback;
   }
 
@@ -342,7 +342,7 @@
       }
       chromevoxMenu.addMenuItem(
           Msgs.getMsg('open_keyboard_shortcuts_menu'),
-          `Ctrl+Alt+${localizedSlash}`, '', '', async function() {
+          `Ctrl+Alt+${localizedSlash}`, '', '', function() {
             EventGenerator.sendKeyPress(
                 KeyCode.OEM_2 /* forward slash */, {'ctrl': true, 'alt': true});
           });
@@ -466,7 +466,7 @@
       // Add all open tabs to the Tabs menu.
       const data = await BackgroundBridge.PanelBackground.getTabMenuData();
       for (const menuInfo of data) {
-        tabsMenu.addMenuItem(menuInfo.title, '', '', '', async function() {
+        tabsMenu.addMenuItem(menuInfo.title, '', '', '', () => {
           BackgroundBridge.PanelBackground.focusTab(
               menuInfo.windowId, menuInfo.tabId);
         });
@@ -488,8 +488,7 @@
 
       // Add a menu item that disables / closes ChromeVox.
       chromevoxMenu.addMenuItem(
-          Msgs.getMsg('disable_chromevox'), 'Ctrl+Alt+Z', '', '',
-          async function() {
+          Msgs.getMsg('disable_chromevox'), 'Ctrl+Alt+Z', '', '', function() {
             Panel.onClose();
           });
 
@@ -1046,6 +1045,7 @@
 
     // Make sure all menus are cleared to avoid bogus output when we re-open.
     Panel.clearMenus();
+    BackgroundBridge.PanelBackground.clearSavedNode();
 
     // Make sure we're not in full-screen mode.
     Panel.setMode(PanelMode.COLLAPSED);
@@ -1055,10 +1055,8 @@
     await BackgroundBridge.PanelBackground.waitForPanelCollapse();
 
     if (pendingCallback) {
-      await pendingCallback();
+      pendingCallback();
     }
-
-    BackgroundBridge.PanelBackground.clearSavedNode();
   }
 
   /** Open the tutorial. */
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_interface.js b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_interface.js
index 55bbcdac..cd943da 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_interface.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_interface.js
@@ -17,7 +17,7 @@
    * A callback function to be executed to perform the action from selecting
    * a menu item after the menu has been closed and focus has been restored
    * to the page or wherever it was previously.
-   * @param {?function() : !Promise} callback
+   * @param {?Function} callback
    */
   setPendingCallback(callback) {}
 }
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_menu.js b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_menu.js
index 92016b15..5d592d2 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_menu.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_menu.js
@@ -73,8 +73,7 @@
    * @param {string} menuItemShortcut The keystrokes to select this item.
    * @param {string} menuItemBraille
    * @param {string} gesture
-   * @param {function() : !Promise} callback The function to call if this item
-   *     is selected.
+   * @param {Function} callback The function to call if this item is selected.
    * @param {string=} opt_id An optional id for the menu item element.
    * @return {!PanelMenuItem} The menu item just created.
    */
@@ -238,7 +237,7 @@
 
   /**
    * Get the callback for the active menu item.
-   * @return {?function() : !Promise} The callback.
+   * @return {Function} The callback.
    */
   getCallbackForCurrentItem() {
     if (this.activeIndex_ >= 0 && this.activeIndex_ < this.items_.length) {
@@ -250,7 +249,7 @@
   /**
    * Get the callback for a menu item given its DOM element.
    * @param {Element} element The DOM element.
-   * @return {?function() : !Promise} The callback.
+   * @return {Function} The callback.
    */
   getCallbackForElement(element) {
     for (let i = 0; i < this.items_.length; i++) {
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_menu_item.js b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_menu_item.js
index 926ada3..21175905 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_menu_item.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_menu_item.js
@@ -14,8 +14,7 @@
    * @param {string} menuItemShortcut The keystrokes to select this item.
    * @param {string} menuItemBraille The braille keystrokes to select this item.
    * @param {string} gesture The gesture to select this item.
-   * @param {function() : !Promise} callback The function to call if this item
-   *     is selected.
+   * @param {Function} callback The function to call if this item is selected.
    * @param {string=} opt_id An optional id for the menu item element.
    */
   constructor(
@@ -29,7 +28,7 @@
     this.menuItemBraille = menuItemBraille;
     /** @type {string} */
     this.gesture = gesture;
-    /** @type {function() : !Promise} */
+    /** @type {Function} */
     this.callback = callback;
 
     /** @type {Element} */
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_test.js
index 2395712..ca5f5d71 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_test.js
@@ -278,17 +278,3 @@
       this.assertActiveMenuItem(
           'panel_menu_touchgestures', 'Click on current item');
     });
-
-AX_TEST_F('ChromeVoxPanelTest', 'PerformDoDefaultAction', async function() {
-  const rootNode = await this.runWithLoadedTree(`<button>OK</button>`);
-  const button = rootNode.find({role: RoleType.BUTTON});
-  CommandHandlerInterface.instance.onCommand('showActionsMenu');
-  await this.waitForMenu('panel_menu_actions');
-  this.fireMockEvent('ArrowDown')();
-  this.assertActiveMenuItem('panel_menu_actions', 'Start Or End Selection');
-  this.fireMockEvent('ArrowDown')();
-  this.fireMockEvent('ArrowDown')();
-  this.assertActiveMenuItem('panel_menu_actions', 'Perform default action');
-  this.fireMockEvent('Enter')();
-  await this.waitForEvent(button, chrome.automation.EventType.CLICKED);
-});
diff --git a/chrome/browser/resources/chromeos/accessibility/common/testing/mock_accessibility_private.js b/chrome/browser/resources/chromeos/accessibility/common/testing/mock_accessibility_private.js
index 146389b..3b3d9679 100644
--- a/chrome/browser/resources/chromeos/accessibility/common/testing/mock_accessibility_private.js
+++ b/chrome/browser/resources/chromeos/accessibility/common/testing/mock_accessibility_private.js
@@ -83,6 +83,9 @@
   /** @private {Set<string>} */
   enabledFeatures_: new Set(),
 
+  /** @private {number} */
+  spokenFeedbackSilenceCount_: 0,
+
   // Methods from AccessibilityPrivate API. //
 
   onScrollableBoundsForPointRequested: {
@@ -356,6 +359,16 @@
     return MockAccessibilityPrivate.dictationBubbleProps_;
   },
 
+  /** Simulates silencing ChromeVox */
+  silenceSpokenFeedback() {
+    this.spokenFeedbackSilenceCount_++;
+  },
+
+  /** @return {number} */
+  getSpokenFeedbackSilencedCount() {
+    return this.spokenFeedbackSilenceCount_;
+  },
+
   /**
    * Enables or disables a feature for testing, causing
    * MockAccessibilityPrivate.isFeatureEnabled to consider it enabled.
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
index 3303ae4..71743d09 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
@@ -823,7 +823,7 @@
 <translation id="6609828810966525877">తెలుసుకోండి మోడ్‌లో మరియు Chromebook సహాయ కేంద్రంలో మరిన్ని సంజ్ఞలను అన్వేషించండి</translation>
 <translation id="6628427060004938651">భాగం</translation>
 <translation id="6637586476836377253">log</translation>
-<translation id="6657128831881431364">ప్రోగ్రెస్ పట్టీ</translation>
+<translation id="6657128831881431364">ప్రోగ్రెస్ బార్‌</translation>
 <translation id="6660819301598582123">దేశ భాషలందు తెలుగు లెస్స</translation>
 <translation id="667999046851023355">డాక్యుమెంట్‌</translation>
 <translation id="6688209025607531203">నమూనా యేతర హెచ్చరిక</translation>
diff --git a/chrome/browser/resources/chromeos/login/components/BUILD.gn b/chrome/browser/resources/chromeos/login/components/BUILD.gn
index c06f5c74..4eb9e731 100644
--- a/chrome/browser/resources/chromeos/login/components/BUILD.gn
+++ b/chrome/browser/resources/chromeos/login/components/BUILD.gn
@@ -66,12 +66,12 @@
                   ":network_select_login_module",
                   ":notification_card_module",
                   ":oobe_a11y_option_module",
+                  ":oobe_a11y_option_module",
                   ":oobe_apps_list_module",
                   ":oobe_carousel_module",
                   ":oobe_cr_lottie_module",
-                  ":oobe_icons_module",
                   ":oobe_i18n_dropdown_module",
-                  ":oobe_a11y_option_module",
+                  ":oobe_icons_module",
                   ":oobe_icons_module",
                   ":oobe_network_icons_module",
                   ":oobe_slide_module",
@@ -350,6 +350,7 @@
   html_file = "oobe_apps_list.html"
   html_type = "dom-module"
   auto_imports = oobe_auto_imports
+  migrated_imports = oobe_migrated_imports
   namespace_rewrites = oobe_namespace_rewrites
 }
 
diff --git a/chrome/browser/resources/chromeos/login/oobe_auto_imports.gni b/chrome/browser/resources/chromeos/login/oobe_auto_imports.gni
index c5e4016..057984ce1 100644
--- a/chrome/browser/resources/chromeos/login/oobe_auto_imports.gni
+++ b/chrome/browser/resources/chromeos/login/oobe_auto_imports.gni
@@ -93,6 +93,7 @@
 
 oobe_migrated_imports = [
   "ui/webui/resources/cr_elements/cr_lazy_render/cr_lazy_render.html",
+  "ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.html",
   "ui/webui/resources/cr_elements/cr_fingerprint/cr_fingerprint_progress_arc.html",
   "ui/webui/resources/cr_elements/cr_fingerprint/cr_fingerprint_icon.html",
 ]
diff --git a/chrome/browser/resources/extensions/activity_log/activity_log_history_item.ts b/chrome/browser/resources/extensions/activity_log/activity_log_history_item.ts
index 7209744..b9bad36 100644
--- a/chrome/browser/resources/extensions/activity_log/activity_log_history_item.ts
+++ b/chrome/browser/resources/extensions/activity_log/activity_log_history_item.ts
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.m.js';
 import 'chrome://resources/cr_elements/cr_icons_css.m.js';
 import 'chrome://resources/cr_elements/shared_vars_css.m.js';
diff --git a/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.ts b/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.ts
index f38ff3e..87190383 100644
--- a/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.ts
+++ b/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.ts
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/cr_icons_css.m.js';
 import 'chrome://resources/cr_elements/shared_vars_css.m.js';
 import '../shared_style.css.js';
diff --git a/chrome/browser/resources/extensions/site_permissions_site_group.ts b/chrome/browser/resources/extensions/site_permissions_site_group.ts
index 3bc6b33..6364e07 100644
--- a/chrome/browser/resources/extensions/site_permissions_site_group.ts
+++ b/chrome/browser/resources/extensions/site_permissions_site_group.ts
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.m.js';
 import 'chrome://resources/cr_elements/shared_style_css.m.js';
 import 'chrome://resources/cr_elements/shared_vars_css.m.js';
diff --git a/chrome/browser/resources/nearby_internals/contact_tab.js b/chrome/browser/resources/nearby_internals/contact_tab.js
index 748051e..5108485d 100644
--- a/chrome/browser/resources/nearby_internals/contact_tab.js
+++ b/chrome/browser/resources/nearby_internals/contact_tab.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/shared_style_css.m.js';
 import 'chrome://resources/polymer/v3_0/iron-collapse/iron-collapse.js';
 import './contact_object.js';
@@ -10,6 +10,7 @@
 
 import {WebUIListenerBehavior} from 'chrome://resources/js/web_ui_listener_behavior.m.js';
 import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
 import {NearbyContactBrowserProxy} from './nearby_contact_browser_proxy.js';
 import {ContactUpdate} from './types.js';
 
diff --git a/chrome/browser/resources/nearby_internals/http_message_object.js b/chrome/browser/resources/nearby_internals/http_message_object.js
index af3ae82..33d7edf 100644
--- a/chrome/browser/resources/nearby_internals/http_message_object.js
+++ b/chrome/browser/resources/nearby_internals/http_message_object.js
@@ -2,10 +2,11 @@
 // 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/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/polymer/v3_0/iron-collapse/iron-collapse.js';
 
 import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
 import {Direction, Rpc} from './types.js';
 
 Polymer({
diff --git a/chrome/browser/resources/nearby_internals/http_tab.js b/chrome/browser/resources/nearby_internals/http_tab.js
index 73dd72a..3788a24 100644
--- a/chrome/browser/resources/nearby_internals/http_tab.js
+++ b/chrome/browser/resources/nearby_internals/http_tab.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/shared_style_css.m.js';
 import 'chrome://resources/polymer/v3_0/iron-collapse/iron-collapse.js';
 import './http_message_object.js';
@@ -10,6 +10,7 @@
 
 import {WebUIListenerBehavior} from 'chrome://resources/js/web_ui_listener_behavior.m.js';
 import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
 import {NearbyHttpBrowserProxy} from './nearby_http_browser_proxy.js';
 import {HttpMessage} from './types.js';
 
diff --git a/chrome/browser/resources/new_tab_page/modules/task_module/module.html b/chrome/browser/resources/new_tab_page/modules/task_module/module.html
index d0d6813..3931bf98 100644
--- a/chrome/browser/resources/new_tab_page/modules/task_module/module.html
+++ b/chrome/browser/resources/new_tab_page/modules/task_module/module.html
@@ -10,9 +10,9 @@
     box-sizing: border-box;
     display: block;
     flex-grow: 1;
-    padding-bottom: 15px;
-    padding-inline-end: 15px;
-    padding-inline-start: 15px;
+    padding-bottom: 16px;
+    padding-inline-end: 16px;
+    padding-inline-start: 16px;
     width: 100%;
   }
 
@@ -201,7 +201,7 @@
       </a>
     </template>
   </div>
-  <div id="relatedSearches">
+  <div hidden$="{{!showRelatedSearches_}}" id="relatedSearches">
     <template is="dom-repeat" id="relatedSearchesRepeat"
         items="[[task.relatedSearches]]" on-dom-change="onDomChange_">
       <a class="pill" href="[[item.targetUrl.url]]" on-click="onPillClick_"
diff --git a/chrome/browser/resources/new_tab_page/modules/task_module/module.ts b/chrome/browser/resources/new_tab_page/modules/task_module/module.ts
index 9f7c2fb7..1abed04d3 100644
--- a/chrome/browser/resources/new_tab_page/modules/task_module/module.ts
+++ b/chrome/browser/resources/new_tab_page/modules/task_module/module.ts
@@ -45,6 +45,11 @@
     return {
       task: Object,
 
+      showRelatedSearches_: {
+        type: Boolean,
+        computed: 'computeShowRelatedSearches_(task)',
+      },
+
       title_: {
         type: String,
         computed: 'computeTitle_()',
@@ -68,6 +73,7 @@
   }
 
   task: Task;
+  private showRelatedSearches_: boolean;
   private title_: string;
   private dismissName_: string;
   private disableName_: string;
@@ -99,6 +105,10 @@
         loadTimeData.getString('modulesRecipeInfo');
   }
 
+  private computeShowRelatedSearches_(): boolean {
+    return this.task.relatedSearches && this.task.relatedSearches.length > 0;
+  }
+
   private onTaskItemClick_(e: DomRepeatEvent<TaskItem>) {
     const index = e.model.index;
     TaskModuleHandlerProxy.getHandler().onTaskItemClicked(index);
diff --git a/chrome/browser/resources/new_tab_page/realbox/realbox.ts b/chrome/browser/resources/new_tab_page/realbox/realbox.ts
index bf2a9d8..1e24ab5 100644
--- a/chrome/browser/resources/new_tab_page/realbox/realbox.ts
+++ b/chrome/browser/resources/new_tab_page/realbox/realbox.ts
@@ -593,7 +593,8 @@
 
     // Update the input.
     const newFill = decodeString16(this.selectedMatch_!.fillIntoEdit);
-    const newInline = this.selectedMatch_!.allowedToBeDefaultMatch ?
+    const newInline = this.selectedMatchIndex_ === 0 &&
+            this.selectedMatch_!.allowedToBeDefaultMatch ?
         decodeString16(this.selectedMatch_!.inlineAutocompletion) :
         '';
     const newFillEnd = newFill.length - newInline.length;
diff --git a/chrome/browser/resources/print_preview/ui/more_settings.ts b/chrome/browser/resources/print_preview/ui/more_settings.ts
index e2a092a..98a1aa1 100644
--- a/chrome/browser/resources/print_preview/ui/more_settings.ts
+++ b/chrome/browser/resources/print_preview/ui/more_settings.ts
@@ -4,10 +4,10 @@
 
 import 'chrome://resources/cr_elements/hidden_style_css.m.js';
 import 'chrome://resources/cr_elements/shared_vars_css.m.js';
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import '../strings.m.js';
 
-import {CrExpandButtonElement} from 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import {CrExpandButtonElement} from 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import {assert} from 'chrome://resources/js/assert_ts.js';
 import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.ts b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.ts
index 5dbc1d2d..fade083f 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.ts
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.ts
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import 'chrome://resources/cr_elements/cr_button/cr_button.m.js';
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/polymer/v3_0/iron-collapse/iron-collapse.js';
 import 'chrome://resources/cr_elements/shared_style_css.m.js';
 import './strings.m.js';
diff --git a/chrome/browser/resources/profile_internals/profile_internals_app.ts b/chrome/browser/resources/profile_internals/profile_internals_app.ts
index dfad602..731551b 100644
--- a/chrome/browser/resources/profile_internals/profile_internals_app.ts
+++ b/chrome/browser/resources/profile_internals/profile_internals_app.ts
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import '//resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import '//resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import '//resources/polymer/v3_0/iron-collapse/iron-collapse.js';
 import './strings.m.js';
 
diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn
index 33b223c..9bdd8e72 100644
--- a/chrome/browser/resources/settings/BUILD.gn
+++ b/chrome/browser/resources/settings/BUILD.gn
@@ -330,6 +330,7 @@
     "prefs/prefs.ts",
     "prefs/prefs_types.ts",
     "prefs/pref_util.ts",
+    "privacy_page/autofill_assistant_browser_proxy.ts",
     "privacy_page/privacy_guide/constants.ts",
     "privacy_page/privacy_guide/privacy_guide_browser_proxy.ts",
     "privacy_page/privacy_page_browser_proxy.ts",
diff --git a/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.ts b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.ts
index 957e959..cfd7394 100644
--- a/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.ts
+++ b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.ts
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import 'chrome://resources/cr_elements/cr_button/cr_button.m.js';
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/policy/cr_policy_pref_indicator.m.js';
 import 'chrome://resources/cr_elements/shared_style_css.m.js';
 import 'chrome://resources/cr_elements/shared_vars_css.m.js';
diff --git a/chrome/browser/resources/settings/chromeos/BUILD.gn b/chrome/browser/resources/settings/chromeos/BUILD.gn
index 0c903a9..ce4b35c 100644
--- a/chrome/browser/resources/settings/chromeos/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/BUILD.gn
@@ -7,6 +7,7 @@
 import("//tools/grit/grit_rule.gni")
 import("//tools/grit/preprocess_if_expr.gni")
 import("//tools/polymer/html_to_js.gni")
+import("//tools/polymer/html_to_wrapper.gni")
 import("//tools/typescript/ts_library.gni")
 import("//ui/webui/resources/tools/generate_grd.gni")
 import("//ui/webui/webui_features.gni")
@@ -132,12 +133,21 @@
 
 preprocess_if_expr("preprocess_gen_ts_files") {
   defines = chrome_grit_defines
-  deps = [ ":generate_web_components" ]
+  deps = [
+    ":generate_web_component_html_wrapper_files",
+    ":generate_web_components",
+  ]
   in_folder = get_path_info("../", "gen_dir")
   in_files = gen_ts_files
   out_folder = "$target_gen_dir/$preprocessed_ts_folder"
 }
 
+html_to_wrapper("generate_web_component_html_wrapper_files") {
+  in_folder = "../"
+  in_files = web_component_html_files
+  out_folder = get_path_info("../", "gen_dir")
+}
+
 # TODO(crbug/1315757) Transfer these JS files into ts_library() when
 # ready for TS conversion
 preprocess_if_expr("preprocess_src_js_files") {
@@ -412,6 +422,7 @@
     "prefs/prefs_mixin.js",
     "prefs/prefs_types.js",
     "prefs/pref_util.js",
+    "privacy_page/autofill_assistant_browser_proxy.js",
     "privacy_page/privacy_page_browser_proxy.js",
     "relaunch_mixin.js",
     "setting_id_param_util.js",
@@ -453,7 +464,6 @@
     "multidevice_page:web_components",
     "nearby_share_page:web_components",
     "os_a11y_page:web_components",
-    "os_about_page:web_components",
     "os_apps_page:web_components",
     "os_apps_page/app_management_page:web_components",
     "os_apps_page/app_management_page/borealis_page:web_components",
diff --git a/chrome/browser/resources/settings/chromeos/bluetooth_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/bluetooth_page/BUILD.gn
index fb4916e5..42f715f1 100644
--- a/chrome/browser/resources/settings/chromeos/bluetooth_page/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/bluetooth_page/BUILD.gn
@@ -63,7 +63,7 @@
     "//ui/webui/resources/cr_elements:cr_scrollable_behavior.m",
     "//ui/webui/resources/js:assert.m",
     "//ui/webui/resources/js:i18n_behavior.m",
-    "//ui/webui/resources/js:list_property_update_behavior.m",
+    "//ui/webui/resources/js:list_property_update_behavior",
   ]
   externs_list = [
     "$externs_path/bluetooth.js",
diff --git a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.js b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.js
index 27c62742..e72e0fea 100644
--- a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.js
+++ b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.js
@@ -21,7 +21,7 @@
 import {BluetoothUiSurface, recordBluetoothUiSurfaceMetrics, recordUserInitiatedReconnectionAttemptDuration} from 'chrome://resources/cr_components/chromeos/bluetooth/bluetooth_metrics_utils.js';
 import {CrScrollableBehavior, CrScrollableBehaviorInterface} from 'chrome://resources/cr_elements/cr_scrollable_behavior.m.js';
 import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/js/i18n_behavior.m.js';
-import {ListPropertyUpdateBehavior, ListPropertyUpdateBehaviorInterface} from 'chrome://resources/js/list_property_update_behavior.m.js';
+import {ListPropertyUpdateBehavior, ListPropertyUpdateBehaviorInterface} from 'chrome://resources/js/list_property_update_behavior.js';
 import {flush, html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {Setting} from '../../mojom-webui/setting.mojom-webui.js';
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn
index 145c07b..16adbac7 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn
@@ -115,7 +115,7 @@
     "//ui/webui/resources/cr_components/chromeos/network_health:network_health_container",
     "//ui/webui/resources/cr_components/chromeos/traffic_counters:traffic_counters",
     "//ui/webui/resources/cr_elements/cr_button:cr_button.m",
-    "//ui/webui/resources/cr_elements/cr_expand_button:cr_expand_button.m",
+    "//ui/webui/resources/cr_elements/cr_expand_button:cr_expand_button",
     "//ui/webui/resources/cr_elements/cr_toggle:cr_toggle.m",
     "//ui/webui/resources/cr_elements/policy:cr_policy_indicator.m",
     "//ui/webui/resources/js:assert.m",
@@ -173,7 +173,7 @@
     "//ui/webui/resources/cr_components/chromeos/network:network_listener_behavior.m",
     "//ui/webui/resources/cr_components/chromeos/network:onc_mojo.m",
     "//ui/webui/resources/cr_components/chromeos/network:sim_lock_dialogs.m",
-    "//ui/webui/resources/cr_elements/cr_expand_button:cr_expand_button.m",
+    "//ui/webui/resources/cr_elements/cr_expand_button:cr_expand_button",
     "//ui/webui/resources/cr_elements/cr_icon_button:cr_icon_button.m",
     "//ui/webui/resources/cr_elements/policy:cr_policy_indicator.m",
     "//ui/webui/resources/js:i18n_behavior.m",
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.js b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.js
index c49a243..d5296ad8 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.js
@@ -18,7 +18,7 @@
 import 'chrome://resources/cr_components/chromeos/network/network_property_list_mojo.m.js';
 import 'chrome://resources/cr_components/chromeos/network/network_siminfo.m.js';
 import 'chrome://resources/cr_elements/cr_button/cr_button.m.js';
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/cr_toggle/cr_toggle.m.js';
 import 'chrome://resources/cr_elements/icons.m.js';
 import 'chrome://resources/cr_elements/policy/cr_policy_indicator.m.js';
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_page.js b/chrome/browser/resources/settings/chromeos/internet_page/internet_page.js
index e55c52e..ac97915 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_page.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_page.js
@@ -10,7 +10,7 @@
 
 import 'chrome://resources/cr_components/chromeos/cellular_setup/cellular_setup_icons.m.js';
 import 'chrome://resources/cr_components/chromeos/network/sim_lock_dialogs.m.js';
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.m.js';
 import 'chrome://resources/cr_elements/cr_toast/cr_toast.js';
 import 'chrome://resources/cr_elements/icons.m.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_a11y_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/os_a11y_page/BUILD.gn
index e2a8118..fd9e97fa 100644
--- a/chrome/browser/resources/settings/chromeos/os_a11y_page/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/os_a11y_page/BUILD.gn
@@ -269,7 +269,7 @@
     "//chrome/browser/resources/settings/chromeos/os_languages_page:languages_browser_proxy",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
     "//ui/webui/resources/cr_elements/cr_button:cr_button.m",
-    "//ui/webui/resources/cr_elements/cr_expand_button:cr_expand_button.m",
+    "//ui/webui/resources/cr_elements/cr_expand_button:cr_expand_button",
     "//ui/webui/resources/cr_elements/cr_input:cr_input.m",
     "//ui/webui/resources/js:i18n_behavior.m",
     "//ui/webui/resources/js:web_ui_listener_behavior.m",
diff --git a/chrome/browser/resources/settings/chromeos/os_a11y_page/tts_subpage.js b/chrome/browser/resources/settings/chromeos/os_a11y_page/tts_subpage.js
index 50e48d4..2dd88d0 100644
--- a/chrome/browser/resources/settings/chromeos/os_a11y_page/tts_subpage.js
+++ b/chrome/browser/resources/settings/chromeos/os_a11y_page/tts_subpage.js
@@ -8,7 +8,7 @@
  */
 
 import 'chrome://resources/cr_elements/cr_button/cr_button.m.js';
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/cr_input/cr_input.m.js';
 import 'chrome://resources/cr_elements/shared_vars_css.m.js';
 import 'chrome://resources/cr_elements/md_select_css.m.js';
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 75d3647..c9536ab 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/BUILD.gn
@@ -3,18 +3,8 @@
 # found in the LICENSE file.
 
 import("//third_party/closure_compiler/compile_js.gni")
-import("//tools/polymer/html_to_js.gni")
 import("../os_settings.gni")
 
-polymer_element_files = [
-  "consumer_auto_update_toggle_dialog.js",
-  "channel_switcher_dialog.js",
-  "detailed_build_info.js",
-  "edit_hostname_dialog.js",
-  "os_about_page.js",
-  "update_warning_dialog.js",
-]
-
 js_type_check("closure_compile_module") {
   closure_flags = os_settings_closure_flags
   is_polymer3 = true
@@ -114,7 +104,3 @@
     "//ui/webui/resources/js:i18n_behavior.m",
   ]
 }
-
-html_to_js("web_components") {
-  js_files = polymer_element_files
-}
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 d92a304..0442202 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
@@ -18,9 +18,10 @@
 
 import {assert} from 'chrome://resources/js/assert.m.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
-import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {AboutPageBrowserProxy, AboutPageBrowserProxyImpl, BrowserChannel, isTargetChannelMoreStable} from './about_page_browser_proxy.js';
+import {getTemplate} from './channel_switcher_dialog.html.js';
 
 const WarningMessage = {
   NONE: -1,
@@ -36,7 +37,7 @@
   }
 
   static get template() {
-    return html`{__html_template__}`;
+    return getTemplate();
   }
 
   static get properties() {
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/consumer_auto_update_toggle_dialog.js b/chrome/browser/resources/settings/chromeos/os_about_page/consumer_auto_update_toggle_dialog.js
index ab847d8..7d63ed2aa 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/consumer_auto_update_toggle_dialog.js
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/consumer_auto_update_toggle_dialog.js
@@ -4,7 +4,9 @@
 
 import '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 {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {getTemplate} from './consumer_auto_update_toggle_dialog.html.js';
 
 /** @polymer */
 class SettingsConsumerAutoUpdateToggleDialogElement extends PolymerElement {
@@ -13,11 +15,7 @@
   }
 
   static get template() {
-    return html`{__html_template__}`;
-  }
-
-  constructor() {
-    super();
+    return getTemplate();
   }
 
   /** @override */
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 cfdc6dfe..fdd3da0 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
@@ -22,7 +22,7 @@
 import {focusWithoutInk} from 'chrome://resources/js/cr/ui/focus_without_ink.m.js';
 import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/js/i18n_behavior.m.js';
 import {WebUIListenerBehavior, WebUIListenerBehaviorInterface} from 'chrome://resources/js/web_ui_listener_behavior.m.js';
-import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {loadTimeData} from '../../i18n_setup.js';
 import {Setting} from '../../mojom-webui/setting.mojom-webui.js';
@@ -33,6 +33,7 @@
 import {RouteObserverBehavior} from '../route_observer_behavior.js';
 
 import {AboutPageBrowserProxy, AboutPageBrowserProxyImpl, browserChannelToI18nId, ChannelInfo, VersionInfo} from './about_page_browser_proxy.js';
+import {getTemplate} from './detailed_build_info.html.js';
 import {DeviceNameBrowserProxy, DeviceNameBrowserProxyImpl, DeviceNameMetadata} from './device_name_browser_proxy.js';
 import {DeviceNameState} from './device_name_util.js';
 
@@ -61,7 +62,7 @@
   }
 
   static get template() {
-    return html`{__html_template__}`;
+    return getTemplate();
   }
 
   static get properties() {
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 94dda78..fa86822 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
@@ -15,10 +15,11 @@
 import '../../settings_shared.css.js';
 
 import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/js/i18n_behavior.m.js';
-import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {DeviceNameBrowserProxy, DeviceNameBrowserProxyImpl} from './device_name_browser_proxy.js';
 import {SetDeviceNameResult} from './device_name_util.js';
+import {getTemplate} from './edit_hostname_dialog.html.js';
 
 /** @type {number} */
 const MAX_INPUT_LENGTH = 15;
@@ -47,7 +48,7 @@
   }
 
   static get template() {
-    return html`{__html_template__}`;
+    return getTemplate();
   }
 
   static get properties() {
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 b27f9d2..90583615 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
@@ -30,7 +30,7 @@
 import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/js/i18n_behavior.m.js';
 import {parseHtmlSubset} from 'chrome://resources/js/parse_html_subset.m.js';
 import {WebUIListenerBehavior, WebUIListenerBehaviorInterface} from 'chrome://resources/js/web_ui_listener_behavior.m.js';
-import {html, mixinBehaviors, PolymerElement, TemplateInstanceBase, Templatizer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {loadTimeData} from '../../i18n_setup.js';
 import {LifetimeBrowserProxyImpl} from '../../lifetime_browser_proxy.js';
@@ -43,6 +43,7 @@
 import {RouteObserverBehavior, RouteObserverBehaviorInterface} from '../route_observer_behavior.js';
 
 import {AboutPageBrowserProxy, AboutPageBrowserProxyImpl, AboutPageUpdateInfo, BrowserChannel, browserChannelToI18nId, RegulatoryInfo, TPMFirmwareUpdateStatusChangedEvent, UpdateStatus, UpdateStatusChangedEvent} from './about_page_browser_proxy.js';
+import {getTemplate} from './os_about_page.html.js';
 
 /**
  * @constructor
@@ -70,7 +71,7 @@
   }
 
   static get template() {
-    return html`{__html_template__}`;
+    return getTemplate();
   }
 
   static get properties() {
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 dd28293..471f12a 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
@@ -12,9 +12,10 @@
 import '../../settings_shared.css.js';
 
 import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/js/i18n_behavior.m.js';
-import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {AboutPageBrowserProxy, AboutPageBrowserProxyImpl, AboutPageUpdateInfo} from './about_page_browser_proxy.js';
+import {getTemplate} from './update_warning_dialog.html.js';
 
 /**
  * @constructor
@@ -32,7 +33,7 @@
   }
 
   static get template() {
-    return html`{__html_template__}`;
+    return getTemplate();
   }
 
   static get properties() {
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/os_languages_page/BUILD.gn
index 63f1c4d..0d1319b 100644
--- a/chrome/browser/resources/settings/chromeos/os_languages_page/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/os_languages_page/BUILD.gn
@@ -202,7 +202,7 @@
     "..:route_observer_behavior",
     "../..:router",
     "//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/cr_elements/cr_expand_button:cr_expand_button",
     "//ui/webui/resources/js:assert.m",
     "//ui/webui/resources/js:cr.m",
     "//ui/webui/resources/js/cr/ui:focus_without_ink.m",
diff --git a/chrome/browser/resources/settings/chromeos/os_printing_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/os_printing_page/BUILD.gn
index 96a486b..566e8fb 100644
--- a/chrome/browser/resources/settings/chromeos/os_printing_page/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/os_printing_page/BUILD.gn
@@ -145,7 +145,7 @@
   deps = [
     ":cups_printer_types",
     ":cups_printers_browser_proxy",
-    "//ui/webui/resources/js:list_property_update_behavior.m",
+    "//ui/webui/resources/js:list_property_update_behavior",
     "//ui/webui/resources/js:web_ui_listener_behavior.m",
   ]
 
diff --git a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_enterprise_printers.js b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_enterprise_printers.js
index a83a275..594dd1a 100644
--- a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_enterprise_printers.js
+++ b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_enterprise_printers.js
@@ -14,7 +14,7 @@
 import './cups_printers_entry.js';
 import '../../settings_shared.css.js';
 
-import {ListPropertyUpdateBehavior, ListPropertyUpdateBehaviorInterface} from 'chrome://resources/js/list_property_update_behavior.m.js';
+import {ListPropertyUpdateBehavior, ListPropertyUpdateBehaviorInterface} from 'chrome://resources/js/list_property_update_behavior.js';
 import {WebUIListenerBehavior, WebUIListenerBehaviorInterface} from 'chrome://resources/js/web_ui_listener_behavior.m.js';
 import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
diff --git a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_nearby_printers.js b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_nearby_printers.js
index 2876e5f2..920bd11 100644
--- a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_nearby_printers.js
+++ b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_nearby_printers.js
@@ -10,7 +10,7 @@
 import './cups_printers_entry.js';
 import '../../settings_shared.css.js';
 
-import {ListPropertyUpdateBehavior, ListPropertyUpdateBehaviorInterface} from 'chrome://resources/js/list_property_update_behavior.m.js';
+import {ListPropertyUpdateBehavior, ListPropertyUpdateBehaviorInterface} from 'chrome://resources/js/list_property_update_behavior.js';
 import {WebUIListenerBehavior, WebUIListenerBehaviorInterface} from 'chrome://resources/js/web_ui_listener_behavior.m.js';
 import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
diff --git a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_saved_printers.js b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_saved_printers.js
index 4803b57..322f420 100644
--- a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_saved_printers.js
+++ b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_saved_printers.js
@@ -14,7 +14,7 @@
 import './cups_printers_entry.js';
 import '../../settings_shared.css.js';
 
-import {ListPropertyUpdateBehavior, ListPropertyUpdateBehaviorInterface} from 'chrome://resources/js/list_property_update_behavior.m.js';
+import {ListPropertyUpdateBehavior, ListPropertyUpdateBehaviorInterface} from 'chrome://resources/js/list_property_update_behavior.js';
 import {WebUIListenerBehavior, WebUIListenerBehaviorInterface} from 'chrome://resources/js/web_ui_listener_behavior.m.js';
 import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
diff --git a/chrome/browser/resources/settings/chromeos/os_settings.gni b/chrome/browser/resources/settings/chromeos/os_settings.gni
index c7e53fc..8d01e7ca 100644
--- a/chrome/browser/resources/settings/chromeos/os_settings.gni
+++ b/chrome/browser/resources/settings/chromeos/os_settings.gni
@@ -80,9 +80,34 @@
   "chromeos/os_reset_page/os_reset_page.js",
 ]
 
-# Files sourced from their checked-in version under src root
-# TODO(crbug/1315757) JS files here are available for TS conversion
-src_ts_files = [
+# TODO(crbug/1292025) Files that have their HTML wrapper file generated
+# by html_to_wrapper() go here.
+web_component_files = [
+  "chromeos/os_about_page/channel_switcher_dialog.js",
+  "chromeos/os_about_page/consumer_auto_update_toggle_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",
+]
+
+# Files that are passed as input to html_to_wrapper().
+web_component_html_files = []
+foreach(filename, web_component_files) {
+  if (get_path_info(filename, "extension") == "ts") {
+    web_component_html_files += [ string_replace(filename, ".ts", ".html") ]
+  } else {
+    web_component_html_files += [ string_replace(filename, ".js", ".html") ]
+  }
+}
+
+# Files that are generated by html_to_wrapper().
+web_component_html_wrapper_files = []
+foreach(filename, web_component_html_files) {
+  web_component_html_wrapper_files += [ filename + ".ts" ]
+}
+
+non_web_component_files = [
   "chromeos/combined_search_handler.js",
   "chromeos/deep_linking_behavior.js",
   "chromeos/ensure_lazy_loaded.js",
@@ -161,9 +186,8 @@
   "router.js",
 ]
 
-# Files sourced from gen_dir and generated by html_to_js() or html_to_wrapper()
-# TODO(crbug/1315757) JS files here are available for TS conversion
-gen_ts_files = [
+# Files that are generated by html_to_js().
+gen_web_component_files = [
   "chromeos/os_icons.js",
   "chromeos/os_settings_icons_css.js",
   "chromeos/ambient_mode_page/album_item.js",
@@ -235,12 +259,6 @@
   "chromeos/os_a11y_page/switch_access_subpage.js",
   "chromeos/os_a11y_page/text_to_speech_page.js",
   "chromeos/os_a11y_page/tts_subpage.js",
-  "chromeos/os_about_page/channel_switcher_dialog.js",
-  "chromeos/os_about_page/consumer_auto_update_toggle_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_subpage.js",
   "chromeos/os_apps_page/app_management_page/app_details_item.js",
   "chromeos/os_apps_page/app_management_page/app_detail_view.js",
@@ -328,6 +346,14 @@
   "chromeos/settings_scheduler_slider/settings_scheduler_slider.js",
 ]
 
+# Files sourced from their checked-in version under src
+# TODO(crbug/1315757) JS files here are available for TS conversion
+src_ts_files = non_web_component_files + web_component_files
+
+# Files sourced from gen_dir and generated by html_to_js() or html_to_wrapper()
+# TODO(crbug/1315757) JS files here are available for TS conversion
+gen_ts_files = gen_web_component_files + web_component_html_wrapper_files
+
 # TODO(crbug.com/1121865): browser_resolver_prefix_replacements allows path
 # from ../../shared/* to resolve to ../../../nearby_share/shared/* for closure
 # purposes.
diff --git a/chrome/browser/resources/settings/languages_page/languages_settings_metrics_proxy.ts b/chrome/browser/resources/settings/languages_page/languages_settings_metrics_proxy.ts
index f7b0281..c97be945 100644
--- a/chrome/browser/resources/settings/languages_page/languages_settings_metrics_proxy.ts
+++ b/chrome/browser/resources/settings/languages_page/languages_settings_metrics_proxy.ts
@@ -23,6 +23,13 @@
   ENABLE_TRANSLATE_FOR_SINGLE_LANGUAGE = 7,
   LANGUAGE_LIST_REORDERED = 8,
   CHANGE_CHROME_LANGUAGE = 9,
+  // 10-16 are Android only
+  ENABLE_SPELL_CHECK_GLOBALLY = 17,
+  DISABLE_SPELL_CHECK_GLOBALLY = 18,
+  ENABLE_SPELL_CHECK_FOR_LANGUAGE = 19,
+  DISABLE_SPELL_CHECK_FOR_LANGUAGE = 20,
+  SELECT_BASIC_SPELL_CHECK = 21,
+  SELECT_ENHANCED_SPELL_CHECK = 22,
 }
 
 /**
diff --git a/chrome/browser/resources/settings/languages_page/spell_check_page.html b/chrome/browser/resources/settings/languages_page/spell_check_page.html
index 95115f35..8099d8d 100644
--- a/chrome/browser/resources/settings/languages_page/spell_check_page.html
+++ b/chrome/browser/resources/settings/languages_page/spell_check_page.html
@@ -61,7 +61,8 @@
         label="$i18n{offerToEnableSpellCheck}"
         sub-label="[[getSpellCheckSubLabel_(spellCheckLanguages_)]]"
         pref="{{prefs.browser.enable_spellchecking}}"
-        disabled="[[!spellCheckLanguages_.length]]">
+        disabled="[[!spellCheckLanguages_.length]]"
+        on-settings-boolean-control-change="onSpellCheckToggleChange_">
     </settings-toggle-button>
 <if expr="_google_chrome or not is_macosx">
     <iron-collapse id="spellCheckCollapse"
@@ -69,7 +70,8 @@
 <if expr="_google_chrome">
       <div class="cr-row continuation spell-check-radio-group">
         <settings-radio-group class="flex"
-            pref="{{prefs.spellcheck.use_spelling_service}}">
+            pref="{{prefs.spellcheck.use_spelling_service}}"
+            on-change="onSelectedSpellingServiceChange_">
           <controlled-radio-button class="spell-check-radio-button"
               id="spellingServiceDisable"
               label="$i18n{spellCheckBasicLabel}" name="false"
diff --git a/chrome/browser/resources/settings/languages_page/spell_check_page.ts b/chrome/browser/resources/settings/languages_page/spell_check_page.ts
index e998c4d..91c72817b 100644
--- a/chrome/browser/resources/settings/languages_page/spell_check_page.ts
+++ b/chrome/browser/resources/settings/languages_page/spell_check_page.ts
@@ -32,6 +32,8 @@
 // <if expr="not is_macosx">
 import './edit_dictionary_page.js';
 // </if>
+
+import {SettingsToggleButtonElement} from '../controls/settings_toggle_button.js';
 import {assert} from 'chrome://resources/js/assert_ts.js';
 import {focusWithoutInk} from 'chrome://resources/js/cr/ui/focus_without_ink.m.js';
 import {I18nMixin} from 'chrome://resources/js/i18n_mixin.js';
@@ -43,6 +45,7 @@
 import {routes} from '../route.js';
 import {Router} from '../router.js';
 
+import {LanguageSettingsActionType, LanguageSettingsMetricsProxy, LanguageSettingsMetricsProxyImpl} from './languages_settings_metrics_proxy.js';
 import {LanguageHelper, LanguagesModel, LanguageState, SpellCheckLanguageState} from './languages_types.js';
 import {getTemplate} from './spell_check_page.html.js';
 
@@ -124,6 +127,22 @@
   private spellCheckLanguages_: Array<LanguageState|SpellCheckLanguageState>;
   private hideSpellCheckLanguages_: boolean;
   private focusConfig_: FocusConfig;
+  private languageSettingsMetricsProxy_: LanguageSettingsMetricsProxy =
+      LanguageSettingsMetricsProxyImpl.getInstance();
+
+  private onSpellCheckToggleChange_(e: Event) {
+    this.languageSettingsMetricsProxy_.recordSettingsMetric(
+      (e.target as SettingsToggleButtonElement).checked ?
+          LanguageSettingsActionType.ENABLE_SPELL_CHECK_GLOBALLY :
+          LanguageSettingsActionType.DISABLE_SPELL_CHECK_GLOBALLY);
+  }
+
+  private onSelectedSpellingServiceChange_() {
+    this.languageSettingsMetricsProxy_.recordSettingsMetric(
+      this.prefs.spellcheck.use_spelling_service ?
+          LanguageSettingsActionType.SELECT_ENHANCED_SPELL_CHECK :
+          LanguageSettingsActionType.SELECT_BASIC_SPELL_CHECK);
+  }
 
   // <if expr="not is_macosx">
   /**
@@ -248,6 +267,11 @@
 
     this.languageHelper.toggleSpellCheck(
         item.language.code, !item.spellCheckEnabled);
+
+    this.languageSettingsMetricsProxy_.recordSettingsMetric(
+      item.spellCheckEnabled ?
+          LanguageSettingsActionType.ENABLE_SPELL_CHECK_FOR_LANGUAGE :
+          LanguageSettingsActionType.DISABLE_SPELL_CHECK_FOR_LANGUAGE);
   }
 
   /**
diff --git a/chrome/browser/resources/settings/lazy_load.ts b/chrome/browser/resources/settings/lazy_load.ts
index 807e802..c4887ec 100644
--- a/chrome/browser/resources/settings/lazy_load.ts
+++ b/chrome/browser/resources/settings/lazy_load.ts
@@ -151,6 +151,7 @@
 export {SettingsSyncControlsElement} from './people_page/sync_controls.js';
 export {SettingsSyncEncryptionOptionsElement} from './people_page/sync_encryption_options.js';
 export {SettingsSyncPageElement} from './people_page/sync_page.js';
+export {AutofillAssistantBrowserProxy, AutofillAssistantBrowserProxyImpl} from './privacy_page/autofill_assistant_browser_proxy.js';
 export {SettingsCollapseRadioButtonElement} from './privacy_page/collapse_radio_button.js';
 export {SettingsCookiesPageElement} from './privacy_page/cookies_page.js';
 export {SettingsDoNotTrackToggleElement} from './privacy_page/do_not_track_toggle.js';
diff --git a/chrome/browser/resources/settings/people_page/signout_dialog.ts b/chrome/browser/resources/settings/people_page/signout_dialog.ts
index 87432f59..aaf8ea6 100644
--- a/chrome/browser/resources/settings/people_page/signout_dialog.ts
+++ b/chrome/browser/resources/settings/people_page/signout_dialog.ts
@@ -9,7 +9,7 @@
 import '//resources/cr_elements/cr_button/cr_button.m.js';
 import '//resources/cr_elements/cr_checkbox/cr_checkbox.m.js';
 import '//resources/cr_elements/cr_dialog/cr_dialog.m.js';
-import '//resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import '//resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import '//resources/cr_elements/shared_style_css.m.js';
 import '//resources/cr_elements/shared_vars_css.m.js';
 import '//resources/polymer/v3_0/iron-collapse/iron-collapse.js';
diff --git a/chrome/browser/resources/settings/people_page/sync_page.ts b/chrome/browser/resources/settings/people_page/sync_page.ts
index 5c524b2..8b5bb93 100644
--- a/chrome/browser/resources/settings/people_page/sync_page.ts
+++ b/chrome/browser/resources/settings/people_page/sync_page.ts
@@ -10,7 +10,7 @@
 import '//resources/cr_elements/icons.m.js';
 import '//resources/cr_elements/shared_style_css.m.js';
 import '//resources/cr_elements/shared_vars_css.m.js';
-import '//resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import '//resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import '//resources/polymer/v3_0/iron-collapse/iron-collapse.js';
 import '//resources/polymer/v3_0/iron-icon/iron-icon.js';
 import '//resources/polymer/v3_0/iron-flex-layout/iron-flex-layout-classes.js';
diff --git a/chrome/browser/resources/settings/privacy_page/autofill_assistant_browser_proxy.ts b/chrome/browser/resources/settings/privacy_page/autofill_assistant_browser_proxy.ts
new file mode 100644
index 0000000..612cce35
--- /dev/null
+++ b/chrome/browser/resources/settings/privacy_page/autofill_assistant_browser_proxy.ts
@@ -0,0 +1,47 @@
+// Copyright 2022 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
+
+/**
+ * @fileoverview Handles the consent dialog and creating the audit record for
+ * Autofill Assistant functionality on Desktop.
+ */
+
+export interface AutofillAssistantBrowserProxy {
+  /**
+   * Show the consent prompt for Autofill Assistant.
+   * @return A promise firing with a boolean whether the consent was accepted.
+   */
+  promptForConsent(): Promise<boolean>;
+
+  /**
+   * Create an audit record that Autofill Assistant consent has been revoked.
+   * @param dialogElements The strings contained in the clicked UI element.
+   */
+  revokeConsent(dialogElements: string[]): void;
+}
+
+export class AutofillAssistantBrowserProxyImpl implements
+    AutofillAssistantBrowserProxy {
+  promptForConsent() {
+    return sendWithPromise('PromptForAutofillAssistantConsent');
+  }
+
+  revokeConsent(dialogElements: string[]) {
+    chrome.send('RevokeAutofillAssistantConsent', dialogElements);
+  }
+
+  static getInstance(): AutofillAssistantBrowserProxy {
+    return instance || (instance = new AutofillAssistantBrowserProxyImpl());
+  }
+
+  static setInstance(obj: AutofillAssistantBrowserProxy) {
+    instance = obj;
+  }
+}
+
+let instance: AutofillAssistantBrowserProxy|null = null;
\ No newline at end of file
diff --git a/chrome/browser/resources/settings/privacy_page/collapse_radio_button.ts b/chrome/browser/resources/settings/privacy_page/collapse_radio_button.ts
index 9aef1c8..e58da8e 100644
--- a/chrome/browser/resources/settings/privacy_page/collapse_radio_button.ts
+++ b/chrome/browser/resources/settings/privacy_page/collapse_radio_button.ts
@@ -2,13 +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_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/cr_radio_button/cr_radio_button_style_css.m.js';
 import 'chrome://resources/polymer/v3_0/iron-collapse/iron-collapse.js';
 import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
 import '../settings_shared.css.js';
 
-import {CrExpandButtonElement} from 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import {CrExpandButtonElement} from 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import {CrRadioButtonBehavior} from 'chrome://resources/cr_elements/cr_radio_button/cr_radio_button_behavior.m.js';
 import {mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
diff --git a/chrome/browser/resources/settings/privacy_page/personalization_options.html b/chrome/browser/resources/settings/privacy_page/personalization_options.html
index b21cd65..647cc0f 100644
--- a/chrome/browser/resources/settings/privacy_page/personalization_options.html
+++ b/chrome/browser/resources/settings/privacy_page/personalization_options.html
@@ -110,11 +110,13 @@
     </template>
 
     <template is="dom-if" if="[[shouldShowAutofillAssistant_]]" restamp>
-      <settings-toggle-button id="enableAssistantFlows"
+      <settings-toggle-button id="enableAutofillAssistantToggle"
           class="hr"
           label="$i18n{autofillAssistantPref}"
           sub-label="$i18n{autofillAssistantPrefDesc}"
-          pref="{{prefs.autofill_assistant.enabled}}">
+          pref="{{prefs.autofill_assistant.enabled}}"
+          on-settings-boolean-control-change="onEnableAutofillAssistantChange_"
+          no-set-pref>
       </settings-toggle-button>
     </template>
 
diff --git a/chrome/browser/resources/settings/privacy_page/personalization_options.ts b/chrome/browser/resources/settings/privacy_page/personalization_options.ts
index ccc1481..4138f5c 100644
--- a/chrome/browser/resources/settings/privacy_page/personalization_options.ts
+++ b/chrome/browser/resources/settings/privacy_page/personalization_options.ts
@@ -22,6 +22,7 @@
 // </if>
 
 import {CrToastElement} from '//resources/cr_elements/cr_toast/cr_toast.js';
+import {assert} from '//resources/js/assert_ts.js';
 import {WebUIListenerMixin} from '//resources/js/web_ui_listener_mixin.js';
 import {PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
@@ -33,6 +34,7 @@
 import {PrefsMixin} from '../prefs/prefs_mixin.js';
 import {RelaunchMixin, RestartType} from '../relaunch_mixin.js';
 
+import {AutofillAssistantBrowserProxyImpl} from './autofill_assistant_browser_proxy.js';
 import {getTemplate} from './personalization_options.html.js';
 import {MetricsReporting, PrivacyPageBrowserProxy, PrivacyPageBrowserProxyImpl} from './privacy_page_browser_proxy.js';
 
@@ -106,8 +108,8 @@
 
       shouldShowAutofillAssistant_: {
         type: Boolean,
-        value: () => loadTimeData.valueExists('enableAutofillAssistant') &&
-            loadTimeData.getBoolean('enableAutofillAssistant'),
+        value: false,
+        computed: 'computeShouldShowAutofillAssistant_(syncStatus.signedIn)',
       },
 
     };
@@ -129,6 +131,8 @@
   // </if>
 
   private shouldShowAutofillAssistant_: boolean;
+  private autofillAssistantProxy_ =
+      AutofillAssistantBrowserProxyImpl.getInstance();
 
   private browserProxy_: PrivacyPageBrowserProxy =
       PrivacyPageBrowserProxyImpl.getInstance();
@@ -137,6 +141,21 @@
     return !!this.syncStatus && !!this.syncStatus.firstSetupInProgress;
   }
 
+  private computeShouldShowAutofillAssistant_(): boolean {
+    // <if expr="chromeos_ash">
+    if (loadTimeData.getBoolean('isOSSettings')) {
+      return false;
+    }
+    // </if>
+
+    // Currently, only automated password change uses Autofill Assistant. Only
+    // show the toggle if at least one entry point is enabled.
+    // Additional, the user must be signed in since the consent dialog uses the
+    // sync bridge for consent recording.
+    return loadTimeData.getBoolean('isAutomatedPasswordChangeEnabled') &&
+        !!this.syncStatus && !!this.syncStatus.signedIn;
+  }
+
   override ready() {
     super.ready();
 
@@ -324,6 +343,26 @@
     e.stopPropagation();
     this.performRestart(RestartType.RESTART);
   }
+
+  private async onEnableAutofillAssistantChange_() {
+    const toggle = this.shadowRoot!.querySelector<SettingsToggleButtonElement>(
+        '#enableAutofillAssistantToggle');
+    assert(!!toggle);
+    if (toggle.checked) {
+      // Temporarily set the toggle to off again until the user has actually
+      // accepted the consent dialog.
+      toggle.checked = false;
+      const success = await this.autofillAssistantProxy_.promptForConsent();
+      if (success) {
+        toggle.checked = true;
+        toggle.sendPrefChange();
+      }
+    } else {
+      this.autofillAssistantProxy_.revokeConsent(
+          [toggle.label, toggle.subLabel]);
+      toggle.sendPrefChange();
+    }
+  }
 }
 
 declare global {
diff --git a/chrome/browser/resources/settings/site_settings/site_data_details_subpage.ts b/chrome/browser/resources/settings/site_settings/site_data_details_subpage.ts
index f87d517..a1e36832f 100644
--- a/chrome/browser/resources/settings/site_settings/site_data_details_subpage.ts
+++ b/chrome/browser/resources/settings/site_settings/site_data_details_subpage.ts
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.m.js';
 import 'chrome://resources/cr_elements/shared_style_css.m.js';
 import 'chrome://resources/polymer/v3_0/iron-collapse/iron-collapse.js';
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
index bbeb79f..c760ee3 100644
--- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
+++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
@@ -8,7 +8,7 @@
  * security site settings.
  */
 
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/cr_link_row/cr_link_row.js';
 import 'chrome://resources/cr_elements/shared_style_css.m.js';
 import 'chrome://resources/polymer/v3_0/iron-collapse/iron-collapse.js';
diff --git a/chrome/browser/resources/support_tool/pii_selection.ts b/chrome/browser/resources/support_tool/pii_selection.ts
index dbc03c55..b51de97c 100644
--- a/chrome/browser/resources/support_tool/pii_selection.ts
+++ b/chrome/browser/resources/support_tool/pii_selection.ts
@@ -4,7 +4,7 @@
 
 import 'chrome://resources/polymer/v3_0/iron-collapse/iron-collapse.js';
 import 'chrome://resources/cr_elements/cr_checkbox/cr_checkbox.m.js';
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/cr_radio_button/cr_radio_button.m.js';
 import 'chrome://resources/cr_elements/cr_radio_group/cr_radio_group.m.js';
 import 'chrome://resources/cr_elements/shared_vars_css.m.js';
diff --git a/chrome/browser/resources/tab_search/app.ts b/chrome/browser/resources/tab_search/app.ts
index 61f7c2cd..5964c7c 100644
--- a/chrome/browser/resources/tab_search/app.ts
+++ b/chrome/browser/resources/tab_search/app.ts
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import 'chrome://resources/cr_elements/shared_vars_css.m.js';
 import 'chrome://resources/cr_elements/mwb_element_shared_style.css.js';
 import 'chrome://resources/cr_elements/mwb_shared_style.css.js';
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabData.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabData.java
index 8ab732a..732b336 100644
--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabData.java
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabData.java
@@ -70,6 +70,7 @@
             "price_tracking_with_optimization_guide";
     private static final String RETURN_EMPTY_PRICE_DROPS_UNTIL_INIT_PARAM =
             "return_empty_price_drops_until_init";
+    private static final String CHECK_IF_PRICE_DROP_IS_SEEN_PARAM = "check_if_price_drop_is_seen";
     private static final String METRICS_IDENTIFIER_PREFIX = "NavigationComplete";
 
     private static final Class<ShoppingPersistedTabData> USER_DATA_KEY =
@@ -189,6 +190,7 @@
         public String currencyCode;
         public String offerId;
         public GURL gurl;
+        public boolean isCurrentPriceDropSeen;
 
         PriceDropData() {
             this.priceMicros = NO_PRICE_KNOWN;
@@ -686,6 +688,9 @@
         BuyableProduct buyableProduct = priceTrackingData.getBuyableProduct();
 
         if (hasPriceUpdate(priceTrackingData)) {
+            if (hasPriceChange(productUpdate)) {
+                setIsCurrentPriceDropSeen(false);
+            }
             setPriceMicros(productUpdate.getNewPrice().getAmountMicros());
             setPreviousPriceMicros(productUpdate.getOldPrice().getAmountMicros());
             setCurrencyCode(productUpdate.getOldPrice().getCurrencyCode());
@@ -701,6 +706,7 @@
             // Use UnsignedLongs to convert OfferId to avoid overflow.
             setMainOfferId(UnsignedLongs.toString(buyableProduct.getOfferId()));
             setPriceDropGurl(tab.getUrl());
+            setIsCurrentPriceDropSeen(false);
             foundBuyableProduct = FoundBuyableProduct.FOUND;
         }
 
@@ -909,6 +915,27 @@
         return true;
     }
 
+    /**
+     * Sets whether the current price drop has been viewed in the tab switcher grid.
+     * @param isSeen  is true if the current price drop has been seen.
+     */
+    public void setIsCurrentPriceDropSeen(boolean isSeen) {
+        if (isCheckIfPriceDropIsSeenEnabled()) {
+            mPriceDropData.isCurrentPriceDropSeen = isSeen;
+            save();
+        }
+    }
+
+    /**
+     * @return returns whether the current price drop has been seen.
+     */
+    public boolean getIsCurrentPriceDropSeen() {
+        if (isCheckIfPriceDropIsSeenEnabled()) {
+            return mPriceDropData.isCurrentPriceDropSeen;
+        }
+        return false;
+    }
+
     // TODO(crbug.com/1151156) Make parameters finch configurable
     private static int getMinimumDroppedThresholdPercentage() {
         return MINIMUM_DROP_PERCENTAGE;
@@ -942,7 +969,8 @@
                         .setPriceMicros(mPriceDropData.priceMicros)
                         .setPreviousPriceMicros(mPriceDropData.previousPriceMicros)
                         .setLastUpdatedMs(getLastUpdatedMs())
-                        .setLastPriceChangeTimeMs(mLastPriceChangeTimeMs);
+                        .setLastPriceChangeTimeMs(mLastPriceChangeTimeMs)
+                        .setIsCurrentPriceDropSeen(mPriceDropData.isCurrentPriceDropSeen);
         if (mPriceDropData.offerId != null) {
             builder.setMainOfferId(mPriceDropData.offerId);
         }
@@ -979,6 +1007,8 @@
             mPriceDropData.currencyCode = shoppingPersistedTabDataProto.getPriceCurrencyCode();
             mPriceDropData.gurl =
                     GURL.deserialize(shoppingPersistedTabDataProto.getSerializedGurl());
+            mPriceDropData.isCurrentPriceDropSeen =
+                    shoppingPersistedTabDataProto.getIsCurrentPriceDropSeen();
             return true;
         } catch (InvalidProtocolBufferException e) {
             Log.e(TAG,
@@ -1064,6 +1094,18 @@
         return false;
     }
 
+    /**
+     * @return true if checking if a price drop is spotted is enabled.
+     */
+    public static boolean isCheckIfPriceDropIsSeenEnabled() {
+        if (FeatureList.isInitialized()) {
+            return ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean(
+                    ChromeFeatureList.COMMERCE_PRICE_TRACKING, CHECK_IF_PRICE_DROP_IS_SEEN_PARAM,
+                    false);
+        }
+        return false;
+    }
+
     private static @DelayedInitMethod int getDelayedInitMethod() {
         if (FeatureList.isInitialized()
                 && ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean(
@@ -1103,6 +1145,22 @@
     }
 
     /**
+     * Returns true if there is an incoming change for the price.
+     * @param productPriceUpdate incoming price update data.
+     * @return
+     */
+    private boolean hasPriceChange(ProductPriceUpdate productPriceUpdate) {
+        if (productPriceUpdate.getNewPrice().getAmountMicros() != mPriceDropData.priceMicros) {
+            return true;
+        }
+        if (!productPriceUpdate.getNewPrice().getCurrencyCode().equals(
+                    mPriceDropData.currencyCode)) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
      * Called when it is appropriate to initialize and acquire {@link ShoppingPersistedTabData}.
      * Initialization and acquisition are delayed to avoid consuming system resources when
      * the system is busy with other urgent tasks on startup.
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/proto/shopping_persisted_tab_data.proto b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/proto/shopping_persisted_tab_data.proto
index 8aa1e15..302340d 100644
--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/proto/shopping_persisted_tab_data.proto
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/proto/shopping_persisted_tab_data.proto
@@ -31,4 +31,7 @@
 
   // The gurl associated with the price drop.
   optional string serialized_gurl = 7;
+
+  // Whether the user has seen the current price drop in the tab switcher grid.
+  optional bool is_current_price_drop_seen = 8;
 }
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index c24a0b0..24565f6 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1593,6 +1593,8 @@
       "webui/settings/accessibility_main_handler.h",
       "webui/settings/appearance_handler.cc",
       "webui/settings/appearance_handler.h",
+      "webui/settings/autofill_assistant_handler.cc",
+      "webui/settings/autofill_assistant_handler.h",
       "webui/settings/browser_lifetime_handler.cc",
       "webui/settings/browser_lifetime_handler.h",
       "webui/settings/captions_handler.cc",
@@ -4928,6 +4930,7 @@
       "views/tabs/tab_close_button.cc",
       "views/tabs/tab_close_button.h",
       "views/tabs/tab_container.h",
+      "views/tabs/tab_container_controller.h",
       "views/tabs/tab_container_impl.cc",
       "views/tabs/tab_container_impl.h",
       "views/tabs/tab_drag_context.h",
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
index 38b4e917..afbda82 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Kopieer prent</translation>
 <translation id="6674571176963658787">Voer jou wagfrase in om sinkronisering te begin</translation>
 <translation id="6676840375528380067">Vee jou Chrome-data op hierdie toestel uit?</translation>
+<translation id="6676927815633975364">Meld by hierdie werf en Chrome aan</translation>
 <translation id="6684809838922667136">Maak Chrome beter</translation>
 <translation id="670498945988402717">Gister nagegaan</translation>
 <translation id="6710213216561001401">Vorige</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
index 9a1c8cf..2242fef1 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">প্ৰতিচ্ছবি প্ৰতিলিপি কৰক</translation>
 <translation id="6674571176963658787">ছিংক আৰম্ভ কৰিবলৈ আপোনাৰ পাছফ্ৰেজ দিয়ক</translation>
 <translation id="6676840375528380067">এই ডিভাইচটোৰ পৰা Chrome ডেটা মচিবনে?</translation>
+<translation id="6676927815633975364">এই ছাইটটোত আৰু Chromeত ছাইন ইন কৰক</translation>
 <translation id="6684809838922667136">Chromeক উন্নত কৰক</translation>
 <translation id="670498945988402717">কালি পৰীক্ষা কৰা হৈছিল</translation>
 <translation id="6710213216561001401">পূৰ্বৱৰ্তী</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
index c3a9ed2..6c25018f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
@@ -1047,6 +1047,7 @@
 <translation id="6671495933530132209">Şəkli kopyalayın</translation>
 <translation id="6674571176963658787">Sinxronizasiyanı başlatmaq üçün parol ifadənizi daxil edin</translation>
 <translation id="6676840375528380067">Chrome datası bu cihazdan silinsin?</translation>
+<translation id="6676927815633975364">Bu sayta və Chrome'a daxil olun</translation>
 <translation id="6684809838922667136">Chrome'u yaxşılaşdırın</translation>
 <translation id="670498945988402717">Dünən yoxlanılıb</translation>
 <translation id="6710213216561001401">Əvvəlki</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
index 6c10a40..80af992 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
@@ -1051,6 +1051,7 @@
 <translation id="6671495933530132209">ছবি কপি করুন</translation>
 <translation id="6674571176963658787">সিঙ্ক শুরু করতে, আপনার পাসফ্রেজ লিখুন</translation>
 <translation id="6676840375528380067">এই ডিভাইস থেকে Chrome ডেটা সরিয়ে ফেলবেন?</translation>
+<translation id="6676927815633975364">এই সাইট ও Chrome-এ সাইন-ইন করুন</translation>
 <translation id="6684809838922667136">Chrome-এর ব্যবহার উন্নত করুন</translation>
 <translation id="670498945988402717">গতকাল চেক করা হয়েছে</translation>
 <translation id="6710213216561001401">আগের</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
index 094c0975f..9c52cbb 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
@@ -929,7 +929,7 @@
 <translation id="6137022273846704445">Idioma de l'aplicació <ph name="APP_NAME" /></translation>
 <translation id="6138832295072039549">Canvia la configuració del teu lloc web aquí</translation>
 <translation id="6140709049082532940">Protecció millorada:</translation>
-<translation id="6140912465461743537">País/regió</translation>
+<translation id="6140912465461743537">País/Regió</translation>
 <translation id="614940544461990577">Prova el següent:</translation>
 <translation id="6150320133806434356">Adreça d'interès desada</translation>
 <translation id="6154478581116148741">Activa el bloqueig de pantalla a Configuració per exportar les teves contrasenyes d'aquest dispositiu</translation>
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Copia la imatge</translation>
 <translation id="6674571176963658787">Per iniciar la sincronització, introdueix la frase de contrasenya</translation>
 <translation id="6676840375528380067">Vols esborrar les dades de Chrome del dispositiu?</translation>
+<translation id="6676927815633975364">Inicia la sessió en aquest lloc web i a Chrome</translation>
 <translation id="6684809838922667136">Millora Chrome</translation>
 <translation id="670498945988402717">Es va comprovar ahir</translation>
 <translation id="6710213216561001401">Anterior</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
index 97329a58..5a1d504 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Copïo’r llun</translation>
 <translation id="6674571176963658787">I ddechrau cysoni, rhowch eich cyfrinymadrodd</translation>
 <translation id="6676840375528380067">Clirio'ch data Chrome o'r ddyfais hon?</translation>
+<translation id="6676927815633975364">Mewngofnodi i'r wefan hon a Chrome</translation>
 <translation id="6684809838922667136">Gwella Chrome</translation>
 <translation id="670498945988402717">Gwiriwyd ddoe</translation>
 <translation id="6710213216561001401">Blaenorol</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
index 8f4a1a3a..63e06fe 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Αντιγραφή εικόνας</translation>
 <translation id="6674571176963658787">Για να ξεκινήσετε τον συγχρονισμό, εισαγάγετε τη φράση πρόσβασης.</translation>
 <translation id="6676840375528380067">Να διαγραφούν τα δεδομένα Chrome από τη συσκευή;</translation>
+<translation id="6676927815633975364">Συνδεθείτε σε αυτόν τον ιστότοπο και στο Chrome</translation>
 <translation id="6684809838922667136">Βελτίωση του Chrome</translation>
 <translation id="670498945988402717">Ελέγχθηκε χθες</translation>
 <translation id="6710213216561001401">Προηγούμενο</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
index d13de68..5b4275d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Kopeeri kujutis</translation>
 <translation id="6674571176963658787">Sünkroonimise alustamiseks sisestage oma parool</translation>
 <translation id="6676840375528380067">Kas kustutada sellest seadmest Chrome'i andmed?</translation>
+<translation id="6676927815633975364">Logige sellele saidile ja Chrome'i sisse</translation>
 <translation id="6684809838922667136">Chrome'i täiustamine</translation>
 <translation id="670498945988402717">Kontrolliti eile</translation>
 <translation id="6710213216561001401">Eelmine</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
index 16cbf85d..0aa09ee 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Kopiatu irudia</translation>
 <translation id="6674571176963658787">Sinkronizatzen hasteko, idatzi pasaesaldia</translation>
 <translation id="6676840375528380067">Gailu honetan dituzun Chrome-ko datuak garbitu nahi dituzu?</translation>
+<translation id="6676927815633975364">Hasi saioa webgune honetan eta Chrome-n</translation>
 <translation id="6684809838922667136">Hobetu Chrome</translation>
 <translation id="670498945988402717">Atzo egiaztatu zuen</translation>
 <translation id="6710213216561001401">Aurrekoa</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
index 049a073..42505c2 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Kopioi kuva</translation>
 <translation id="6674571176963658787">Aloita synkronointi lisäämällä tunnuslause</translation>
 <translation id="6676840375528380067">Poistetaanko Chrome-data tältä laitteelta?</translation>
+<translation id="6676927815633975364">Kirjaudu tälle sivustolle ja Chromeen</translation>
 <translation id="6684809838922667136">Entistä parempi Chrome</translation>
 <translation id="670498945988402717">Tarkistettu eilen</translation>
 <translation id="6710213216561001401">Edellinen</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
index 40a6c66..1cf4947 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">છબી કૉપિ કરો</translation>
 <translation id="6674571176963658787">સિંક કરવાનું શરૂ કરવા માટે, તમારો પાસફ્રેઝ દાખલ કરો</translation>
 <translation id="6676840375528380067">આ ડિવાઇસમાંથી તમારા Chrome ડેટાને સાફ કરીએ?</translation>
+<translation id="6676927815633975364">આ સાઇટ અને Chromeમાં સાઇન ઇન કરો</translation>
 <translation id="6684809838922667136">Chromeને બહેતર બનાવો</translation>
 <translation id="670498945988402717">ગઈકાલે ચેક કર્યું</translation>
 <translation id="6710213216561001401">પાછલી</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
index 059a6b1..f990998 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Salin gambar</translation>
 <translation id="6674571176963658787">Untuk memulai sinkronisasi, masukkan frasa sandi</translation>
 <translation id="6676840375528380067">Hapus data Chrome Anda dari perangkat ini?</translation>
+<translation id="6676927815633975364">Login ke situs ini dan Chrome</translation>
 <translation id="6684809838922667136">Buat Chrome menjadi lebih baik</translation>
 <translation id="670498945988402717">Diperiksa kemarin</translation>
 <translation id="6710213216561001401">Sebelumnya</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
index 5e25b91..6104b7a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Copia immagine</translation>
 <translation id="6674571176963658787">Per avviare la sincronizzazione devi inserire la tua passphrase</translation>
 <translation id="6676840375528380067">Eliminare i dati di Chrome dal dispositivo?</translation>
+<translation id="6676927815633975364">Accedi a questo sito e a Chrome</translation>
 <translation id="6684809838922667136">Migliora Chrome</translation>
 <translation id="670498945988402717">Eseguito ieri</translation>
 <translation id="6710213216561001401">Precedente</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
index dd027fdf..0fdaf71 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">העתקת התמונה</translation>
 <translation id="6674571176963658787">כדי להתחיל לסנכרן צריך להזין את ביטוי הסיסמה</translation>
 <translation id="6676840375528380067">‏למחוק את נתוני Chrome שלך מהמכשיר הזה?</translation>
+<translation id="6676927815633975364">‏כניסה לאתר הזה ול-Chrome</translation>
 <translation id="6684809838922667136">‏משפרים את Chrome</translation>
 <translation id="670498945988402717">התבצעה בדיקה אתמול</translation>
 <translation id="6710213216561001401">הקודם</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
index 3404ec29..8ef8cfe 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
@@ -1048,6 +1048,7 @@
 <translation id="6671495933530132209">ಚಿತ್ರವನ್ನು ನಕಲಿಸಿ</translation>
 <translation id="6674571176963658787">ಸಿಂಕ್ ಪ್ರಾರಂಭಿಸಲು, ನಿಮ್ಮ ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ನಮೂದಿಸಿ</translation>
 <translation id="6676840375528380067">ಈ ಸಾಧನದಿಂದ ನಿಮ್ಮ Chrome ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸುವುದೇ?</translation>
+<translation id="6676927815633975364">ಈ ಸೈಟ್‌ಗೆ ಮತ್ತು Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
 <translation id="6684809838922667136">Chrome ಅನ್ನು ಉತ್ತಮವಾಗಿಸಿ</translation>
 <translation id="670498945988402717">ನಿನ್ನೆ ಪರಿಶೀಲಿಸಲಾಗಿದೆ</translation>
 <translation id="6710213216561001401">ಹಿಂದಿನದು</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
index 73c21d9..b9632699 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">이미지 복사</translation>
 <translation id="6674571176963658787">동기화를 시작하려면 암호를 입력하세요.</translation>
 <translation id="6676840375528380067">기기에서 Chrome 데이터를 삭제하시겠습니까?</translation>
+<translation id="6676927815633975364">이 사이트 및 Chrome에 로그인하세요</translation>
 <translation id="6684809838922667136">Chrome 개선에 참여</translation>
 <translation id="670498945988402717">어제 확인됨</translation>
 <translation id="6710213216561001401">이전</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
index 352869b6..9a54b216 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Kopijuoti vaizdą</translation>
 <translation id="6674571176963658787">Jei norite pradėti sinchronizuoti, įveskite slaptafrazę</translation>
 <translation id="6676840375528380067">Išvalyti jūsų „Chrome“ duomenis iš šio įrenginio?</translation>
+<translation id="6676927815633975364">Prisijunkite prie šios svetainės ir „Chrome“</translation>
 <translation id="6684809838922667136">„Chrome“ tobulinimas</translation>
 <translation id="670498945988402717">Tikrinta vakar</translation>
 <translation id="6710213216561001401">Ankstesnė</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
index ffa511d..b8127070 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">ചിത്രം പകർത്തുക</translation>
 <translation id="6674571176963658787">സമന്വയിപ്പിക്കാൻ തുടങ്ങുന്നതിന്, നിങ്ങളുടെ പാസ്‌ഫ്രെയ്‌സ് നൽകുക</translation>
 <translation id="6676840375528380067">ഉപകരണത്തില്‍ നിന്ന് Chrome ഡാറ്റ മായ്ക്കണോ?</translation>
+<translation id="6676927815633975364">ഈ സൈറ്റിലും Chrome-ലും സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="6684809838922667136">Chrome മെച്ചപ്പെടുത്തുക</translation>
 <translation id="670498945988402717">ഇന്നലെ പരിശോധിച്ചു</translation>
 <translation id="6710213216561001401">മുമ്പത്തേത്</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
index 5b532cd7..9813e8a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">इमेज कॉपी करा</translation>
 <translation id="6674571176963658787">सिंक सुरू करण्यासाठी तुमचा पासफ्रेझ एंटर करा</translation>
 <translation id="6676840375528380067">या डिव्हाइसवरून तुमचा Chrom डेटा साफ करायचा?</translation>
+<translation id="6676927815633975364">ही साइट आणि Chrome मध्ये साइन इन करा</translation>
 <translation id="6684809838922667136">Chrome मध्ये सुधारणा करा</translation>
 <translation id="670498945988402717">काल तपासले</translation>
 <translation id="6710213216561001401">मागील</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
index f1a1518..e160f04 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
@@ -1048,6 +1048,7 @@
 <translation id="6671495933530132209">छविको प्रतिलिपि गर्नुहोस्</translation>
 <translation id="6674571176963658787">सिंक गर्ने कार्य सुरु गर्न आफ्नो पासफ्रेज हाल्नुहोस्</translation>
 <translation id="6676840375528380067">यस डिभाइसबाट तपाईंको Chrome को डेटा हटाउने हो?</translation>
+<translation id="6676927815633975364">यो साइट र Chrome मा साइन इन गर्नुहोस्</translation>
 <translation id="6684809838922667136">Chrome मा सुधार गर्नुहोस्</translation>
 <translation id="670498945988402717">हिजो जाँच गरिएको</translation>
 <translation id="6710213216561001401">अघिल्लो</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
index a745b5d..c1885476 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Afbeelding kopiëren</translation>
 <translation id="6674571176963658787">Geef je wachtwoordzin op om de synchronisatie te starten</translation>
 <translation id="6676840375528380067">Je Chrome-gegevens van dit apparaat wissen?</translation>
+<translation id="6676927815633975364">Log in bij deze site en Chrome</translation>
 <translation id="6684809838922667136">Chrome verbeteren</translation>
 <translation id="670498945988402717">Gisteren gecheckt</translation>
 <translation id="6710213216561001401">Vorige</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
index d3c3ca70..80b5bd9 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Kopiér bildet</translation>
 <translation id="6674571176963658787">For å starte synkroniseringen, skriv inn passordfrasen din</translation>
 <translation id="6676840375528380067">Vil du fjerne Chrome-dataene dine fra denne enheten?</translation>
+<translation id="6676927815633975364">Logg på dette nettstedet og Chrome</translation>
 <translation id="6684809838922667136">Gjør Chrome bedre</translation>
 <translation id="670498945988402717">Sjekket i går</translation>
 <translation id="6710213216561001401">Forrige</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
index 9b9c29e..4112df7 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
@@ -1050,6 +1050,7 @@
 <translation id="6671495933530132209">Copiar imagem</translation>
 <translation id="6674571176963658787">Para iniciar a sincronização, digite a senha longa</translation>
 <translation id="6676840375528380067">Limpar seus dados do Chrome deste dispositivo?</translation>
+<translation id="6676927815633975364">Faça login neste site e no Chrome</translation>
 <translation id="6684809838922667136">Melhorar o Chrome</translation>
 <translation id="670498945988402717">Verificado ontem</translation>
 <translation id="6710213216561001401">Anterior</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
index c3e7163..8c8e35a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Copiați imaginea</translation>
 <translation id="6674571176963658787">Pentru a porni sincronizarea, introdu expresia de acces</translation>
 <translation id="6676840375528380067">Ștergi datele tale Chrome de pe acest dispozitiv?</translation>
+<translation id="6676927815633975364">Conectează-te la acest site și la Chrome</translation>
 <translation id="6684809838922667136">Contribuie la îmbunătățirea Chrome</translation>
 <translation id="670498945988402717">A rulat ieri</translation>
 <translation id="6710213216561001401">Înapoi</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
index 1758fe9..5ba9419 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Kopírovať obrázok</translation>
 <translation id="6674571176963658787">Ak chcete spustiť synchronizáciu, zadajte prístupovú frázu</translation>
 <translation id="6676840375528380067">Chcete vymazať údaje Chromu z tohto zariadenia?</translation>
+<translation id="6676927815633975364">Prihlásiť sa na tomto webe a v Chrome</translation>
 <translation id="6684809838922667136">Zlepšite Chrome</translation>
 <translation id="670498945988402717">Kontrola prebehla včera</translation>
 <translation id="6710213216561001401">Späť</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
index 6577d66..e85efd8a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Kopiraj sliku</translation>
 <translation id="6674571176963658787">Da biste pokrenuli sinhronizaciju, unesite pristupnu frazu</translation>
 <translation id="6676840375528380067">Želite li da obrišete Chrome podatke sa ovog uređaja?</translation>
+<translation id="6676927815633975364">Prijavite se na ovaj sajt i u Chrome</translation>
 <translation id="6684809838922667136">Poboljšajte Chrome</translation>
 <translation id="670498945988402717">Provereno juče</translation>
 <translation id="6710213216561001401">Prethodno</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
index e347458..cd71633 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Копирај слику</translation>
 <translation id="6674571176963658787">Да бисте покренули синхронизацију, унесите приступну фразу</translation>
 <translation id="6676840375528380067">Желите ли да обришете Chrome податке са овог уређаја?</translation>
+<translation id="6676927815633975364">Пријавите се на овај сајт и у Chrome</translation>
 <translation id="6684809838922667136">Побољшајте Chrome</translation>
 <translation id="670498945988402717">Проверено јуче</translation>
 <translation id="6710213216561001401">Претходно</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
index 208bdcc..05307f77 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
@@ -494,7 +494,7 @@
 <translation id="3697705478071004188">సైట్ ఆధారంగా క్రమపద్ధతిలో అమర్చుతుంది</translation>
 <translation id="3699022356773522638">ఫైల్‌ను డౌన్‌లోడ్ చేయాలా?</translation>
 <translation id="371230970611282515">ప్రమాదకరమైన సంఘటనలు జరగడానికి ముందే, వాటిని గుర్తించి, మిమ్మల్ని హెచ్చరిస్తుంది.</translation>
-<translation id="3714981814255182093">శోధన పట్టీని తెరవండి</translation>
+<translation id="3714981814255182093">శోధన బార్‌ను తెరవండి</translation>
 <translation id="3716182511346448902">ఈ పేజీ చాలా మెమరీని ఉపయోగిస్తోంది, కాబట్టి దీన్ని Chrome పాజ్ చేయబడింది.</translation>
 <translation id="3721119614952978349">మీరు మరియు Google</translation>
 <translation id="3737319253362202215">అనువాద సెట్టింగ్‌లు</translation>
@@ -800,7 +800,7 @@
 <translation id="5433691172869980887">వినియోగదారు పేరు కాపీ చేయబడింది</translation>
 <translation id="5438292632479953702">మళ్లీ డౌన్‌లోడ్ చేయండి</translation>
 <translation id="5441466871879044658">ఈ భాషలోకి అనువదించు</translation>
-<translation id="5441522332038954058">అడ్రస్‌ పట్టీకి వెళ్లండి</translation>
+<translation id="5441522332038954058">అడ్రస్‌ బార్‌కు వెళ్లండి</translation>
 <translation id="544776284582297024">ఒకే సమయంలో ట్యాబ్‍లను తెరిచి వేర్వేరు పేజీలను సందర్శించడానికి, ట్యాబ్‍లను తెరువు బటన్‍ను ట్యాప్ చేయండి</translation>
 <translation id="5454166040603940656"><ph name="PROVIDER" />తో</translation>
 <translation id="5456381639095306749">పేజీని డౌన్‌లోడ్ చేయండి</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
index 0faca97..722cc94 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Resmi kopyala</translation>
 <translation id="6674571176963658787">Senkronizasyonu başlatmak için parolanızı girin</translation>
 <translation id="6676840375528380067">Chrome verileriniz bu cihazdan temizlensin mi?</translation>
+<translation id="6676927815633975364">Bu sitede ve Chrome'da oturum açın</translation>
 <translation id="6684809838922667136">Chrome'u daha iyi hale getirin</translation>
 <translation id="670498945988402717">Dün kontrol edildi</translation>
 <translation id="6710213216561001401">Önceki</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
index d87f6de..e34680b3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">تصویر کاپی کریں</translation>
 <translation id="6674571176963658787">مطابقت پذیری شروع کرنے کے لیے، اپنا پاس فریز درج کریں</translation>
 <translation id="6676840375528380067">‏اس آلہ سے آپ کا Chrome ڈیٹا صاف کریں؟</translation>
+<translation id="6676927815633975364">‏اس سائٹ اور Chrome پر سائن ان کریں</translation>
 <translation id="6684809838922667136">‏Chrome کو بہتر بنائیں</translation>
 <translation id="670498945988402717">گزشتہ کل چیک کیا گیا</translation>
 <translation id="6710213216561001401">گزشتہ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
index 9cab701..f21e39dc 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">复制图片</translation>
 <translation id="6674571176963658787">若要开始同步,请输入您的密码</translation>
 <translation id="6676840375528380067">从这部设备中清除您的 Chrome 数据?</translation>
+<translation id="6676927815633975364">登录此网站和 Chrome</translation>
 <translation id="6684809838922667136">帮助改善 Chrome</translation>
 <translation id="670498945988402717">昨天检查过</translation>
 <translation id="6710213216561001401">上一项</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
index 4170a26..b5d9a84 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">複製圖片</translation>
 <translation id="6674571176963658787">如要開始同步處理,請輸入密碼短語</translation>
 <translation id="6676840375528380067">要清除此裝置上的 Chrome 資料嗎?</translation>
+<translation id="6676927815633975364">登入此網站和 Chrome</translation>
 <translation id="6684809838922667136">協助改善 Chrome</translation>
 <translation id="670498945988402717">曾在昨天檢查</translation>
 <translation id="6710213216561001401">上一個</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
index 783f02e..ebe5aba 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -1046,6 +1046,7 @@
 <translation id="6671495933530132209">複製圖片</translation>
 <translation id="6674571176963658787">如要開始同步處理,請輸入通關密語</translation>
 <translation id="6676840375528380067">要清除你在這個裝置上的 Chrome 資料嗎?</translation>
+<translation id="6676927815633975364">登入這個網站和 Chrome</translation>
 <translation id="6684809838922667136">讓 Chrome 更臻完美</translation>
 <translation id="670498945988402717">昨天已檢查</translation>
 <translation id="6710213216561001401">返回</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
index 564e78e..6a29bf3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
@@ -1049,6 +1049,7 @@
 <translation id="6671495933530132209">Kopisha isithombe</translation>
 <translation id="6674571176963658787">Ukuze uqale ukuvumelanisa, faka umushwana wakho wokungena</translation>
 <translation id="6676840375528380067">Sula idatha yakho ye-Chrome kusuka kule divayisi?</translation>
+<translation id="6676927815633975364">Ngena ngemvume kuleli sayithi naku-Chrome</translation>
 <translation id="6684809838922667136">Yenza i-Chrome ibe ngcono</translation>
 <translation id="670498945988402717">Kuhlolwe izolo</translation>
 <translation id="6710213216561001401">Okwedlule</translation>
diff --git a/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.cc b/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.cc
index 75800ac..910c0cb2 100644
--- a/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.cc
+++ b/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.cc
@@ -110,3 +110,5 @@
     ash::DictationBubbleIconType icon,
     const absl::optional<std::u16string>& text,
     const absl::optional<std::vector<ash::DictationBubbleHintType>>& hints) {}
+
+void FakeAccessibilityController::SilenceSpokenFeedback() {}
diff --git a/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.h b/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.h
index 608d535..e863daf9 100644
--- a/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.h
+++ b/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.h
@@ -73,6 +73,7 @@
       const absl::optional<std::u16string>& text,
       const absl::optional<std::vector<ash::DictationBubbleHintType>>& hints)
       override;
+  void SilenceSpokenFeedback() override;
 
  private:
   bool was_client_set_ = false;
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_client_impl.cc b/chrome/browser/ui/ash/holding_space/holding_space_client_impl.cc
index a956b64..9cff94a 100644
--- a/chrome/browser/ui/ash/holding_space/holding_space_client_impl.cc
+++ b/chrome/browser/ui/ash/holding_space/holding_space_client_impl.cc
@@ -103,13 +103,6 @@
   GetHoldingSpaceKeyedService(profile_)->AddScreenRecording(file_path);
 }
 
-void HoldingSpaceClientImpl::CancelItems(
-    const std::vector<const HoldingSpaceItem*>& items) {
-  auto* const service = GetHoldingSpaceKeyedService(profile_);
-  for (const HoldingSpaceItem* item : items)
-    service->CancelItem(item);
-}
-
 void HoldingSpaceClientImpl::CopyImageToClipboard(const HoldingSpaceItem& item,
                                                   SuccessCallback callback) {
   holding_space_metrics::RecordItemAction(
@@ -265,13 +258,6 @@
           std::move(callback)));
 }
 
-void HoldingSpaceClientImpl::PauseItems(
-    const std::vector<const HoldingSpaceItem*>& items) {
-  auto* const service = GetHoldingSpaceKeyedService(profile_);
-  for (const HoldingSpaceItem* item : items)
-    service->PauseItem(item);
-}
-
 void HoldingSpaceClientImpl::PinFiles(
     const std::vector<base::FilePath>& file_paths) {
   std::vector<storage::FileSystemURL> file_system_urls;
@@ -312,13 +298,6 @@
     service->AddPinnedFiles(file_system_urls);
 }
 
-void HoldingSpaceClientImpl::ResumeItems(
-    const std::vector<const HoldingSpaceItem*>& items) {
-  auto* const service = GetHoldingSpaceKeyedService(profile_);
-  for (const HoldingSpaceItem* item : items)
-    service->ResumeItem(item);
-}
-
 void HoldingSpaceClientImpl::ShowItemInFolder(const HoldingSpaceItem& item,
                                               SuccessCallback callback) {
   holding_space_metrics::RecordItemAction(
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_client_impl.h b/chrome/browser/ui/ash/holding_space/holding_space_client_impl.h
index 5ea0d06..b275e410 100644
--- a/chrome/browser/ui/ash/holding_space/holding_space_client_impl.h
+++ b/chrome/browser/ui/ash/holding_space/holding_space_client_impl.h
@@ -28,17 +28,14 @@
   void AddDiagnosticsLog(const base::FilePath& file_path) override;
   void AddScreenRecording(const base::FilePath& file_path) override;
   void AddScreenshot(const base::FilePath& file_path) override;
-  void CancelItems(const std::vector<const HoldingSpaceItem*>& items) override;
   void CopyImageToClipboard(const HoldingSpaceItem&, SuccessCallback) override;
   base::FilePath CrackFileSystemUrl(const GURL& file_system_url) const override;
   void OpenDownloads(SuccessCallback callback) override;
   void OpenItems(const std::vector<const HoldingSpaceItem*>& items,
                  SuccessCallback callback) override;
   void OpenMyFiles(SuccessCallback callback) override;
-  void PauseItems(const std::vector<const HoldingSpaceItem*>& items) override;
   void PinFiles(const std::vector<base::FilePath>& file_paths) override;
   void PinItems(const std::vector<const HoldingSpaceItem*>& items) override;
-  void ResumeItems(const std::vector<const HoldingSpaceItem*>& items) override;
   void ShowItemInFolder(const HoldingSpaceItem&, SuccessCallback) override;
   void UnpinItems(const std::vector<const HoldingSpaceItem*>& items) 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 9bee65c..565fc20 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
@@ -9,6 +9,7 @@
 #include "ash/public/cpp/holding_space/holding_space_metrics.h"
 #include "ash/public/cpp/holding_space/holding_space_progress.h"
 #include "ash/public/cpp/image_util.h"
+#include "ash/resources/vector_icons/vector_icons.h"
 #include "ash/strings/grit/ash_strings.h"
 #include "ash/style/dark_light_mode_controller_impl.h"
 #include "base/containers/contains.h"
@@ -629,36 +630,6 @@
     download_controller_ash->RemoveObserver(this);
 }
 
-void HoldingSpaceDownloadsDelegate::Cancel(const HoldingSpaceItem* item) {
-  DCHECK(HoldingSpaceItem::IsDownload(item->type()));
-  for (const auto& in_progress_download : in_progress_downloads_) {
-    if (in_progress_download->GetHoldingSpaceItem() == item) {
-      in_progress_download->Cancel();
-      return;
-    }
-  }
-}
-
-void HoldingSpaceDownloadsDelegate::Pause(const HoldingSpaceItem* item) {
-  DCHECK(HoldingSpaceItem::IsDownload(item->type()));
-  for (const auto& in_progress_download : in_progress_downloads_) {
-    if (in_progress_download->GetHoldingSpaceItem() == item) {
-      in_progress_download->Pause();
-      return;
-    }
-  }
-}
-
-void HoldingSpaceDownloadsDelegate::Resume(const HoldingSpaceItem* item) {
-  DCHECK(HoldingSpaceItem::IsDownload(item->type()));
-  for (const auto& in_progress_download : in_progress_downloads_) {
-    if (in_progress_download->GetHoldingSpaceItem() == item) {
-      in_progress_download->Resume();
-      return;
-    }
-  }
-}
-
 absl::optional<holding_space_metrics::ItemFailureToLaunchReason>
 HoldingSpaceDownloadsDelegate::OpenWhenComplete(const HoldingSpaceItem* item) {
   DCHECK(HoldingSpaceItem::IsDownload(item->type()));
@@ -893,12 +864,25 @@
     return;
 
   // Commands.
-  std::set<HoldingSpaceCommandId> in_progress_commands;
+  std::vector<HoldingSpaceItem::InProgressCommand> in_progress_commands;
   if (!in_progress_download->GetProgress().IsComplete()) {
-    in_progress_commands.insert(HoldingSpaceCommandId::kCancelItem);
-    in_progress_commands.insert(in_progress_download->IsPaused()
-                                    ? HoldingSpaceCommandId::kResumeItem
-                                    : HoldingSpaceCommandId::kPauseItem);
+    in_progress_commands.push_back(
+        in_progress_download->IsPaused()
+            ? HoldingSpaceItem::InProgressCommand(
+                  HoldingSpaceCommandId::kResumeItem,
+                  IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_RESUME, &kResumeIcon,
+                  base::BindRepeating(&HoldingSpaceDownloadsDelegate::Resume,
+                                      weak_factory_.GetWeakPtr()))
+            : HoldingSpaceItem::InProgressCommand(
+                  HoldingSpaceCommandId::kPauseItem,
+                  IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_PAUSE, &kPauseIcon,
+                  base::BindRepeating(&HoldingSpaceDownloadsDelegate::Pause,
+                                      weak_factory_.GetWeakPtr())));
+    in_progress_commands.push_back(HoldingSpaceItem::InProgressCommand(
+        HoldingSpaceCommandId::kCancelItem,
+        IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_CANCEL, &kCancelIcon,
+        base::BindRepeating(&HoldingSpaceDownloadsDelegate::Cancel,
+                            weak_factory_.GetWeakPtr())));
   }
 
   // Update.
@@ -916,4 +900,46 @@
       .SetProgress(in_progress_download->GetProgress());
 }
 
+void HoldingSpaceDownloadsDelegate::Cancel(const HoldingSpaceItem* item,
+                                           HoldingSpaceCommandId command_id) {
+  DCHECK(HoldingSpaceItem::IsDownload(item->type()));
+  DCHECK_EQ(HoldingSpaceCommandId::kCancelItem, command_id);
+  for (const auto& in_progress_download : in_progress_downloads_) {
+    if (in_progress_download->GetHoldingSpaceItem() == item) {
+      holding_space_metrics::RecordItemAction(
+          {item}, holding_space_metrics::ItemAction::kCancel);
+      in_progress_download->Cancel();
+      return;
+    }
+  }
+}
+
+void HoldingSpaceDownloadsDelegate::Pause(const HoldingSpaceItem* item,
+                                          HoldingSpaceCommandId command_id) {
+  DCHECK(HoldingSpaceItem::IsDownload(item->type()));
+  DCHECK_EQ(HoldingSpaceCommandId::kPauseItem, command_id);
+  for (const auto& in_progress_download : in_progress_downloads_) {
+    if (in_progress_download->GetHoldingSpaceItem() == item) {
+      holding_space_metrics::RecordItemAction(
+          {item}, holding_space_metrics::ItemAction::kPause);
+      in_progress_download->Pause();
+      return;
+    }
+  }
+}
+
+void HoldingSpaceDownloadsDelegate::Resume(const HoldingSpaceItem* item,
+                                           HoldingSpaceCommandId command_id) {
+  DCHECK(HoldingSpaceItem::IsDownload(item->type()));
+  DCHECK_EQ(HoldingSpaceCommandId::kResumeItem, command_id);
+  for (const auto& in_progress_download : in_progress_downloads_) {
+    if (in_progress_download->GetHoldingSpaceItem() == item) {
+      holding_space_metrics::RecordItemAction(
+          {item}, holding_space_metrics::ItemAction::kResume);
+      in_progress_download->Resume();
+      return;
+    }
+  }
+}
+
 }  // namespace ash
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 79ffcc9..1d5d5bd 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
@@ -44,11 +44,6 @@
       const HoldingSpaceDownloadsDelegate&) = delete;
   ~HoldingSpaceDownloadsDelegate() override;
 
-  // Attempts to cancel/pause/resume the download underlying the given `item`.
-  void Cancel(const HoldingSpaceItem* item);
-  void Pause(const HoldingSpaceItem* item);
-  void Resume(const HoldingSpaceItem* item);
-
   // Attempts to mark the download underlying the given `item` to open when
   // complete. Returns `absl::nullopt` on success or the reason if the attempt
   // was not successful.
@@ -115,6 +110,11 @@
   void CreateOrUpdateHoldingSpaceItem(InProgressDownload* in_progress_download,
                                       bool invalidate_image);
 
+  // Attempts to cancel/pause/resume the download underlying the given `item`.
+  void Cancel(const HoldingSpaceItem* item, HoldingSpaceCommandId command_id);
+  void Pause(const HoldingSpaceItem* item, HoldingSpaceCommandId command_id);
+  void Resume(const HoldingSpaceItem* item, HoldingSpaceCommandId command_id);
+
   // The collection of currently in-progress downloads.
   std::set<std::unique_ptr<InProgressDownload>, base::UniquePtrComparator>
       in_progress_downloads_;
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.cc b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.cc
index 79532c7..41b975c 100644
--- a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.cc
+++ b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.cc
@@ -337,39 +337,6 @@
   holding_space_model_.RemoveItem(id);
 }
 
-void HoldingSpaceKeyedService::CancelItem(const HoldingSpaceItem* item) {
-  // Currently it is only possible to cancel download type items.
-  if (!HoldingSpaceItem::IsDownload(item->type()) || !downloads_delegate_)
-    return;
-
-  holding_space_metrics::RecordItemAction(
-      {item}, holding_space_metrics::ItemAction::kCancel);
-
-  downloads_delegate_->Cancel(item);
-}
-
-void HoldingSpaceKeyedService::PauseItem(const HoldingSpaceItem* item) {
-  // Currently it is only possible to pause download type items.
-  if (!HoldingSpaceItem::IsDownload(item->type()) || !downloads_delegate_)
-    return;
-
-  holding_space_metrics::RecordItemAction(
-      {item}, holding_space_metrics::ItemAction::kPause);
-
-  downloads_delegate_->Pause(item);
-}
-
-void HoldingSpaceKeyedService::ResumeItem(const HoldingSpaceItem* item) {
-  // Currently it is only possible to resume download type items.
-  if (!HoldingSpaceItem::IsDownload(item->type()) || !downloads_delegate_)
-    return;
-
-  holding_space_metrics::RecordItemAction(
-      {item}, holding_space_metrics::ItemAction::kResume);
-
-  downloads_delegate_->Resume(item);
-}
-
 absl::optional<holding_space_metrics::ItemFailureToLaunchReason>
 HoldingSpaceKeyedService::OpenItemWhenComplete(const HoldingSpaceItem* item) {
   // Currently it is only possible to open download type items when complete.
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.h b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.h
index 9b07f6c7..4e6b07e8 100644
--- a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.h
+++ b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.h
@@ -154,11 +154,6 @@
   // Removes the holding space item with the specified `id` from the model.
   void RemoveItem(const std::string& id);
 
-  // Attempts to cancel/pause/resume the specified holding space `item`.
-  void CancelItem(const HoldingSpaceItem* item);
-  void PauseItem(const HoldingSpaceItem* item);
-  void ResumeItem(const HoldingSpaceItem* item);
-
   // Attempts to mark the specified holding space `item` to open when complete.
   // Returns `absl::nullopt` on success or the reason if the attempt was not
   // successful.
diff --git a/chrome/browser/ui/autofill/payments/local_card_migration_bubble_controller_impl.cc b/chrome/browser/ui/autofill/payments/local_card_migration_bubble_controller_impl.cc
index ef61ed4..6845f1f2 100644
--- a/chrome/browser/ui/autofill/payments/local_card_migration_bubble_controller_impl.cc
+++ b/chrome/browser/ui/autofill/payments/local_card_migration_bubble_controller_impl.cc
@@ -16,6 +16,7 @@
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "components/autofill/core/browser/metrics/autofill_metrics.h"
+#include "components/autofill/core/browser/metrics/payments/local_card_migration_metrics.h"
 #include "components/autofill/core/browser/payments/local_card_migration_strike_database.h"
 #include "components/autofill/core/browser/strike_database.h"
 #include "components/autofill/core/common/autofill_clock.h"
@@ -47,8 +48,8 @@
   local_card_migration_bubble_closure_ =
       std::move(local_card_migration_bubble_closure);
 
-  AutofillMetrics::LogLocalCardMigrationBubbleOfferMetric(
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, is_reshow_);
+  autofill_metrics::LogLocalCardMigrationBubbleOfferMetric(
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, is_reshow_);
 
   Show();
 }
@@ -58,8 +59,8 @@
     return;
 
   is_reshow_ = true;
-  AutofillMetrics::LogLocalCardMigrationBubbleOfferMetric(
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, is_reshow_);
+  autofill_metrics::LogLocalCardMigrationBubbleOfferMetric(
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, is_reshow_);
 
   Show();
 }
@@ -95,28 +96,28 @@
   }
 
   // Log local card migration bubble result according to the closed reason.
-  AutofillMetrics::LocalCardMigrationBubbleResultMetric metric;
+  autofill_metrics::LocalCardMigrationBubbleResultMetric metric;
   switch (closed_reason) {
     case PaymentsBubbleClosedReason::kAccepted:
-      metric = AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_ACCEPTED;
+      metric = autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_ACCEPTED;
       break;
     case PaymentsBubbleClosedReason::kClosed:
-      metric = AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_CLOSED;
+      metric = autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_CLOSED;
       break;
     case PaymentsBubbleClosedReason::kNotInteracted:
-      metric = AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED;
+      metric = autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED;
       break;
     case PaymentsBubbleClosedReason::kLostFocus:
-      metric = AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_LOST_FOCUS;
+      metric = autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_LOST_FOCUS;
       break;
     case PaymentsBubbleClosedReason::kUnknown:
-      metric = AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_RESULT_UNKNOWN;
+      metric = autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_RESULT_UNKNOWN;
       break;
     case PaymentsBubbleClosedReason::kCancelled:
       NOTREACHED();
       return;
   }
-  AutofillMetrics::LogLocalCardMigrationBubbleResultMetric(metric, is_reshow_);
+  autofill_metrics::LogLocalCardMigrationBubbleResultMetric(metric, is_reshow_);
 }
 
 PageActionIconType
@@ -135,8 +136,8 @@
           ->ShowLocalCardMigrationBubble(web_contents(), this, is_reshow_));
   DCHECK(bubble_view());
 
-  AutofillMetrics::LogLocalCardMigrationBubbleOfferMetric(
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, is_reshow_);
+  autofill_metrics::LogLocalCardMigrationBubbleOfferMetric(
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, is_reshow_);
 }
 
 void LocalCardMigrationBubbleControllerImpl::AddStrikesForBubbleClose() {
diff --git a/chrome/browser/ui/autofill/payments/local_card_migration_bubble_controller_impl_unittest.cc b/chrome/browser/ui/autofill/payments/local_card_migration_bubble_controller_impl_unittest.cc
index 148b5102..24a2935 100644
--- a/chrome/browser/ui/autofill/payments/local_card_migration_bubble_controller_impl_unittest.cc
+++ b/chrome/browser/ui/autofill/payments/local_card_migration_bubble_controller_impl_unittest.cc
@@ -19,6 +19,7 @@
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
 #include "components/autofill/core/browser/autofill_test_utils.h"
 #include "components/autofill/core/browser/metrics/autofill_metrics.h"
+#include "components/autofill/core/browser/metrics/payments/local_card_migration_metrics.h"
 #include "components/autofill/core/browser/test_autofill_clock.h"
 #include "components/autofill/core/common/autofill_payments_features.h"
 #include "content/public/test/mock_navigation_handle.h"
@@ -109,8 +110,8 @@
       histogram_tester.GetAllSamples(
           "Autofill.LocalCardMigrationBubbleOffer.FirstShow"),
       ElementsAre(
-          Bucket(AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, 1),
-          Bucket(AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, 1)));
+          Bucket(autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, 1),
+          Bucket(autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, 1)));
 }
 
 TEST_F(LocalCardMigrationBubbleControllerImplTest, Metrics_Reshows_ShowBubble) {
@@ -122,8 +123,8 @@
       histogram_tester.GetAllSamples(
           "Autofill.LocalCardMigrationBubbleOffer.Reshows"),
       ElementsAre(
-          Bucket(AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, 1),
-          Bucket(AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, 1)));
+          Bucket(autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, 1),
+          Bucket(autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, 1)));
 }
 
 TEST_F(LocalCardMigrationBubbleControllerImplTest,
@@ -136,8 +137,8 @@
       histogram_tester.GetAllSamples(
           "Autofill.LocalCardMigrationBubbleOffer.FirstShow"),
       ElementsAre(
-          Bucket(AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, 1),
-          Bucket(AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, 1)));
+          Bucket(autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, 1),
+          Bucket(autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, 1)));
 }
 
 // Ensures the bubble should still stick around even if the time since bubble
@@ -164,7 +165,7 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_ACCEPTED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_ACCEPTED, 1);
 }
 
 TEST_F(LocalCardMigrationBubbleControllerImplTest, FirstShow_BubbleClosed) {
@@ -174,7 +175,7 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_CLOSED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_CLOSED, 1);
 }
 
 TEST_F(LocalCardMigrationBubbleControllerImplTest,
@@ -185,7 +186,7 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
 }
 
 TEST_F(LocalCardMigrationBubbleControllerImplTest, FirstShow_BubbleLostFocus) {
@@ -195,7 +196,7 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_LOST_FOCUS, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_LOST_FOCUS, 1);
 }
 
 TEST_F(LocalCardMigrationBubbleControllerImplTest, FirstShow_Unknown) {
@@ -205,7 +206,7 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_RESULT_UNKNOWN, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_RESULT_UNKNOWN, 1);
 }
 
 TEST_F(LocalCardMigrationBubbleControllerImplTest, Reshows_BubbleAccepted) {
@@ -216,10 +217,10 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.Reshows",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_ACCEPTED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_ACCEPTED, 1);
 }
 
 TEST_F(LocalCardMigrationBubbleControllerImplTest, Reshows_BubbleClosed) {
@@ -230,10 +231,10 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.Reshows",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_CLOSED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_CLOSED, 1);
 }
 
 TEST_F(LocalCardMigrationBubbleControllerImplTest,
@@ -245,10 +246,10 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.Reshows",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
 }
 
 TEST_F(LocalCardMigrationBubbleControllerImplTest, Reshows_BubbleLostFocus) {
@@ -259,10 +260,10 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.Reshows",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_LOST_FOCUS, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_LOST_FOCUS, 1);
 }
 
 TEST_F(LocalCardMigrationBubbleControllerImplTest, Reshows_Unknown) {
@@ -273,10 +274,10 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.Reshows",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_RESULT_UNKNOWN, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_RESULT_UNKNOWN, 1);
 }
 
 }  // namespace autofill
diff --git a/chrome/browser/ui/autofill/payments/local_card_migration_dialog_controller_impl.cc b/chrome/browser/ui/autofill/payments/local_card_migration_dialog_controller_impl.cc
index 90eb5d74d..523ac41e 100644
--- a/chrome/browser/ui/autofill/payments/local_card_migration_dialog_controller_impl.cc
+++ b/chrome/browser/ui/autofill/payments/local_card_migration_dialog_controller_impl.cc
@@ -27,6 +27,7 @@
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "components/autofill/core/browser/metrics/autofill_metrics.h"
+#include "components/autofill/core/browser/metrics/payments/local_card_migration_metrics.h"
 #include "components/autofill/core/browser/payments/local_card_migration_manager.h"
 #include "components/autofill/core/browser/payments/local_card_migration_strike_database.h"
 #include "components/autofill/core/browser/payments/payments_service_url.h"
@@ -75,8 +76,8 @@
   UpdateLocalCardMigrationIcon();
   dialog_is_visible_duration_timer_ = base::ElapsedTimer();
 
-  AutofillMetrics::LogLocalCardMigrationDialogOfferMetric(
-      AutofillMetrics::LOCAL_CARD_MIGRATION_DIALOG_SHOWN);
+  autofill_metrics::LogLocalCardMigrationDialogOfferMetric(
+      autofill_metrics::LOCAL_CARD_MIGRATION_DIALOG_SHOWN);
 }
 
 void LocalCardMigrationDialogControllerImpl::UpdateCreditCardIcon(
@@ -102,8 +103,8 @@
 }
 
 void LocalCardMigrationDialogControllerImpl::ShowFeedbackDialog() {
-  AutofillMetrics::LogLocalCardMigrationDialogOfferMetric(
-      AutofillMetrics::LOCAL_CARD_MIGRATION_DIALOG_FEEDBACK_SHOWN);
+  autofill_metrics::LogLocalCardMigrationDialogOfferMetric(
+      autofill_metrics::LOCAL_CARD_MIGRATION_DIALOG_FEEDBACK_SHOWN);
 
   local_card_migration_dialog_ = CreateLocalCardMigrationDialogView(this);
   local_card_migration_dialog_->ShowDialog(GetWebContents());
@@ -112,8 +113,9 @@
 }
 
 void LocalCardMigrationDialogControllerImpl::ShowErrorDialog() {
-  AutofillMetrics::LogLocalCardMigrationDialogOfferMetric(
-      AutofillMetrics::LOCAL_CARD_MIGRATION_DIALOG_FEEDBACK_SERVER_ERROR_SHOWN);
+  autofill_metrics::LogLocalCardMigrationDialogOfferMetric(
+      autofill_metrics::
+          LOCAL_CARD_MIGRATION_DIALOG_FEEDBACK_SERVER_ERROR_SHOWN);
 
   local_card_migration_dialog_ = CreateLocalCardMigrationErrorDialogView(this);
   UpdateLocalCardMigrationIcon();
@@ -163,11 +165,11 @@
   local_card_migration_strike_database.AddStrikes(
       LocalCardMigrationStrikeDatabase::kStrikesToAddWhenDialogClosed);
 
-  AutofillMetrics::LogLocalCardMigrationDialogUserSelectionPercentageMetric(
+  autofill_metrics::LogLocalCardMigrationDialogUserSelectionPercentageMetric(
       selected_cards_guids.size(), migratable_credit_cards_.size());
-  AutofillMetrics::LogLocalCardMigrationDialogUserInteractionMetric(
+  autofill_metrics::LogLocalCardMigrationDialogUserInteractionMetric(
       dialog_is_visible_duration_timer_.Elapsed(),
-      AutofillMetrics::LOCAL_CARD_MIGRATION_DIALOG_CLOSED_SAVE_BUTTON_CLICKED);
+      autofill_metrics::LOCAL_CARD_MIGRATION_DIALOG_CLOSED_SAVE_BUTTON_CLICKED);
 
   std::move(start_migrating_cards_callback_).Run(selected_cards_guids);
   NotifyMigrationStarted();
@@ -182,9 +184,9 @@
   local_card_migration_strike_database.AddStrikes(
       LocalCardMigrationStrikeDatabase::kStrikesToAddWhenDialogClosed);
 
-  AutofillMetrics::LogLocalCardMigrationDialogUserInteractionMetric(
+  autofill_metrics::LogLocalCardMigrationDialogUserInteractionMetric(
       dialog_is_visible_duration_timer_.Elapsed(),
-      AutofillMetrics::
+      autofill_metrics::
           LOCAL_CARD_MIGRATION_DIALOG_CLOSED_CANCEL_BUTTON_CLICKED);
 
   start_migrating_cards_callback_.Reset();
@@ -192,16 +194,16 @@
 }
 
 void LocalCardMigrationDialogControllerImpl::OnDoneButtonClicked() {
-  AutofillMetrics::LogLocalCardMigrationDialogUserInteractionMetric(
+  autofill_metrics::LogLocalCardMigrationDialogUserInteractionMetric(
       dialog_is_visible_duration_timer_.Elapsed(),
-      AutofillMetrics::LOCAL_CARD_MIGRATION_DIALOG_CLOSED_DONE_BUTTON_CLICKED);
+      autofill_metrics::LOCAL_CARD_MIGRATION_DIALOG_CLOSED_DONE_BUTTON_CLICKED);
   NotifyMigrationNoLongerAvailable();
 }
 
 void LocalCardMigrationDialogControllerImpl::OnViewCardsButtonClicked() {
-  AutofillMetrics::LogLocalCardMigrationDialogUserInteractionMetric(
+  autofill_metrics::LogLocalCardMigrationDialogUserInteractionMetric(
       dialog_is_visible_duration_timer_.Elapsed(),
-      AutofillMetrics::
+      autofill_metrics::
           LOCAL_CARD_MIGRATION_DIALOG_CLOSED_VIEW_CARDS_BUTTON_CLICKED);
 
   OpenUrl(payments::GetManageInstrumentsUrl());
@@ -211,9 +213,9 @@
 void LocalCardMigrationDialogControllerImpl::OnLegalMessageLinkClicked(
     const GURL& url) {
   OpenUrl(url);
-  AutofillMetrics::LogLocalCardMigrationDialogUserInteractionMetric(
+  autofill_metrics::LogLocalCardMigrationDialogUserInteractionMetric(
       dialog_is_visible_duration_timer_.Elapsed(),
-      AutofillMetrics::LOCAL_CARD_MIGRATION_DIALOG_LEGAL_MESSAGE_CLICKED);
+      autofill_metrics::LOCAL_CARD_MIGRATION_DIALOG_LEGAL_MESSAGE_CLICKED);
 }
 
 void LocalCardMigrationDialogControllerImpl::DeleteCard(
@@ -230,9 +232,9 @@
     delete_local_card_callback_.Reset();
   }
 
-  AutofillMetrics::LogLocalCardMigrationDialogUserInteractionMetric(
+  autofill_metrics::LogLocalCardMigrationDialogUserInteractionMetric(
       dialog_is_visible_duration_timer_.Elapsed(),
-      AutofillMetrics::LOCAL_CARD_MIGRATION_DIALOG_DELETE_CARD_ICON_CLICKED);
+      autofill_metrics::LOCAL_CARD_MIGRATION_DIALOG_DELETE_CARD_ICON_CLICKED);
 }
 
 void LocalCardMigrationDialogControllerImpl::OnDialogClosed() {
diff --git a/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc b/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc
index 0dbd49080..15e86ff 100644
--- a/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc
@@ -4,6 +4,7 @@
 
 // DELETE LATER
 #include "base/logging.h"
+#include "chrome/browser/ui/bookmarks/bookmark_stats.h"
 #include "chrome/browser/ui/tabs/tab_group_model.h"
 
 #include "chrome/browser/ui/bookmarks/bookmark_context_menu_controller.h"
@@ -256,6 +257,7 @@
     case IDC_BOOKMARK_BAR_RENAME_FOLDER:
     case IDC_BOOKMARK_BAR_EDIT:
       base::RecordAction(UserMetricsAction("BookmarkBar_ContextMenu_Edit"));
+      RecordBookmarkEdited(opened_from_);
 
       if (selection_.size() != 1) {
         NOTREACHED();
@@ -286,6 +288,7 @@
 
     case IDC_BOOKMARK_BAR_REMOVE: {
       base::RecordAction(UserMetricsAction("BookmarkBar_ContextMenu_Remove"));
+      RecordBookmarkRemoved(opened_from_);
 
       for (const auto* node : selection_)
         model_->Remove(node);
diff --git a/chrome/browser/ui/bookmarks/bookmark_drag_drop.cc b/chrome/browser/ui/bookmarks/bookmark_drag_drop.cc
index 306512dd..de37d2b 100644
--- a/chrome/browser/ui/bookmarks/bookmark_drag_drop.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_drag_drop.cc
@@ -57,6 +57,7 @@
            bookmarks::CanAllBeEditedByUser(model->client(), dragged_nodes));
     if (!dragged_nodes.empty()) {
       // Drag from same profile. Copy or move nodes.
+      bool is_reorder = !copy && dragged_nodes[0]->parent() == parent_node;
       for (size_t i = 0; i < dragged_nodes.size(); ++i) {
         if (copy) {
           model->Copy(dragged_nodes[i], parent_node, index);
@@ -65,11 +66,13 @@
         }
         index = parent_node->GetIndexOf(dragged_nodes[i]).value() + 1;
       }
+      RecordBookmarkDropped(data, parent_node, is_reorder);
       return copy ? DragOperation::kCopy : DragOperation::kMove;
     }
     return DragOperation::kNone;
   }
   RecordBookmarksAdded(profile);
+  RecordBookmarkDropped(data, parent_node, false);
   // Dropping a folder from different profile. Always accept.
   bookmarks::CloneBookmarkNode(model, data.elements, parent_node, index, true);
   return DragOperation::kCopy;
diff --git a/chrome/browser/ui/bookmarks/bookmark_stats.cc b/chrome/browser/ui/bookmarks/bookmark_stats.cc
index 2d9f2b1..3bc84fe 100644
--- a/chrome/browser/ui/bookmarks/bookmark_stats.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_stats.cc
@@ -8,6 +8,7 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/metrics/user_metrics.h"
 #include "components/bookmarks/browser/bookmark_model.h"
+#include "components/bookmarks/browser/bookmark_node_data.h"
 
 using bookmarks::BookmarkNode;
 
@@ -64,6 +65,16 @@
   }
 }
 
+void RecordBookmarkEdited(BookmarkLaunchLocation location) {
+  UMA_HISTOGRAM_ENUMERATION("Bookmarks.EditLocation", location,
+                            BOOKMARK_LAUNCH_LOCATION_LIMIT);
+}
+
+void RecordBookmarkRemoved(BookmarkLaunchLocation location) {
+  UMA_HISTOGRAM_ENUMERATION("Bookmarks.RemovedLocation", location,
+                            BOOKMARK_LAUNCH_LOCATION_LIMIT);
+}
+
 void RecordBookmarksAdded(const Profile* profile) {
   profile_metrics::BrowserProfileType profile_type = GetMetricProfile(profile);
   UMA_HISTOGRAM_ENUMERATION("Bookmarks.AddedPerProfileType", profile_type);
@@ -79,3 +90,50 @@
                              count);
   }
 }
+
+void RecordBookmarkDropped(const bookmarks::BookmarkNodeData& data,
+                           const bookmarks::BookmarkNode* parent_node,
+                           bool is_reorder) {
+  enum class DropType : int {
+    kDropURLOntoBar = 0,
+    kDropURLIntoFolder = 1,
+    kDropBookmarkOntoBar = 2,
+    kDropBookmarkIntoFolder = 3,
+    kDropFolderOntoBar = 4,
+    kDropFolderIntoFolder = 5,
+    kReorderBookmarkOnBar = 6,
+    kReorderBookmarkInFolder = 7,
+    kReorderFolderOnBar = 8,
+    kReorderSubfolderInFolder = 9,
+    kMaxValue = kReorderSubfolderInFolder
+  };
+
+  // Note that `has_single_url()` is true for individual existing bookmarks as
+  // well as raw URLs, so we have to check the ID as well.
+  DropType drop_type;
+  if (data.has_single_url() && data.elements[0].id() == 0) {
+    drop_type = parent_node->is_permanent_node() ? DropType::kDropURLOntoBar
+                                                 : DropType::kDropURLIntoFolder;
+  } else if (is_reorder) {
+    if (data.has_single_url()) {
+      drop_type = parent_node->is_permanent_node()
+                      ? DropType::kReorderBookmarkOnBar
+                      : DropType::kReorderBookmarkInFolder;
+    } else {
+      drop_type = parent_node->is_permanent_node()
+                      ? DropType::kReorderFolderOnBar
+                      : DropType::kReorderSubfolderInFolder;
+    }
+  } else {
+    if (data.has_single_url()) {
+      drop_type = parent_node->is_permanent_node()
+                      ? DropType::kDropBookmarkOntoBar
+                      : DropType::kDropBookmarkIntoFolder;
+    } else {
+      drop_type = parent_node->is_permanent_node()
+                      ? DropType::kDropFolderOntoBar
+                      : DropType::kDropFolderIntoFolder;
+    }
+  }
+  UMA_HISTOGRAM_ENUMERATION("Bookmarks.BookmarksBar.DragDropType", drop_type);
+}
diff --git a/chrome/browser/ui/bookmarks/bookmark_stats.h b/chrome/browser/ui/bookmarks/bookmark_stats.h
index 4cd82c8c..84debd7 100644
--- a/chrome/browser/ui/bookmarks/bookmark_stats.h
+++ b/chrome/browser/ui/bookmarks/bookmark_stats.h
@@ -9,6 +9,11 @@
 
 class Profile;
 
+namespace bookmarks {
+class BookmarkNode;
+struct BookmarkNodeData;
+}  // namespace bookmarks
+
 // This enum is used for the Bookmarks.EntryPoint histogram.
 // These values are persisted to logs. Entries should not be renumbered and
 // numeric values should never be reused.
@@ -73,6 +78,12 @@
 // Records the user opening the apps page for UMA purposes.
 void RecordBookmarkAppsPageOpen(BookmarkLaunchLocation location);
 
+// Records that the user edited or renamed a bookmark.
+void RecordBookmarkEdited(BookmarkLaunchLocation location);
+
+// Records that the user removed a bookmark.
+void RecordBookmarkRemoved(BookmarkLaunchLocation location);
+
 // Records the user adding a bookmark via star action, drag and drop, via
 // Bookmark this tab... and Bookmark all tabs... buttons. For the Bookmark
 // open tabs... the action is recorded only once and not as many times as
@@ -82,4 +93,10 @@
 // Records the user bookmarking all tabs, along with the open tabs count.
 void RecordBookmarkAllTabsWithTabsCount(const Profile* profile, int count);
 
+// Records that a bookmark or bookmarks were dropped. Determines the type of
+// drop operation based on the data and parent node.
+void RecordBookmarkDropped(const bookmarks::BookmarkNodeData& data,
+                           const bookmarks::BookmarkNode* parent_node,
+                           bool is_reorder);
+
 #endif  // CHROME_BROWSER_UI_BOOKMARKS_BOOKMARK_STATS_H_
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
index f15b2ae7..7dee9f6 100644
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -388,7 +388,8 @@
   prerender::NoStatePrefetchTabHelper::CreateForWebContents(web_contents);
   RecentlyAudibleHelper::CreateForWebContents(web_contents);
 #if BUILDFLAG(IS_ANDROID)
-  if (base::FeatureList::IsEnabled(features::kRequestDesktopSiteExceptions)) {
+  if (base::FeatureList::IsEnabled(features::kRequestDesktopSiteExceptions) ||
+      base::FeatureList::IsEnabled(features::kRequestDesktopSiteAdditions)) {
     RequestDesktopSiteWebContentsObserverAndroid::CreateForWebContents(
         web_contents);
   }
diff --git a/chrome/browser/ui/views/autofill/payments/local_card_migration_browsertest.cc b/chrome/browser/ui/views/autofill/payments/local_card_migration_browsertest.cc
index 235b87c..46f8019 100644
--- a/chrome/browser/ui/views/autofill/payments/local_card_migration_browsertest.cc
+++ b/chrome/browser/ui/views/autofill/payments/local_card_migration_browsertest.cc
@@ -53,6 +53,7 @@
 #include "components/autofill/content/browser/content_autofill_driver.h"
 #include "components/autofill/core/browser/autofill_test_utils.h"
 #include "components/autofill/core/browser/form_data_importer.h"
+#include "components/autofill/core/browser/metrics/payments/local_card_migration_metrics.h"
 #include "components/autofill/core/browser/payments/credit_card_save_manager.h"
 #include "components/autofill/core/browser/payments/local_card_migration_manager.h"
 #include "components/autofill/core/browser/payments/payments_util.h"
@@ -603,11 +604,11 @@
       histogram_tester.GetAllSamples(
           "Autofill.LocalCardMigrationBubbleOffer.FirstShow"),
       ElementsAre(
-          Bucket(AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, 1),
-          Bucket(AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, 1)));
+          Bucket(autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, 1),
+          Bucket(autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, 1)));
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationOrigin.UseOfServerCard",
-      AutofillMetrics::INTERMEDIATE_BUBBLE_SHOWN, 1);
+      autofill_metrics::INTERMEDIATE_BUBBLE_SHOWN, 1);
 }
 
 // Ensures that the intermediate migration bubble is not shown after reusing
@@ -647,11 +648,11 @@
       histogram_tester.GetAllSamples(
           "Autofill.LocalCardMigrationBubbleOffer.FirstShow"),
       ElementsAre(
-          Bucket(AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, 1),
-          Bucket(AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, 1)));
+          Bucket(autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, 1),
+          Bucket(autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, 1)));
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationOrigin.UseOfLocalCard",
-      AutofillMetrics::INTERMEDIATE_BUBBLE_SHOWN, 1);
+      autofill_metrics::INTERMEDIATE_BUBBLE_SHOWN, 1);
 }
 
 // Ensures that clicking [X] on the offer bubble makes the bubble disappear.
@@ -670,7 +671,7 @@
   // Metrics
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationOrigin.UseOfLocalCard",
-      AutofillMetrics::INTERMEDIATE_BUBBLE_SHOWN, 1);
+      autofill_metrics::INTERMEDIATE_BUBBLE_SHOWN, 1);
 }
 
 // Ensures that the credit card icon will show in location bar.
@@ -705,13 +706,13 @@
   EXPECT_THAT(
       histogram_tester.GetAllSamples(
           "Autofill.LocalCardMigrationOrigin.UseOfLocalCard"),
-      ElementsAre(Bucket(AutofillMetrics::INTERMEDIATE_BUBBLE_SHOWN, 1)));
+      ElementsAre(Bucket(autofill_metrics::INTERMEDIATE_BUBBLE_SHOWN, 1)));
   EXPECT_THAT(
       histogram_tester.GetAllSamples(
           "Autofill.LocalCardMigrationBubbleOffer.Reshows"),
       ElementsAre(
-          Bucket(AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, 1),
-          Bucket(AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, 1)));
+          Bucket(autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED, 1),
+          Bucket(autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, 1)));
 }
 
 // Ensures that accepting the intermediate migration offer opens up the main
@@ -737,15 +738,15 @@
   EXPECT_THAT(
       histogram_tester.GetAllSamples(
           "Autofill.LocalCardMigrationOrigin.UseOfLocalCard"),
-      ElementsAre(Bucket(AutofillMetrics::INTERMEDIATE_BUBBLE_SHOWN, 1),
-                  Bucket(AutofillMetrics::INTERMEDIATE_BUBBLE_ACCEPTED, 1),
-                  Bucket(AutofillMetrics::MAIN_DIALOG_SHOWN, 1)));
+      ElementsAre(Bucket(autofill_metrics::INTERMEDIATE_BUBBLE_SHOWN, 1),
+                  Bucket(autofill_metrics::INTERMEDIATE_BUBBLE_ACCEPTED, 1),
+                  Bucket(autofill_metrics::MAIN_DIALOG_SHOWN, 1)));
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_ACCEPTED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_ACCEPTED, 1);
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationDialogOffer",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_DIALOG_SHOWN, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_DIALOG_SHOWN, 1);
 }
 
 // Ensures that the migration dialog contains all the valid card stored in
@@ -793,12 +794,13 @@
   EXPECT_THAT(
       histogram_tester.GetAllSamples(
           "Autofill.LocalCardMigrationOrigin.UseOfLocalCard"),
-      ElementsAre(Bucket(AutofillMetrics::INTERMEDIATE_BUBBLE_SHOWN, 1),
-                  Bucket(AutofillMetrics::INTERMEDIATE_BUBBLE_ACCEPTED, 1),
-                  Bucket(AutofillMetrics::MAIN_DIALOG_SHOWN, 1)));
+      ElementsAre(Bucket(autofill_metrics::INTERMEDIATE_BUBBLE_SHOWN, 1),
+                  Bucket(autofill_metrics::INTERMEDIATE_BUBBLE_ACCEPTED, 1),
+                  Bucket(autofill_metrics::MAIN_DIALOG_SHOWN, 1)));
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationDialogUserInteraction",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_DIALOG_CLOSED_CANCEL_BUTTON_CLICKED,
+      autofill_metrics::
+          LOCAL_CARD_MIGRATION_DIALOG_CLOSED_CANCEL_BUTTON_CLICKED,
       1);
 }
 
@@ -821,13 +823,13 @@
   EXPECT_THAT(
       histogram_tester.GetAllSamples(
           "Autofill.LocalCardMigrationOrigin.UseOfLocalCard"),
-      ElementsAre(Bucket(AutofillMetrics::INTERMEDIATE_BUBBLE_SHOWN, 1),
-                  Bucket(AutofillMetrics::INTERMEDIATE_BUBBLE_ACCEPTED, 1),
-                  Bucket(AutofillMetrics::MAIN_DIALOG_SHOWN, 1),
-                  Bucket(AutofillMetrics::MAIN_DIALOG_ACCEPTED, 1)));
+      ElementsAre(Bucket(autofill_metrics::INTERMEDIATE_BUBBLE_SHOWN, 1),
+                  Bucket(autofill_metrics::INTERMEDIATE_BUBBLE_ACCEPTED, 1),
+                  Bucket(autofill_metrics::MAIN_DIALOG_SHOWN, 1),
+                  Bucket(autofill_metrics::MAIN_DIALOG_ACCEPTED, 1)));
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationDialogUserInteraction",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_DIALOG_CLOSED_SAVE_BUTTON_CLICKED,
+      autofill_metrics::LOCAL_CARD_MIGRATION_DIALOG_CLOSED_SAVE_BUTTON_CLICKED,
       1);
 }
 
@@ -981,7 +983,7 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_ACCEPTED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_ACCEPTED, 1);
 }
 
 IN_PROC_BROWSER_TEST_F(LocalCardMigrationBrowserTest,
@@ -996,7 +998,7 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_CLOSED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_CLOSED, 1);
 }
 
 IN_PROC_BROWSER_TEST_F(LocalCardMigrationBrowserTest,
@@ -1013,7 +1015,7 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED, 1);
 }
 
 IN_PROC_BROWSER_TEST_F(LocalCardMigrationBrowserTest,
@@ -1031,7 +1033,7 @@
 
   histogram_tester.ExpectUniqueSample(
       "Autofill.LocalCardMigrationBubbleResult.FirstShow",
-      AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_LOST_FOCUS, 1);
+      autofill_metrics::LOCAL_CARD_MIGRATION_BUBBLE_LOST_FOCUS, 1);
 }
 
 // Tests to ensure the card nickname is shown correctly in the local card
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
index 6fecf9a..02d6bee 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
@@ -391,7 +391,7 @@
   std::vector<const BookmarkNode*> nodes(1, node);
   context_menu_ = std::make_unique<BookmarkContextMenu>(
       parent_, browser_, profile_, get_navigator_,
-      BOOKMARK_LAUNCH_LOCATION_APP_MENU, node->parent(), nodes,
+      location_, node->parent(), nodes,
       ShouldCloseOnRemove(node));
   context_menu_->set_observer(this);
   context_menu_->RunMenuAt(p, source_type);
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h
index a059b06..172fac3c 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h
@@ -66,6 +66,7 @@
   // views::View:
   gfx::Size GetMinimumSize() const override;
   void AddedToWidget() override;
+  void PaintChildren(const views::PaintInfo& info) override;
 
   // web_app::AppRegistrarObserver
   void OnAlwaysShowToolbarInFullscreenChanged(const web_app::AppId& app_id,
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm
index 025baa81..f576d5de3 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm
@@ -385,6 +385,18 @@
   }
 }
 
+void BrowserNonClientFrameViewMac::PaintChildren(const views::PaintInfo& info) {
+  // In immersive fullscreen, the browser view's top container relies on the
+  // non-client frame view to paint the frame (see comment in
+  // TopContainerView::PaintChildren). We want the frame view to paint *only*
+  // the frame but not its child (i.e. the BrowserView).
+  // TODO(kerenzhu): we need this workaround due to the design of NonClientView,
+  // that the frame part is not an independent child view. If it is an
+  // independent view, overriding PaintChildren() will not be necessary.
+  if (!browser_view()->immersive_mode_controller()->IsRevealed())
+    BrowserNonClientFrameView::PaintChildren(info);
+}
+
 ///////////////////////////////////////////////////////////////////////////////
 // BrowserNonClientFrameViewMac, protected:
 
diff --git a/chrome/browser/ui/views/frame/browser_root_view.cc b/chrome/browser/ui/views/frame/browser_root_view.cc
index bcde814..d83a734 100644
--- a/chrome/browser/ui/views/frame/browser_root_view.cc
+++ b/chrome/browser/ui/views/frame/browser_root_view.cc
@@ -340,7 +340,14 @@
       Tab* active_tab = tabstrip()->tab_at(active_tab_index);
       if (active_tab && active_tab->GetVisible()) {
         gfx::RectF bounds(active_tab->GetMirroredBounds());
-        ConvertRectToTarget(tabstrip(), this, &bounds);
+        views::View* tabstrip_root = this;
+#if BUILDFLAG(IS_MAC)
+        // In immersive fullscreen, the top container is hosted in
+        // `overlay_widget`, which has its own root view.
+        if (browser_view_->immersive_mode_controller()->IsRevealed())
+          tabstrip_root = browser_view_->overlay_widget()->GetRootView();
+#endif
+        ConvertRectToTarget(tabstrip(), tabstrip_root, &bounds);
         canvas->ClipRect(bounds, SkClipOp::kDifference);
       }
     }
diff --git a/chrome/browser/ui/views/tabs/tab_container_controller.h b/chrome/browser/ui/views/tabs/tab_container_controller.h
new file mode 100644
index 0000000..70e178ad
--- /dev/null
+++ b/chrome/browser/ui/views/tabs/tab_container_controller.h
@@ -0,0 +1,57 @@
+// Copyright 2022 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_TABS_TAB_CONTAINER_CONTROLLER_H_
+#define CHROME_BROWSER_UI_VIEWS_TABS_TAB_CONTAINER_CONTROLLER_H_
+
+#include "third_party/abseil-cpp/absl/types/optional.h"
+#include "ui/base/ui_base_types.h"
+#include "ui/gfx/range/range.h"
+
+namespace tab_groups {
+class TabGroupId;
+}  // namespace tab_groups
+
+// Model/Controller for the TabContainer.
+// NOTE: All indices used by this class are in model coordinates.
+class TabContainerController {
+ public:
+  virtual ~TabContainerController() = default;
+
+  // Returns true if |index| is a valid model index.
+  virtual bool IsValidModelIndex(int index) const = 0;
+
+  // Returns the index of the active tab.
+  virtual int GetActiveIndex() const = 0;
+
+  // Notifies controller of a drop index update.
+  virtual void OnDropIndexUpdate(int index, bool drop_before) = 0;
+
+  // Returns the |group| collapsed state. Returns false if the group does not
+  // exist or is not collapsed.
+  // NOTE: This method signature is duplicated in TabStripController; the
+  // methods are intended to have equivalent semantics so they can share an
+  // implementation.
+  virtual bool IsGroupCollapsed(const tab_groups::TabGroupId& group) const = 0;
+
+  // Gets the first tab index in |group|, or nullopt if the group is
+  // currently empty. This is always safe to call unlike
+  // ListTabsInGroup().
+  virtual absl::optional<int> GetFirstTabInGroup(
+      const tab_groups::TabGroupId& group) const = 0;
+
+  // Returns the range of tabs in the given |group|. This must not be
+  // called during intermediate states where the group is not
+  // contiguous. For example, if tabs elsewhere in the tab strip are
+  // being moved into |group| it may not be contiguous; this method
+  // cannot be called.
+  virtual gfx::Range ListTabsInGroup(
+      const tab_groups::TabGroupId& group) const = 0;
+
+  // Whether the window drag handle area can be extended to include the top of
+  // inactive tabs.
+  virtual bool CanExtendDragHandle() const = 0;
+};
+
+#endif  // CHROME_BROWSER_UI_VIEWS_TABS_TAB_CONTAINER_CONTROLLER_H_
diff --git a/chrome/browser/ui/views/tabs/tab_container_impl.cc b/chrome/browser/ui/views/tabs/tab_container_impl.cc
index 08bccd4..04fc9d66 100644
--- a/chrome/browser/ui/views/tabs/tab_container_impl.cc
+++ b/chrome/browser/ui/views/tabs/tab_container_impl.cc
@@ -166,7 +166,7 @@
 }
 
 TabContainerImpl::TabContainerImpl(
-    TabStripController* controller,
+    TabContainerController* controller,
     TabHoverCardController* hover_card_controller,
     TabDragContextBase* drag_context,
     TabSlotController* tab_slot_controller,
@@ -382,7 +382,7 @@
     const tab_groups::TabGroupId& group) {
   // The context menu relies on a Browser object which is not provided in
   // TabStripTest.
-  if (controller_->GetBrowser()) {
+  if (tab_slot_controller_->GetBrowser()) {
     group_views_[group]->header()->ShowContextMenuForViewImpl(
         this, gfx::Point(), ui::MENU_SOURCE_NONE);
   }
@@ -475,7 +475,8 @@
   Tab* tab = FindTabHitByPoint(local_point);
   if (tab) {
     ConvertPointToScreen(this, &local_point);
-    controller_->ShowContextMenuForTab(tab, local_point, ui::MENU_SOURCE_TOUCH);
+    tab_slot_controller_->ShowContextMenuForTab(tab, local_point,
+                                                ui::MENU_SOURCE_TOUCH);
   }
 }
 
@@ -485,25 +486,23 @@
   if (v == this)
     return true;
 
-  // When the window has a top drag handle, a thin strip at the top of inactive
-  // tabs and the new tab button is treated as part of the window drag handle,
-  // to increase draggability.  This region starts 1 DIP above the top of the
-  // separator.
-  const int drag_handle_extension = TabStyle::GetDragHandleExtension(height());
+  if (controller_->CanExtendDragHandle()) {
+    // When the window has a top drag handle, a thin strip at the top of
+    // inactive tabs and the new tab button can be treated as part of the window
+    // drag handle, to increase draggability.  This region starts 1 DIP above
+    // the top of the separator.
+    const int drag_handle_extension =
+        TabStyle::GetDragHandleExtension(height());
 
-  // Disable drag handle extension when tab shapes are visible.
-  bool extend_drag_handle = !controller_->IsFrameCondensed() &&
-                            !controller_->EverHasVisibleBackgroundTabShapes();
-
-  // A hit on the tab is not in the caption unless it is in the thin strip
-  // mentioned above.
-  const absl::optional<size_t> tab_index = tabs_view_model_.GetIndexOfView(v);
-  if (tab_index.has_value() && IsValidModelIndex(tab_index.value())) {
-    Tab* tab = GetTabAtModelIndex(tab_index.value());
-    gfx::Rect tab_drag_handle = tab->GetMirroredBounds();
-    tab_drag_handle.set_height(drag_handle_extension);
-    return extend_drag_handle && !tab->IsActive() &&
-           tab_drag_handle.Intersects(rect);
+    // A hit on the tab is not in the caption unless it is in the thin strip
+    // mentioned above.
+    const absl::optional<size_t> tab_index = tabs_view_model_.GetIndexOfView(v);
+    if (tab_index.has_value() && IsValidModelIndex(tab_index.value())) {
+      Tab* tab = GetTabAtModelIndex(tab_index.value());
+      gfx::Rect tab_drag_handle = tab->GetMirroredBounds();
+      tab_drag_handle.set_height(drag_handle_extension);
+      return !tab->IsActive() && tab_drag_handle.Intersects(rect);
+    }
   }
 
   // |v| is some other view (e.g. a close button in a tab) and therefore |rect|
@@ -1418,7 +1417,7 @@
 }
 
 bool TabContainerImpl::IsValidModelIndex(int model_index) const {
-  return controller_->IsValidIndex(model_index);
+  return controller_->IsValidModelIndex(model_index);
 }
 
 BEGIN_METADATA(TabContainerImpl, views::View)
diff --git a/chrome/browser/ui/views/tabs/tab_container_impl.h b/chrome/browser/ui/views/tabs/tab_container_impl.h
index e74a483..a02c966 100644
--- a/chrome/browser/ui/views/tabs/tab_container_impl.h
+++ b/chrome/browser/ui/views/tabs/tab_container_impl.h
@@ -17,6 +17,7 @@
 #include "chrome/browser/ui/views/tabs/tab_slot_view.h"
 #include "chrome/browser/ui/views/tabs/tab_strip_layout_helper.h"
 #include "components/tab_groups/tab_group_id.h"
+#include "tab_container_controller.h"
 #include "ui/base/metadata/metadata_header_macros.h"
 #include "ui/views/animation/bounds_animator.h"
 #include "ui/views/animation/bounds_animator_observer.h"
@@ -38,7 +39,7 @@
  public:
   METADATA_HEADER(TabContainerImpl);
 
-  TabContainerImpl(TabStripController* controller,
+  TabContainerImpl(TabContainerController* controller,
                    TabHoverCardController* hover_card_controller,
                    TabDragContextBase* drag_context,
                    TabSlotController* tab_slot_controller,
@@ -304,7 +305,7 @@
   // the remove animation completes.
   views::ViewModelT<Tab> tabs_view_model_;
 
-  raw_ptr<TabStripController> controller_;
+  raw_ptr<TabContainerController> controller_;
 
   raw_ptr<TabHoverCardController> hover_card_controller_;
 
diff --git a/chrome/browser/ui/views/tabs/tab_container_unittest.cc b/chrome/browser/ui/views/tabs/tab_container_unittest.cc
index f72bfb7..b6d732a3 100644
--- a/chrome/browser/ui/views/tabs/tab_container_unittest.cc
+++ b/chrome/browser/ui/views/tabs/tab_container_unittest.cc
@@ -45,6 +45,47 @@
   void FinishEndingDrag() override {}
   int GetTabDragAreaWidth() const override { return width(); }
 };
+
+class FakeTabContainerController final : public TabContainerController {
+ public:
+  explicit FakeTabContainerController(TabStripController* tab_strip_controller)
+      : tab_strip_controller_(tab_strip_controller) {}
+  ~FakeTabContainerController() override = default;
+
+  bool IsValidModelIndex(int index) const override {
+    return tab_strip_controller_->IsValidIndex(index);
+  }
+
+  int GetActiveIndex() const override {
+    return tab_strip_controller_->GetActiveIndex();
+  }
+
+  void OnDropIndexUpdate(int index, bool drop_before) override {
+    tab_strip_controller_->OnDropIndexUpdate(index, drop_before);
+  }
+
+  bool IsGroupCollapsed(const tab_groups::TabGroupId& group) const override {
+    return tab_strip_controller_->IsGroupCollapsed(group);
+  }
+
+  absl::optional<int> GetFirstTabInGroup(
+      const tab_groups::TabGroupId& group) const override {
+    return tab_strip_controller_->GetFirstTabInGroup(group);
+  }
+
+  gfx::Range ListTabsInGroup(
+      const tab_groups::TabGroupId& group) const override {
+    return tab_strip_controller_->ListTabsInGroup(group);
+  }
+
+  bool CanExtendDragHandle() const override {
+    return !tab_strip_controller_->IsFrameCondensed() &&
+           !tab_strip_controller_->EverHasVisibleBackgroundTabShapes();
+  }
+
+ private:
+  raw_ptr<TabStripController> tab_strip_controller_;
+};
 }  // namespace
 
 class TabContainerTest : public ChromeViewsTestBase {
@@ -58,6 +99,8 @@
     ChromeViewsTestBase::SetUp();
 
     tab_strip_controller_ = std::make_unique<FakeBaseTabStripController>();
+    tab_container_controller_ = std::make_unique<FakeTabContainerController>(
+        tab_strip_controller_.get());
     tab_slot_controller_ =
         std::make_unique<FakeTabSlotController>(tab_strip_controller_.get());
 
@@ -65,7 +108,7 @@
         std::make_unique<FakeTabDragContext>();
     std::unique_ptr<TabContainer> tab_container =
         std::make_unique<TabContainerImpl>(
-            tab_strip_controller_.get(), nullptr /*hover_card_controller*/,
+            tab_container_controller_.get(), nullptr /*hover_card_controller*/,
             drag_context.get(), tab_slot_controller_.get(),
             nullptr /*scroll_contents_view*/);
     tab_container->SetAvailableWidthCallback(base::BindRepeating(
@@ -87,6 +130,7 @@
     tab_container_ = nullptr;
     widget_.reset();
     tab_slot_controller_.reset();
+    tab_container_controller_.reset();
     tab_strip_controller_.reset();
 
     ChromeViewsTestBase::TearDown();
@@ -245,6 +289,7 @@
   }
 
   std::unique_ptr<FakeBaseTabStripController> tab_strip_controller_;
+  std::unique_ptr<FakeTabContainerController> tab_container_controller_;
   std::unique_ptr<FakeTabSlotController> tab_slot_controller_;
   raw_ptr<TabDragContextBase> drag_context_;
   raw_ptr<TabContainer> tab_container_;
diff --git a/chrome/browser/ui/views/tabs/tab_slot_controller.h b/chrome/browser/ui/views/tabs/tab_slot_controller.h
index f8841b7..0daeedd 100644
--- a/chrome/browser/ui/views/tabs/tab_slot_controller.h
+++ b/chrome/browser/ui/views/tabs/tab_slot_controller.h
@@ -226,6 +226,9 @@
 
   // Returns the |group| collapsed state. Returns false if the group does not
   // exist or is not collapsed.
+  // NOTE: This method signature is duplicated in TabContainerController; the
+  // methods are intended to have equivalent semantics so they can share an
+  // implementation.
   virtual bool IsGroupCollapsed(const tab_groups::TabGroupId& group) const = 0;
 
   // Returns the actual painted color of the given |group|, which depends on the
diff --git a/chrome/browser/ui/views/tabs/tab_strip.cc b/chrome/browser/ui/views/tabs/tab_strip.cc
index 6075a70..0d5eb2f59 100644
--- a/chrome/browser/ui/views/tabs/tab_strip.cc
+++ b/chrome/browser/ui/views/tabs/tab_strip.cc
@@ -889,7 +889,7 @@
       hover_card_controller_(std::make_unique<TabHoverCardController>(this)),
       drag_context_(AddChildView(std::make_unique<TabDragContextImpl>(this))),
       tab_container_(AddChildViewAt(
-          std::make_unique<TabContainerImpl>(controller_.get(),
+          std::make_unique<TabContainerImpl>(this,
                                              hover_card_controller_.get(),
                                              drag_context_.get(),
                                              this,
@@ -1306,10 +1306,6 @@
   tab_at(model_index)->SetTabNeedsAttention(attention);
 }
 
-int TabStrip::GetActiveIndex() const {
-  return controller_->GetActiveIndex();
-}
-
 int TabStrip::GetModelIndexOf(const TabSlotView* view) const {
   return tab_container_->GetModelIndexOf(view);
 }
@@ -1322,10 +1318,6 @@
   return controller_->GetCount();
 }
 
-bool TabStrip::IsValidModelIndex(int model_index) const {
-  return controller_->IsValidIndex(model_index);
-}
-
 TabDragContext* TabStrip::GetDragContext() {
   return drag_context_.get();
 }
@@ -1367,6 +1359,37 @@
   return TabDragController::IsSystemDragAndDropSessionRunning();
 }
 
+bool TabStrip::IsValidModelIndex(int index) const {
+  return controller_->IsValidIndex(index);
+}
+
+int TabStrip::GetActiveIndex() const {
+  return controller_->GetActiveIndex();
+}
+
+void TabStrip::OnDropIndexUpdate(int index, bool drop_before) {
+  controller_->OnDropIndexUpdate(index, drop_before);
+}
+
+absl::optional<int> TabStrip::GetFirstTabInGroup(
+    const tab_groups::TabGroupId& group) const {
+  return controller_->GetFirstTabInGroup(group);
+}
+
+gfx::Range TabStrip::ListTabsInGroup(
+    const tab_groups::TabGroupId& group) const {
+  return controller_->ListTabsInGroup(group);
+}
+
+bool TabStrip::CanExtendDragHandle() const {
+  return !controller_->IsFrameCondensed() &&
+         !controller_->EverHasVisibleBackgroundTabShapes();
+}
+
+bool TabStrip::IsGroupCollapsed(const tab_groups::TabGroupId& group) const {
+  return controller_->IsGroupCollapsed(group);
+}
+
 const ui::ListSelectionModel& TabStrip::GetSelectionModel() const {
   return controller_->GetSelectionModel();
 }
@@ -1762,10 +1785,6 @@
   return controller_->GetGroupColorId(group);
 }
 
-bool TabStrip::IsGroupCollapsed(const tab_groups::TabGroupId& group) const {
-  return controller_->IsGroupCollapsed(group);
-}
-
 SkColor TabStrip::GetPaintedGroupColor(
     const tab_groups::TabGroupColorId& color_id) const {
   return GetColorProvider()->GetColor(
diff --git a/chrome/browser/ui/views/tabs/tab_strip.h b/chrome/browser/ui/views/tabs/tab_strip.h
index 4c13b305..b081a73d 100644
--- a/chrome/browser/ui/views/tabs/tab_strip.h
+++ b/chrome/browser/ui/views/tabs/tab_strip.h
@@ -23,6 +23,7 @@
 #include "chrome/browser/ui/views/frame/browser_root_view.h"
 #include "chrome/browser/ui/views/tabs/tab.h"
 #include "chrome/browser/ui/views/tabs/tab_container.h"
+#include "chrome/browser/ui/views/tabs/tab_container_controller.h"
 #include "chrome/browser/ui/views/tabs/tab_drag_context.h"
 #include "chrome/browser/ui/views/tabs/tab_group_header.h"
 #include "chrome/browser/ui/views/tabs/tab_group_views.h"
@@ -69,6 +70,7 @@
 class TabStrip : public views::View,
                  public views::ViewObserver,
                  public views::WidgetObserver,
+                 public TabContainerController,
                  public TabSlotController,
                  public BrowserRootView::DropTarget {
  public:
@@ -193,9 +195,6 @@
     return tab_container_->GetGroupViews().at(id).get()->header();
   }
 
-  // Returns the active index, or kNoTab if no tab is active.
-  int GetActiveIndex() const;
-
   // Returns the index of the specified view in the model coordinate system, or
   // -1 if view is closing or not a tab.
   int GetModelIndexOf(const TabSlotView* view) const;
@@ -206,9 +205,6 @@
   // Cover method for TabStripController::GetCount.
   int GetModelCount() const;
 
-  // Cover method for TabStripController::IsValidIndex.
-  bool IsValidModelIndex(int model_index) const;
-
   TabStripController* controller() const { return controller_.get(); }
 
   TabDragContext* GetDragContext();
@@ -244,6 +240,19 @@
   // on drop.
   bool WantsToReceiveAllDragEvents() const;
 
+  // TabContainerController:
+  bool IsValidModelIndex(int index) const override;
+  int GetActiveIndex() const override;
+  void OnDropIndexUpdate(int index, bool drop_before) override;
+  absl::optional<int> GetFirstTabInGroup(
+      const tab_groups::TabGroupId& group) const override;
+  gfx::Range ListTabsInGroup(
+      const tab_groups::TabGroupId& group) const override;
+  bool CanExtendDragHandle() const override;
+
+  // TabContainerController AND TabSlotController:
+  bool IsGroupCollapsed(const tab_groups::TabGroupId& group) const override;
+
   // TabSlotController:
   const ui::ListSelectionModel& GetSelectionModel() const override;
   Tab* tab_at(int index) const override;
@@ -306,7 +315,6 @@
       const tab_groups::TabGroupId& group) const override;
   tab_groups::TabGroupColorId GetGroupColorId(
       const tab_groups::TabGroupId& group) const override;
-  bool IsGroupCollapsed(const tab_groups::TabGroupId& group) const override;
   SkColor GetPaintedGroupColor(
       const tab_groups::TabGroupColorId& color_id) const override;
   void ShiftGroupLeft(const tab_groups::TabGroupId& group) override;
diff --git a/chrome/browser/ui/views/tabs/tab_strip_layout_helper.cc b/chrome/browser/ui/views/tabs/tab_strip_layout_helper.cc
index ba5e4cb..b0d6f3d 100644
--- a/chrome/browser/ui/views/tabs/tab_strip_layout_helper.cc
+++ b/chrome/browser/ui/views/tabs/tab_strip_layout_helper.cc
@@ -18,9 +18,9 @@
 #include "chrome/browser/ui/views/tabs/tab_group_header.h"
 #include "chrome/browser/ui/views/tabs/tab_layout_state.h"
 #include "chrome/browser/ui/views/tabs/tab_slot_view.h"
-#include "chrome/browser/ui/views/tabs/tab_strip_controller.h"
 #include "chrome/browser/ui/views/tabs/tab_strip_layout_types.h"
 #include "chrome/browser/ui/views/tabs/tab_style_views.h"
+#include "tab_container_controller.h"
 #include "ui/gfx/range/range.h"
 #include "ui/views/view_model.h"
 
@@ -65,8 +65,9 @@
   TabLayoutState state;
 };
 
-TabStripLayoutHelper::TabStripLayoutHelper(const TabStripController* controller,
-                                           GetTabsCallback get_tabs_callback)
+TabStripLayoutHelper::TabStripLayoutHelper(
+    const TabContainerController* controller,
+    GetTabsCallback get_tabs_callback)
     : controller_(controller),
       get_tabs_callback_(get_tabs_callback),
       active_tab_width_(TabStyle::GetStandardWidth()),
@@ -217,7 +218,7 @@
   views::ViewModelT<Tab>* tabs = get_tabs_callback_.Run();
   const int active_tab_model_index = controller_->GetActiveIndex();
   const int active_tab_slot_index =
-      controller_->IsValidIndex(active_tab_model_index)
+      controller_->IsValidModelIndex(active_tab_model_index)
           ? GetSlotIndexForExistingTab(active_tab_model_index)
           : TabStripModel::kNoTab;
 
@@ -248,7 +249,7 @@
 
   const int active_tab_model_index = controller_->GetActiveIndex();
   const int active_tab_slot_index =
-      controller_->IsValidIndex(active_tab_model_index)
+      controller_->IsValidModelIndex(active_tab_model_index)
           ? GetSlotIndexForExistingTab(active_tab_model_index)
           : TabStripModel::kNoTab;
   const int pinned_tab_count = GetPinnedTabCount();
diff --git a/chrome/browser/ui/views/tabs/tab_strip_layout_helper.h b/chrome/browser/ui/views/tabs/tab_strip_layout_helper.h
index 572bdb0..197a425a 100644
--- a/chrome/browser/ui/views/tabs/tab_strip_layout_helper.h
+++ b/chrome/browser/ui/views/tabs/tab_strip_layout_helper.h
@@ -21,7 +21,7 @@
 
 class Tab;
 class TabGroupHeader;
-class TabStripController;
+class TabContainerController;
 
 namespace tab_groups {
 class TabGroupId;
@@ -34,7 +34,7 @@
  public:
   using GetTabsCallback = base::RepeatingCallback<views::ViewModelT<Tab>*()>;
 
-  TabStripLayoutHelper(const TabStripController* controller,
+  TabStripLayoutHelper(const TabContainerController* controller,
                        GetTabsCallback get_tabs_callback);
   TabStripLayoutHelper(const TabStripLayoutHelper&) = delete;
   TabStripLayoutHelper& operator=(const TabStripLayoutHelper&) = delete;
@@ -153,8 +153,8 @@
   // True iff the slot at index |i| is a tab that is in a collapsed group.
   bool SlotIsCollapsedTab(int i) const;
 
-  // The owning tabstrip's controller.
-  const raw_ptr<const TabStripController> controller_;
+  // The owning TabContainer's controller.
+  const raw_ptr<const TabContainerController> controller_;
 
   // Callback to get the necessary View objects from the owning tabstrip.
   GetTabsCallback get_tabs_callback_;
diff --git a/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.cc b/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.cc
index fe53ac5..46dcbe4 100644
--- a/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.cc
+++ b/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.cc
@@ -72,8 +72,10 @@
 
 void SidePanelToolbarButton::ReadingListModelLoaded(
     const ReadingListModel* model) {
-  if (model->unseen_size())
+  if (model->unseen_size() &&
+      !base::FeatureList::IsEnabled(features::kUnifiedSidePanel)) {
     dot_indicator_->Show();
+  }
 }
 
 void SidePanelToolbarButton::ReadingListModelBeingDeleted(
@@ -86,6 +88,10 @@
 
 void SidePanelToolbarButton::ReadingListDidApplyChanges(
     ReadingListModel* model) {
+  // Unified side panel does not use the blue dot.
+  if (base::FeatureList::IsEnabled(features::kUnifiedSidePanel))
+    return;
+
   if (!side_panel_webview_ && reading_list_model_->unseen_size() > 0) {
     dot_indicator_->Show();
   } else {
diff --git a/chrome/browser/ui/views/toolbar/side_panel_toolbar_button_unittest.cc b/chrome/browser/ui/views/toolbar/side_panel_toolbar_button_unittest.cc
index 2e34114..a234695 100644
--- a/chrome/browser/ui/views/toolbar/side_panel_toolbar_button_unittest.cc
+++ b/chrome/browser/ui/views/toolbar/side_panel_toolbar_button_unittest.cc
@@ -45,6 +45,10 @@
 };
 
 TEST_F(SidePanelToolbarButtonTest, DotIndicatorVisibleWithUnreadItems) {
+  if (browser_view()->side_panel_coordinator()) {
+    GTEST_SKIP() << "The unified side panel doesn't use the dot indicator so "
+                    "this test shouldn't run";
+  }
   // Verify the dot indicator is seen when there is an unseen entry.
   model()->AddEntry(GURL("http://foo/1"), "Tab 1",
                     reading_list::EntrySource::ADDED_VIA_CURRENT_APP);
diff --git a/chrome/browser/ui/views/webid/account_selection_bubble_view.cc b/chrome/browser/ui/views/webid/account_selection_bubble_view.cc
index 79ccf94..b680082 100644
--- a/chrome/browser/ui/views/webid/account_selection_bubble_view.cc
+++ b/chrome/browser/ui/views/webid/account_selection_bubble_view.cc
@@ -237,6 +237,52 @@
   absl::optional<SkColor> brand_text_color_;
 };
 
+class AccountImageView : public views::ImageView {
+ public:
+  AccountImageView() = default;
+
+  AccountImageView(const AccountImageView&) = delete;
+  AccountImageView& operator=(const AccountImageView&) = delete;
+  ~AccountImageView() override = default;
+
+  // Fetch image and set it on AccountImageView.
+  void FetchImage(const content::IdentityRequestAccount& account,
+                  image_fetcher::ImageFetcher& image_fetcher) {
+    image_fetcher::ImageFetcherParams params(kTrafficAnnotation,
+                                             kImageFetcherUmaClient);
+
+    // OnImageFetched() is a member of AccountImageView so that the callback
+    // is cancelled in the case that AccountImageView is destroyed prior to
+    // the callback returning.
+    image_fetcher.FetchImage(account.picture,
+                             base::BindOnce(&AccountImageView::OnImageFetched,
+                                            weak_ptr_factory_.GetWeakPtr(),
+                                            base::UTF8ToUTF16(account.name)),
+                             std::move(params));
+  }
+
+ private:
+  void OnImageFetched(const std::u16string& account_name,
+                      const gfx::Image& image,
+                      const image_fetcher::RequestMetadata& metadata) {
+    gfx::ImageSkia avatar;
+    if (image.IsEmpty()) {
+      std::u16string letter = account_name;
+      if (letter.length() > 0)
+        letter = base::i18n::ToUpper(account_name.substr(0, 1));
+      avatar = gfx::CanvasImageSource::MakeImageSkia<
+          LetterCircleCroppedImageSkiaSource>(letter, kDesiredAvatarSize);
+    } else {
+      avatar =
+          gfx::CanvasImageSource::MakeImageSkia<CircleCroppedImageSkiaSource>(
+              image.AsImageSkia(), absl::nullopt, kDesiredAvatarSize);
+    }
+    SetImage(avatar);
+  }
+
+  base::WeakPtrFactory<AccountImageView> weak_ptr_factory_{this};
+};
+
 void SendAccessibilityEvent(views::Widget* widget,
                             std::u16string announcement) {
   if (!widget)
@@ -571,22 +617,14 @@
 std::unique_ptr<views::View> AccountSelectionBubbleView::CreateAccountRow(
     const content::IdentityRequestAccount& account,
     bool should_hover) {
-  auto image_view = std::make_unique<views::ImageView>();
+  auto image_view = std::make_unique<AccountImageView>();
   image_view->SetImageSize({kDesiredAvatarSize, kDesiredAvatarSize});
-  image_fetcher::ImageFetcherParams params(kTrafficAnnotation,
-                                           kImageFetcherUmaClient);
-  std::u16string account_name16 = base::UTF8ToUTF16(account.name);
-  image_fetcher_->FetchImage(
-      account.picture,
-      base::BindOnce(&AccountSelectionBubbleView::OnAccountImageFetched,
-                     weak_ptr_factory_.GetWeakPtr(), image_view.get(),
-                     account_name16),
-      std::move(params));
+  image_view->FetchImage(account, *image_fetcher_);
   if (should_hover) {
     auto row = std::make_unique<HoverButton>(
         base::BindRepeating(&AccountSelectionBubbleView::OnSingleAccountPicked,
                             weak_ptr_factory_.GetWeakPtr(), account),
-        std::move(image_view), account_name16,
+        std::move(image_view), base::UTF8ToUTF16(account.name),
         base::UTF8ToUTF16(account.email));
     row->SetBorder(views::CreateEmptyBorder(
         gfx::Insets::VH(/*vertical=*/0, /*horizontal=*/kLeftRightPadding)));
@@ -621,26 +659,6 @@
   return row;
 }
 
-void AccountSelectionBubbleView::OnAccountImageFetched(
-    views::ImageView* image_view,
-    const std::u16string& account_name,
-    const gfx::Image& image,
-    const image_fetcher::RequestMetadata& metadata) {
-  gfx::ImageSkia avatar;
-  if (image.IsEmpty()) {
-    std::u16string letter = account_name;
-    if (letter.length() > 0)
-      letter = base::i18n::ToUpper(account_name.substr(0, 1));
-    avatar = gfx::CanvasImageSource::MakeImageSkia<
-        LetterCircleCroppedImageSkiaSource>(letter, kDesiredAvatarSize);
-  } else {
-    avatar =
-        gfx::CanvasImageSource::MakeImageSkia<CircleCroppedImageSkiaSource>(
-            image.AsImageSkia(), absl::nullopt, kDesiredAvatarSize);
-  }
-  image_view->SetImage(avatar);
-}
-
 void AccountSelectionBubbleView::OnBrandImageFetched(
     const gfx::Image& image,
     const image_fetcher::RequestMetadata& metadata) {
diff --git a/chrome/browser/ui/views/webid/account_selection_bubble_view.h b/chrome/browser/ui/views/webid/account_selection_bubble_view.h
index be537b89..d750ec8 100644
--- a/chrome/browser/ui/views/webid/account_selection_bubble_view.h
+++ b/chrome/browser/ui/views/webid/account_selection_bubble_view.h
@@ -75,12 +75,6 @@
       const content::IdentityRequestAccount& account,
       bool should_hover);
 
-  // Updates the image for the account in the corresponding ImageView.
-  void OnAccountImageFetched(views::ImageView* image_view,
-                             const std::u16string& account_name,
-                             const gfx::Image& image,
-                             const image_fetcher::RequestMetadata& metadata);
-
   // Called when the brand icon image has beend downloaded.
   void OnBrandImageFetched(const gfx::Image& image,
                            const image_fetcher::RequestMetadata& metadata);
diff --git a/chrome/browser/ui/webui/BUILD.gn b/chrome/browser/ui/webui/BUILD.gn
index 2f2ac27..683e979d 100644
--- a/chrome/browser/ui/webui/BUILD.gn
+++ b/chrome/browser/ui/webui/BUILD.gn
@@ -60,6 +60,7 @@
     if (!is_official_build) {
       deps += [
         "//ash/webui/demo_mode_app_ui",
+        "//ash/webui/facial_ml_app_ui",
         "//ash/webui/sample_system_web_app_ui",
       ]
     }
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs_chromeos.cc b/chrome/browser/ui/webui/chrome_web_ui_configs_chromeos.cc
index f03a37a..b3b591f 100644
--- a/chrome/browser/ui/webui/chrome_web_ui_configs_chromeos.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs_chromeos.cc
@@ -10,6 +10,7 @@
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 #include "chrome/browser/ui/webui/chromeos/notification_tester/notification_tester_ui.h"
 #if !defined(OFFICIAL_BUILD)
+#include "ash/webui/facial_ml_app_ui/facial_ml_app_ui.h"
 #include "ash/webui/sample_system_web_app_ui/sample_system_web_app_ui.h"
 #endif  // !defined(OFFICIAL_BUILD)
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -21,6 +22,7 @@
   auto& map = content::WebUIConfigMap::GetInstance();
   map.AddWebUIConfig(std::make_unique<chromeos::NotificationTesterUIConfig>());
 #if !defined(OFFICIAL_BUILD)
+  map.AddWebUIConfig(std::make_unique<ash::FacialMLAppUIConfig>());
   map.AddWebUIConfig(std::make_unique<ash::SampleSystemWebAppUIConfig>());
 #endif  // !defined(OFFICIAL_BUILD)
 }
diff --git a/chrome/browser/ui/webui/net_export_ui.cc b/chrome/browser/ui/webui/net_export_ui.cc
index 5ecdd50f..24e847c5 100644
--- a/chrome/browser/ui/webui/net_export_ui.cc
+++ b/chrome/browser/ui/webui/net_export_ui.cc
@@ -111,7 +111,7 @@
   void FileSelectionCanceled(void* params) override;
 
   // net_log::NetExportFileWriter::StateObserver implementation.
-  void OnNewState(const base::DictionaryValue& state) override;
+  void OnNewState(const base::Value::Dict& state) override;
 
  private:
   // Send NetLog data via email.
@@ -136,7 +136,7 @@
 
   // Fires net-log-info-changed event to update the JavaScript UI in the
   // renderer.
-  void NotifyUIWithState(std::unique_ptr<base::DictionaryValue> state);
+  void NotifyUIWithState(const base::Value::Dict& state);
 
   // Opens the SelectFileDialog UI with the default path to save a
   // NetLog file.
@@ -292,8 +292,8 @@
   select_file_dialog_ = nullptr;
 }
 
-void NetExportMessageHandler::OnNewState(const base::DictionaryValue& state) {
-  NotifyUIWithState(state.CreateDeepCopy());
+void NetExportMessageHandler::OnNewState(const base::Value::Dict& state) {
+  NotifyUIWithState(state);
 }
 
 // static
@@ -347,10 +347,10 @@
 }
 
 void NetExportMessageHandler::NotifyUIWithState(
-    std::unique_ptr<base::DictionaryValue> state) {
+    const base::Value::Dict& state) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   DCHECK(web_ui());
-  FireWebUIListener(net_log::kNetLogInfoChangedEvent, *state);
+  FireWebUIListener(net_log::kNetLogInfoChangedEvent, state);
 }
 
 void NetExportMessageHandler::ShowSelectFileDialog(
diff --git a/chrome/browser/ui/webui/settings/autofill_assistant_handler.cc b/chrome/browser/ui/webui/settings/autofill_assistant_handler.cc
new file mode 100644
index 0000000..f8cd83f
--- /dev/null
+++ b/chrome/browser/ui/webui/settings/autofill_assistant_handler.cc
@@ -0,0 +1,81 @@
+// Copyright 2022 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/settings/autofill_assistant_handler.h"
+
+#include <string>
+#include <vector>
+
+#include "base/bind.h"
+#include "base/containers/flat_map.h"
+#include "base/memory/weak_ptr.h"
+#include "base/values.h"
+#include "chrome/browser/autofill_assistant/password_change/apc_client.h"
+#include "ui/base/l10n/l10n_util.h"
+
+namespace settings {
+
+AutofillAssistantHandler::AutofillAssistantHandler(
+    const std::vector<int>& accepted_revoke_grd_ids) {
+  for (int id : accepted_revoke_grd_ids) {
+    string_to_revoke_grd_id_map_[l10n_util::GetStringUTF8(id)] = id;
+  }
+}
+
+AutofillAssistantHandler::~AutofillAssistantHandler() = default;
+
+void AutofillAssistantHandler::RegisterMessages() {
+  web_ui()->RegisterMessageCallback(
+      "PromptForAutofillAssistantConsent",
+      base::BindRepeating(&AutofillAssistantHandler::HandlePromptForConsent,
+                          base::Unretained(this)));
+  web_ui()->RegisterMessageCallback(
+      "RevokeAutofillAssistantConsent",
+      base::BindRepeating(&AutofillAssistantHandler::HandleRevokeConsent,
+                          base::Unretained(this)));
+}
+
+void AutofillAssistantHandler::OnJavascriptAllowed() {}
+
+void AutofillAssistantHandler::OnJavascriptDisallowed() {
+  // Ensures that there are no attempts to resolve a callback after Javascript
+  // has been disabled.
+  weak_ptr_factory_.InvalidateWeakPtrs();
+}
+
+void AutofillAssistantHandler::HandlePromptForConsent(
+    const base::Value::List& args) {
+  CHECK(!args.empty());
+  AllowJavascript();
+  base::Value callback_id = args.front().Clone();
+  GetApcClient()->PromptForConsent(
+      base::BindOnce(&AutofillAssistantHandler::OnPromptResultReceived,
+                     weak_ptr_factory_.GetWeakPtr(), std::move(callback_id)));
+}
+
+void AutofillAssistantHandler::OnPromptResultReceived(
+    const base::Value& callback_id,
+    bool success) {
+  ResolveJavascriptCallback(callback_id, base::Value(success));
+}
+
+void AutofillAssistantHandler::HandleRevokeConsent(
+    const base::Value::List& args) {
+  std::vector<int> description_grd_ids;
+
+  for (const base::Value& element : args) {
+    DCHECK(element.is_string());
+
+    auto grd_id = string_to_revoke_grd_id_map_.find(element.GetString());
+    DCHECK(grd_id != string_to_revoke_grd_id_map_.end());
+    description_grd_ids.push_back(grd_id->second);
+  }
+  GetApcClient()->RevokeConsent(description_grd_ids);
+}
+
+ApcClient* AutofillAssistantHandler::GetApcClient() {
+  return ApcClient::GetOrCreateForWebContents(web_ui()->GetWebContents());
+}
+
+}  // namespace settings
diff --git a/chrome/browser/ui/webui/settings/autofill_assistant_handler.h b/chrome/browser/ui/webui/settings/autofill_assistant_handler.h
new file mode 100644
index 0000000..58e9b01a
--- /dev/null
+++ b/chrome/browser/ui/webui/settings/autofill_assistant_handler.h
@@ -0,0 +1,65 @@
+// Copyright 2022 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_SETTINGS_AUTOFILL_ASSISTANT_HANDLER_H_
+#define CHROME_BROWSER_UI_WEBUI_SETTINGS_AUTOFILL_ASSISTANT_HANDLER_H_
+
+#include <string>
+#include <vector>
+
+#include "base/containers/flat_map.h"
+#include "base/memory/weak_ptr.h"
+#include "base/values.h"
+#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
+
+class ApcClient;
+
+namespace settings {
+
+// A custom WebUI handler for the personalization section in settings. It
+// currently handles consent requests for Autofill Assistant.
+class AutofillAssistantHandler : public SettingsPageUIHandler {
+ public:
+  // Constructs a personalization handler. `accepted_revoke_grd_ids` are
+  // resource ids that are permitted to describe revoking consent.
+  explicit AutofillAssistantHandler(
+      const std::vector<int>& accepted_revoke_grd_ids);
+
+  AutofillAssistantHandler(const AutofillAssistantHandler&) = delete;
+  AutofillAssistantHandler& operator=(const AutofillAssistantHandler&) = delete;
+
+  ~AutofillAssistantHandler() override;
+
+  // SettingsPageUIHandler:
+  void RegisterMessages() override;
+  void OnJavascriptAllowed() override;
+  void OnJavascriptDisallowed() override;
+
+ private:
+  // Shows the onboarding prompt for Autofill Assistant.
+  void HandlePromptForConsent(const base::Value::List& args);
+
+  // Resolves a Javascript callback (corresponding to the promise returned by
+  // `PromptForConsent()`) with a boolean parameter that indicates whether the
+  // prompt was accepted.
+  void OnPromptResultReceived(const base::Value& callback_id, bool success);
+
+  // Handles the request to revoke consent for Autofill Assistant. `args`
+  // is expected to be the set of strings contained in the UI element shown
+  // to the user.
+  void HandleRevokeConsent(const base::Value::List& args);
+
+  // Returns the `ApcClient` associated with this `WebContents`.
+  ApcClient* GetApcClient();
+
+  // A map of permitted strings from the consent revokation dialog to their
+  // resource ids.
+  base::flat_map<std::string, int> string_to_revoke_grd_id_map_;
+
+  base::WeakPtrFactory<AutofillAssistantHandler> weak_ptr_factory_{this};
+};
+
+}  // namespace settings
+
+#endif  // CHROME_BROWSER_UI_WEBUI_SETTINGS_AUTOFILL_ASSISTANT_HANDLER_H_
diff --git a/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc b/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
index c2baa56c..5b99d9a 100644
--- a/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
@@ -242,15 +242,15 @@
     ui_languages.insert(language::SplitIntoMainAndTail(enabled_language).first);
   }
 
-  base::Value locales_list(base::Value::Type::LIST);
+  base::Value::List locales_list;
   for (auto& locale : locales) {
-    base::Value option(base::Value::Type::DICTIONARY);
-    option.SetKey("value", base::Value(locale.first));
-    option.SetKey("name",
-                  base::Value(l10n_util::GetDisplayNameForLocale(
-                      locale.first, application_locale, /*is_for_ui=*/true)));
-    option.SetKey("worksOffline", base::Value(locale.second.works_offline));
-    option.SetKey("installed", base::Value(locale.second.installed));
+    base::Value::Dict option;
+    option.Set("value", locale.first);
+    option.Set("name",
+               l10n_util::GetDisplayNameForLocale(
+                   locale.first, application_locale, /*is_for_ui=*/true));
+    option.Set("worksOffline", locale.second.works_offline);
+    option.Set("installed", locale.second.installed);
 
     // We can recommend languages that match the current application
     // locale, IME languages or enabled preferred languages.
@@ -258,7 +258,7 @@
         language::SplitIntoMainAndTail(locale.first);
     bool is_recommended = base::Contains(ui_languages, lang_and_locale.first);
 
-    option.SetKey("recommended", base::Value(is_recommended));
+    option.Set("recommended", is_recommended);
     locales_list.Append(std::move(option));
   }
 
diff --git a/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.cc b/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.cc
index 33bd697..05ba471 100644
--- a/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.cc
@@ -294,28 +294,27 @@
 
 void AmbientModeHandler::SendTopicSource() {
   DCHECK(settings_);
-  base::Value topic_source(base::Value::Type::DICTIONARY);
-  topic_source.SetKey("hasGooglePhotosAlbums",
-                      base::Value(!personal_albums_.albums.empty()));
-  topic_source.SetKey("topicSource",
-                      base::Value(static_cast<int>(settings_->topic_source)));
-  FireWebUIListener("topic-source-changed",
-                    base::Value(std::move(topic_source)));
+  base::Value::Dict topic_source;
+  topic_source.Set("hasGooglePhotosAlbums",
+                   base::Value(!personal_albums_.albums.empty()));
+  topic_source.Set("topicSource",
+                   base::Value(static_cast<int>(settings_->topic_source)));
+  FireWebUIListener("topic-source-changed", topic_source);
 }
 
 void AmbientModeHandler::SendAlbums(ash::AmbientModeTopicSource topic_source) {
   DCHECK(settings_);
 
-  base::Value dictionary(base::Value::Type::DICTIONARY);
-  base::Value albums(base::Value::Type::LIST);
+  base::Value::Dict dictionary;
+  base::Value::List albums;
   switch (topic_source) {
     case ash::AmbientModeTopicSource::kGooglePhotos:
       for (const auto& album : personal_albums_.albums) {
-        base::Value value(base::Value::Type::DICTIONARY);
-        value.SetKey("albumId", base::Value(album.album_id));
-        value.SetKey("checked", base::Value(album.selected));
-        value.SetKey("description", base::Value(GetAlbumDescription(album)));
-        value.SetKey("title", base::Value(album.album_name));
+        base::Value::Dict value;
+        value.Set("albumId", album.album_id);
+        value.Set("checked", album.selected);
+        value.Set("description", GetAlbumDescription(album));
+        value.Set("title", album.album_name);
         albums.Append(std::move(value));
       }
       break;
@@ -323,39 +322,39 @@
       for (const auto& setting : settings_->art_settings) {
         if (!setting.visible)
           continue;
-        base::Value value(base::Value::Type::DICTIONARY);
-        value.SetKey("albumId", base::Value(setting.album_id));
-        value.SetKey("checked", base::Value(setting.enabled));
-        value.SetKey("description", base::Value(setting.description));
-        value.SetKey("title", base::Value(setting.title));
+        base::Value::Dict value;
+        value.Set("albumId", setting.album_id);
+        value.Set("checked", setting.enabled);
+        value.Set("description", setting.description);
+        value.Set("title", setting.title);
         albums.Append(std::move(value));
       }
       break;
   }
 
-  dictionary.SetKey("topicSource", base::Value(static_cast<int>(topic_source)));
-  dictionary.SetKey("selectedTopicSource",
-                    base::Value(static_cast<int>(settings_->topic_source)));
-  dictionary.SetKey("albums", std::move(albums));
-  FireWebUIListener("albums-changed", std::move(dictionary));
+  dictionary.Set("topicSource", static_cast<int>(topic_source));
+  dictionary.Set("selectedTopicSource",
+                 static_cast<int>(settings_->topic_source));
+  dictionary.Set("albums", std::move(albums));
+  FireWebUIListener("albums-changed", dictionary);
 }
 
 void AmbientModeHandler::SendAlbumPreview(
     ash::AmbientModeTopicSource topic_source,
     const std::string& album_id,
     std::string&& png_data_url) {
-  base::Value album(base::Value::Type::DICTIONARY);
-  album.SetKey("albumId", base::Value(album_id));
-  album.SetKey("topicSource", base::Value(static_cast<int>(topic_source)));
-  album.SetKey("url", base::Value(png_data_url));
-  FireWebUIListener("album-preview-changed", std::move(album));
+  base::Value::Dict album;
+  album.Set("albumId", album_id);
+  album.Set("topicSource", static_cast<int>(topic_source));
+  album.Set("url", png_data_url);
+  FireWebUIListener("album-preview-changed", album);
 }
 
 void AmbientModeHandler::SendRecentHighlightsPreviews() {
   if (!FindPersonalAlbumById(ash::kAmbientModeRecentHighlightsAlbumId))
     return;
 
-  base::Value png_data_urls(base::Value::Type::LIST);
+  base::Value::List png_data_urls;
   for (const auto& image : recent_highlights_preview_images_) {
     if (image.isNull())
       continue;
@@ -363,17 +362,16 @@
     std::vector<unsigned char> encoded_image_bytes;
     EncodeImage(image, &encoded_image_bytes);
     if (!encoded_image_bytes.empty()) {
-      png_data_urls.Append(base::Value(webui::GetPngDataUrl(
-          &encoded_image_bytes.front(), encoded_image_bytes.size())));
+      png_data_urls.Append(webui::GetPngDataUrl(&encoded_image_bytes.front(),
+                                                encoded_image_bytes.size()));
     }
   }
 
-  base::Value album(base::Value::Type::DICTIONARY);
-  album.SetKey("albumId",
-               base::Value(ash::kAmbientModeRecentHighlightsAlbumId));
-  album.SetKey("topicSource", base::Value(static_cast<int>(
-                                  ash::AmbientModeTopicSource::kGooglePhotos)));
-  album.SetKey("recentHighlightsUrls", std::move(png_data_urls));
+  base::Value::Dict album;
+  album.Set("albumId", ash::kAmbientModeRecentHighlightsAlbumId);
+  album.Set("topicSource",
+            static_cast<int>(ash::AmbientModeTopicSource::kGooglePhotos));
+  album.Set("recentHighlightsUrls", std::move(png_data_urls));
   FireWebUIListener("album-preview-changed", std::move(album));
 }
 
diff --git a/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc b/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc
index 35b6841..268621c 100644
--- a/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc
@@ -5,7 +5,6 @@
 #include "chrome/browser/ui/webui/settings/chromeos/android_apps_handler.h"
 
 #include "base/bind.h"
-#include "base/values.h"
 #include "chrome/browser/apps/app_service/app_service_proxy.h"
 #include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
 #include "chrome/browser/apps/app_service/launch_utils.h"
@@ -81,17 +80,14 @@
   SendAndroidAppsInfo();
 }
 
-std::unique_ptr<base::DictionaryValue>
-AndroidAppsHandler::BuildAndroidAppsInfo() {
-  std::unique_ptr<base::DictionaryValue> info(new base::DictionaryValue);
-  info->SetBoolKey("playStoreEnabled",
-                   arc::IsArcPlayStoreEnabledForProfile(profile_));
+base::Value::Dict AndroidAppsHandler::BuildAndroidAppsInfo() {
+  base::Value::Dict info;
+  info.Set("playStoreEnabled", arc::IsArcPlayStoreEnabledForProfile(profile_));
   const ArcAppListPrefs* arc_apps_pref = ArcAppListPrefs::Get(profile_);
   // TODO(khmel): Inverstigate why in some browser tests
   // playStoreEnabled is true but arc_apps_pref is not set.
-  info->SetBoolKey(
-      "settingsAppAvailable",
-      arc_apps_pref && arc_apps_pref->IsRegistered(arc::kSettingsAppId));
+  info.Set("settingsAppAvailable",
+           arc_apps_pref && arc_apps_pref->IsRegistered(arc::kSettingsAppId));
   return info;
 }
 
@@ -102,8 +98,7 @@
 }
 
 void AndroidAppsHandler::SendAndroidAppsInfo() {
-  std::unique_ptr<base::DictionaryValue> info = BuildAndroidAppsInfo();
-  FireWebUIListener("android-apps-info-update", *info);
+  FireWebUIListener("android-apps-info-update", BuildAndroidAppsInfo());
 }
 
 void AndroidAppsHandler::ShowAndroidAppsSettings(
diff --git a/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.h b/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.h
index 4c9bcd1..5ad59cb 100644
--- a/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.h
+++ b/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.h
@@ -10,6 +10,7 @@
 
 #include "base/memory/weak_ptr.h"
 #include "base/scoped_observation.h"
+#include "base/values.h"
 #include "chrome/browser/apps/app_service/app_service_proxy_forward.h"
 #include "chrome/browser/ash/arc/session/arc_session_manager.h"
 #include "chrome/browser/ash/arc/session/arc_session_manager_observer.h"
@@ -18,10 +19,6 @@
 
 class Profile;
 
-namespace base {
-class DictionaryValue;
-}
-
 namespace chromeos {
 namespace settings {
 
@@ -53,7 +50,7 @@
   void OnArcPlayStoreEnabledChanged(bool enabled) override;
 
  private:
-  std::unique_ptr<base::DictionaryValue> BuildAndroidAppsInfo();
+  base::Value::Dict BuildAndroidAppsInfo();
   void HandleRequestAndroidAppsInfo(const base::Value::List& args);
   void HandleAppChanged(const std::string& app_id);
   void SendAndroidAppsInfo();
diff --git a/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc b/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc
index a80dad0c7..ddcb8821 100644
--- a/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc
@@ -140,24 +140,20 @@
                              !base::CommandLine::ForCurrentProcess()->HasSwitch(
                                  switches::kHasChromeOSKeyboard);
 
-  base::Value keyboard_params(base::Value::Type::DICTIONARY);
-  keyboard_params.SetKey("showCapsLock", base::Value(has_caps_lock));
-  keyboard_params.SetKey(
-      "showExternalMetaKey",
-      base::Value(keyboards_state.has_external_generic_keyboard));
-  keyboard_params.SetKey(
-      "showAppleCommandKey",
-      base::Value(keyboards_state.has_external_apple_keyboard));
+  base::Value::Dict keyboard_params;
+  keyboard_params.Set("showCapsLock", has_caps_lock);
+  keyboard_params.Set("showExternalMetaKey",
+                      keyboards_state.has_external_generic_keyboard);
+  keyboard_params.Set("showAppleCommandKey",
+                      keyboards_state.has_external_apple_keyboard);
   // An external (USB/BT) ChromeOS keyboard is treated similarly to an internal
   // ChromeOS keyboard. i.e. they are functionally the same.
-  keyboard_params.SetKey(
-      "hasLauncherKey",
-      base::Value(keyboards_state.has_launcher_key ||
-                  keyboards_state.has_external_chromeos_keyboard));
+  keyboard_params.Set("hasLauncherKey",
+                      keyboards_state.has_launcher_key ||
+                          keyboards_state.has_external_chromeos_keyboard);
 
   const bool show_assistant_key_settings = ui::DeviceKeyboardHasAssistantKey();
-  keyboard_params.SetKey("hasAssistantKey",
-                         base::Value(show_assistant_key_settings));
+  keyboard_params.Set("hasAssistantKey", show_assistant_key_settings);
 
   FireWebUIListener(kShowKeysChangedName, keyboard_params);
 }
diff --git a/chrome/browser/ui/webui/settings/chromeos/device_name_handler.cc b/chrome/browser/ui/webui/settings/chromeos/device_name_handler.cc
index 854e5b2..7932627 100644
--- a/chrome/browser/ui/webui/settings/chromeos/device_name_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/device_name_handler.cc
@@ -51,13 +51,13 @@
                           base::Unretained(this)));
 }
 
-base::Value DeviceNameHandler::GetDeviceNameMetadata() const {
-  base::Value metadata(base::Value::Type::DICTIONARY);
+base::Value::Dict DeviceNameHandler::GetDeviceNameMetadata() const {
+  base::Value::Dict metadata;
   DeviceNameStore::DeviceNameMetadata device_name_metadata =
       device_name_store_->GetDeviceNameMetadata();
-  metadata.SetStringKey(kMetadataFirstKey, device_name_metadata.device_name);
-  metadata.SetIntKey(kMetadataSecondKey,
-                     static_cast<int>(device_name_metadata.device_name_state));
+  metadata.Set(kMetadataFirstKey, device_name_metadata.device_name);
+  metadata.Set(kMetadataSecondKey,
+               static_cast<int>(device_name_metadata.device_name_state));
   return metadata;
 }
 
@@ -79,12 +79,12 @@
     const base::Value::List& args) {
   AllowJavascript();
   FireWebUIListener("settings.updateDeviceNameMetadata",
-                    base::Value(GetDeviceNameMetadata()));
+                    GetDeviceNameMetadata());
 }
 
 void DeviceNameHandler::OnDeviceNameMetadataChanged() {
   FireWebUIListener("settings.updateDeviceNameMetadata",
-                    base::Value(GetDeviceNameMetadata()));
+                    GetDeviceNameMetadata());
 }
 
 }  // namespace settings
diff --git a/chrome/browser/ui/webui/settings/chromeos/device_name_handler.h b/chrome/browser/ui/webui/settings/chromeos/device_name_handler.h
index c27d5f0..066a237 100644
--- a/chrome/browser/ui/webui/settings/chromeos/device_name_handler.h
+++ b/chrome/browser/ui/webui/settings/chromeos/device_name_handler.h
@@ -41,7 +41,7 @@
 
   explicit DeviceNameHandler(DeviceNameStore* device_name_store);
 
-  base::Value GetDeviceNameMetadata() const;
+  base::Value::Dict GetDeviceNameMetadata() const;
 
   DeviceNameStore* device_name_store_;
 
diff --git a/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc b/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc
index 55ee8bb4..70b4b88 100644
--- a/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc
@@ -116,29 +116,28 @@
 PowerHandler::TestAPI::~TestAPI() = default;
 
 void PowerHandler::TestAPI::RequestPowerManagementSettings() {
-  base::Value args(base::Value::Type::LIST);
-  handler_->HandleRequestPowerManagementSettings(args.GetList());
+  handler_->HandleRequestPowerManagementSettings(base::Value::List());
 }
 
 void PowerHandler::TestAPI::SetIdleBehavior(IdleBehavior behavior,
                                             bool when_on_ac) {
-  base::Value args(base::Value::Type::LIST);
+  base::Value::List args;
   args.Append(static_cast<int>(behavior));
   args.Append(when_on_ac);
-  handler_->HandleSetIdleBehavior(args.GetList());
+  handler_->HandleSetIdleBehavior(args);
 }
 
 void PowerHandler::TestAPI::SetLidClosedBehavior(
     PowerPolicyController::Action behavior) {
-  base::Value args(base::Value::Type::LIST);
+  base::Value::List args;
   args.Append(behavior);
-  handler_->HandleSetLidClosedBehavior(args.GetList());
+  handler_->HandleSetLidClosedBehavior(args);
 }
 
 void PowerHandler::TestAPI::SetAdaptiveCharging(bool enabled) {
-  base::Value args(base::Value::Type::LIST);
+  base::Value::List args;
   args.Append(enabled);
-  handler_->HandleSetAdaptiveCharging(args.GetList());
+  handler_->HandleSetAdaptiveCharging(args);
 }
 
 PowerHandler::PowerHandler(PrefService* prefs) : prefs_(prefs) {}
@@ -346,15 +345,15 @@
                                              base::NumberToString16(percent));
   }
 
-  base::DictionaryValue battery_dict;
-  battery_dict.SetBoolKey(
+  base::Value::Dict battery_dict;
+  battery_dict.Set(
       "present",
       proto->battery_state() !=
           power_manager::PowerSupplyProperties_BatteryState_NOT_PRESENT);
-  battery_dict.SetBoolKey("charging", charging);
-  battery_dict.SetBoolKey("calculating", calculating);
-  battery_dict.SetIntKey("percent", percent);
-  battery_dict.SetStringKey("statusText", status_text);
+  battery_dict.Set("charging", charging);
+  battery_dict.Set("calculating", calculating);
+  battery_dict.Set("percent", percent);
+  battery_dict.Set("statusText", status_text);
 
   FireWebUIListener("battery-status-changed", battery_dict);
 }
@@ -375,7 +374,7 @@
   }
 
   FireWebUIListener(
-      "power-sources-changed", base::Value(std::move(sources_list)),
+      "power-sources-changed", sources_list,
       base::Value(proto->external_power_source_id()),
       base::Value(proto->external_power() ==
                   power_manager::PowerSupplyProperties_ExternalPower_USB));
@@ -407,26 +406,25 @@
     return;
   }
 
-  base::DictionaryValue dict;
-  base::Value* list = dict.SetKey(kPossibleAcIdleBehaviorsKey,
-                                  base::Value(base::Value::Type::LIST));
+  base::Value::Dict dict;
+  base::Value* list =
+      dict.Set(kPossibleAcIdleBehaviorsKey, base::Value::List());
   for (auto idle_behavior : ac_idle_info.possible_behaviors)
     list->Append(static_cast<int>(idle_behavior));
 
-  list = dict.SetKey(kPossibleBatteryIdleBehaviorsKey,
-                     base::Value(base::Value::Type::LIST));
+  list = dict.Set(kPossibleBatteryIdleBehaviorsKey, base::Value::List());
   for (auto idle_behavior : battery_idle_info.possible_behaviors)
     list->Append(static_cast<int>(idle_behavior));
-  dict.SetIntKey(kCurrentAcIdleBehaviorKey,
-                 static_cast<int>(ac_idle_info.current_behavior));
-  dict.SetIntKey(kCurrentBatteryIdleBehaviorKey,
-                 static_cast<int>(battery_idle_info.current_behavior));
-  dict.SetIntKey(kLidClosedBehaviorKey, lid_closed_behavior);
-  dict.SetBoolKey(kAcIdleManagedKey, ac_idle_info.is_managed);
-  dict.SetBoolKey(kBatteryIdleManagedKey, battery_idle_info.is_managed);
-  dict.SetBoolKey(kLidClosedControlledKey, lid_closed_controlled);
-  dict.SetBoolKey(kHasLidKey, has_lid);
-  dict.SetBoolKey(kAdaptiveChargingKey, adaptive_charging);
+  dict.Set(kCurrentAcIdleBehaviorKey,
+           static_cast<int>(ac_idle_info.current_behavior));
+  dict.Set(kCurrentBatteryIdleBehaviorKey,
+           static_cast<int>(battery_idle_info.current_behavior));
+  dict.Set(kLidClosedBehaviorKey, lid_closed_behavior);
+  dict.Set(kAcIdleManagedKey, ac_idle_info.is_managed);
+  dict.Set(kBatteryIdleManagedKey, battery_idle_info.is_managed);
+  dict.Set(kLidClosedControlledKey, lid_closed_controlled);
+  dict.Set(kHasLidKey, has_lid);
+  dict.Set(kAdaptiveChargingKey, adaptive_charging);
   FireWebUIListener(kPowerManagementSettingsChangedName, dict);
 
   last_ac_idle_info_ = ac_idle_info;
diff --git a/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc b/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc
index ad5425f..ef652dd 100644
--- a/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc
@@ -199,7 +199,7 @@
 }
 
 void StorageHandler::UpdateExternalStorages() {
-  base::Value devices(base::Value::Type::LIST);
+  base::Value::List devices;
   for (const auto& itr : DiskMountManager::GetInstance()->mount_points()) {
     const DiskMountManager::MountPointInfo& mount_info = itr.second;
     if (!IsEligibleForAndroidStorage(mount_info.source_path))
@@ -219,9 +219,9 @@
       // Files app. crbug.com/1002535.
       label = base::FilePath(mount_info.mount_path).BaseName().AsUTF8Unsafe();
     }
-    base::Value device(base::Value::Type::DICTIONARY);
-    device.SetKey("uuid", base::Value(uuid));
-    device.SetKey("label", base::Value(label));
+    base::Value::Dict device;
+    device.Set("uuid", uuid);
+    device.Set("label", label);
     devices.Append(std::move(device));
   }
   FireWebUIListener("onExternalStoragesUpdated", devices);
@@ -229,9 +229,8 @@
 
 void StorageHandler::OnArcPlayStoreEnabledChanged(bool enabled) {
   base::Value::Dict update;
-  update.Set(
-      kAndroidEnabled,
-      base::Value(features::ShouldShowExternalStorageSettings(profile_)));
+  update.Set(kAndroidEnabled,
+             features::ShouldShowExternalStorageSettings(profile_));
   content::WebUIDataSource::Update(profile_, source_name_, std::move(update));
 }
 
@@ -343,11 +342,10 @@
     return;
   }
 
-  base::DictionaryValue size_stat;
-  size_stat.SetStringKey("availableSize", ui::FormatBytes(available_bytes));
-  size_stat.SetStringKey("usedSize", ui::FormatBytes(in_use_bytes));
-  size_stat.SetDoubleKey("usedRatio",
-                         static_cast<double>(in_use_bytes) / total_bytes);
+  base::Value::Dict size_stat;
+  size_stat.Set("availableSize", ui::FormatBytes(available_bytes));
+  size_stat.Set("usedSize", ui::FormatBytes(in_use_bytes));
+  size_stat.Set("usedRatio", static_cast<double>(in_use_bytes) / total_bytes);
   int storage_space_state =
       static_cast<int>(StorageSpaceState::kStorageSpaceNormal);
   if (available_bytes < kSpaceCriticallyLowBytes)
@@ -355,7 +353,7 @@
         static_cast<int>(StorageSpaceState::kStorageSpaceCriticallyLow);
   else if (available_bytes < kSpaceLowBytes)
     storage_space_state = static_cast<int>(StorageSpaceState::kStorageSpaceLow);
-  size_stat.SetIntKey("spaceState", storage_space_state);
+  size_stat.Set("spaceState", storage_space_state);
 
   FireWebUIListener(CalculationTypeToEventName(
                         calculator::SizeCalculator::CalculationType::kTotal),
diff --git a/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc b/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc
index c8d4496..1d61246 100644
--- a/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc
@@ -111,8 +111,7 @@
     }
   }
 
-  FireWebUIListener("onNoteTakingAppsUpdated",
-                    base::Value(std::move(apps_list)),
+  FireWebUIListener("onNoteTakingAppsUpdated", apps_list,
                     base::Value(waiting_for_android));
 }
 
diff --git a/chrome/browser/ui/webui/settings/chromeos/fast_pair_saved_devices_handler.cc b/chrome/browser/ui/webui/settings/chromeos/fast_pair_saved_devices_handler.cc
index c5f6b5e..0f601049 100644
--- a/chrome/browser/ui/webui/settings/chromeos/fast_pair_saved_devices_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/fast_pair_saved_devices_handler.cc
@@ -37,14 +37,14 @@
 
 // Converts |device| to a raw dictionary value used as a JSON
 // argument to JavaScript functions.
-base::Value SavedDeviceToDictionary(const std::string& device_name,
-                                    const std::string& image_url,
-                                    const std::string account_key) {
+base::Value::Dict SavedDeviceToDictionary(const std::string& device_name,
+                                          const std::string& image_url,
+                                          const std::string account_key) {
   base::Value::Dict dictionary;
   dictionary.Set(kSavedDeviceNameKey, device_name);
   dictionary.Set(kSavedDeviceImageUrlKey, image_url);
   dictionary.Set(kSavedDeviceAccountKeyKey, EncodeKey(account_key));
-  return base::Value(std::move(dictionary));
+  return dictionary;
 }
 
 }  // namespace
@@ -125,8 +125,7 @@
     base::Value::List saved_devices_list;
     ash::quick_pair::RecordSavedDevicesCount(
         /*num_devices=*/saved_devices_list.size());
-    FireWebUIListener(kSavedDevicesListMessage,
-                      base::Value(std::move(saved_devices_list)));
+    FireWebUIListener(kSavedDevicesListMessage, saved_devices_list);
     loading_saved_device_page_ = false;
     base::TimeDelta total_load_time =
         base::TimeTicks::Now() - loading_start_time_;
@@ -231,8 +230,7 @@
 
   ash::quick_pair::RecordSavedDevicesCount(
       /*num_devices=*/saved_devices_list.size());
-  FireWebUIListener(kSavedDevicesListMessage,
-                    base::Value(std::move(saved_devices_list)));
+  FireWebUIListener(kSavedDevicesListMessage, saved_devices_list);
   QP_LOG(VERBOSE) << __func__ << ": Sending device list";
   base::TimeDelta total_load_time =
       base::TimeTicks::Now() - loading_start_time_;
diff --git a/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc b/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc
index b5561ebf..2c3ae43a 100644
--- a/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc
@@ -33,21 +33,20 @@
 // The max number of fingerprints that can be stored.
 constexpr int kMaxAllowedFingerprints = 3;
 
-std::unique_ptr<base::DictionaryValue> GetFingerprintsInfo(
+base::Value::Dict GetFingerprintsInfo(
     const std::vector<std::string>& fingerprints_list) {
-  auto response = std::make_unique<base::DictionaryValue>();
-  base::ListValue fingerprints;
+  base::Value::Dict response;
+  base::Value::List fingerprints;
 
   DCHECK_LE(static_cast<int>(fingerprints_list.size()),
             kMaxAllowedFingerprints);
   for (auto& fingerprint_name: fingerprints_list) {
-    base::Value str(fingerprint_name);
-    fingerprints.Append(std::move(str));
+    fingerprints.Append(fingerprint_name);
   }
 
-  response->SetKey("fingerprintsList", std::move(fingerprints));
-  response->SetBoolKey("isMaxed", static_cast<int>(fingerprints_list.size()) >=
-                                      kMaxAllowedFingerprints);
+  response.Set("fingerprintsList", std::move(fingerprints));
+  response.Set("isMaxed", static_cast<int>(fingerprints_list.size()) >=
+                              kMaxAllowedFingerprints);
   return response;
 }
 
@@ -115,12 +114,12 @@
           << scan_result
           << ", enroll_session_complete=" << enroll_session_complete
           << ", percent_complete=" << percent_complete;
-  auto scan_attempt = std::make_unique<base::DictionaryValue>();
-  scan_attempt->SetIntKey("result", static_cast<int>(scan_result));
-  scan_attempt->SetBoolKey("isComplete", enroll_session_complete);
-  scan_attempt->SetIntKey("percentComplete", percent_complete);
+  base::Value::Dict scan_attempt;
+  scan_attempt.Set("result", static_cast<int>(scan_result));
+  scan_attempt.Set("isComplete", enroll_session_complete);
+  scan_attempt.Set("percentComplete", percent_complete);
 
-  FireWebUIListener("on-fingerprint-scan-received", *scan_attempt);
+  FireWebUIListener("on-fingerprint-scan-received", scan_attempt);
 }
 
 void FingerprintHandler::OnAuthScanDone(
@@ -163,9 +162,8 @@
   profile_->GetPrefs()->SetInteger(prefs::kQuickUnlockFingerprintRecord,
                                    fingerprints_list_mapping.size());
 
-  std::unique_ptr<base::DictionaryValue> fingerprint_info =
-      GetFingerprintsInfo(fingerprints_labels_);
-  ResolveJavascriptCallback(base::Value(callback_id), *fingerprint_info);
+  ResolveJavascriptCallback(base::Value(callback_id),
+                            GetFingerprintsInfo(fingerprints_labels_));
 }
 
 void FingerprintHandler::HandleGetNumFingerprints(
diff --git a/chrome/browser/ui/webui/settings/chromeos/guest_os_handler.cc b/chrome/browser/ui/webui/settings/chromeos/guest_os_handler.cc
index 5859484..140d546 100644
--- a/chrome/browser/ui/webui/settings/chromeos/guest_os_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/guest_os_handler.cc
@@ -19,15 +19,15 @@
 
 namespace {
 
-base::ListValue GetSharableUsbDevices(CrosUsbDetector* detector) {
-  base::ListValue usb_devices_list;
+base::Value::List GetSharableUsbDevices(CrosUsbDetector* detector) {
+  base::Value::List usb_devices_list;
   for (const auto& device : detector->GetShareableDevices()) {
-    base::Value device_info(base::Value::Type::DICTIONARY);
-    device_info.SetStringKey("guid", device.guid);
-    device_info.SetStringKey("label", device.label);
+    base::Value::Dict device_info;
+    device_info.Set("guid", device.guid);
+    device_info.Set("label", device.label);
     if (device.shared_vm_name)
-      device_info.SetStringKey("sharedWith", device.shared_vm_name.value());
-    device_info.SetBoolKey("promptBeforeSharing", device.prompt_before_sharing);
+      device_info.Set("sharedWith", device.shared_vm_name.value());
+    device_info.Set("promptBeforeSharing", device.prompt_before_sharing);
     usb_devices_list.Append(std::move(device_info));
   }
   return usb_devices_list;
@@ -78,7 +78,7 @@
   CHECK_EQ(2U, args.size());
   std::string callback_id = args[0].GetString();
 
-  base::Value texts(base::Value::Type::LIST);
+  base::Value::List texts;
   for (const auto& path : args[1].GetListDeprecated()) {
     texts.Append(file_manager::util::GetPathDisplayTextForSettings(
         profile_, path.GetString()));
diff --git a/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc b/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc
index 101f560b..87a99db 100644
--- a/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc
@@ -252,7 +252,7 @@
   if (!IsJavascriptAllowed())
     return;
 
-  base::ListValue device_names_value;
+  base::Value::List device_names_value;
   for (const auto& device_name : device_names_without_notifications_)
     device_names_value.Append(device_name.Clone());
 
diff --git a/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.cc b/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.cc
index 9082c156..6ce342c7 100644
--- a/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.cc
@@ -251,7 +251,7 @@
 void KerberosAccountsHandler::OnListAccounts(
     const std::string& callback_id,
     const kerberos::ListAccountsResponse& response) {
-  base::ListValue accounts;
+  base::Value::List accounts;
 
   // Ticket icon is a key.
   gfx::ImageSkia skia_ticket_icon =
@@ -274,21 +274,20 @@
         ui::TimeFormat::FORMAT_DURATION, ui::TimeFormat::LENGTH_LONG,
         tgt_validity < base::Days(1) ? -1 : 0, tgt_validity);
 
-    base::DictionaryValue account_dict;
-    account_dict.SetStringKey("principalName", account.principal_name());
-    account_dict.SetStringKey("config", account.krb5conf());
-    account_dict.SetBoolKey("isSignedIn", account.tgt_validity_seconds() > 0);
-    account_dict.SetStringKey("validForDuration", valid_for_duration);
-    account_dict.SetBoolKey("isActive",
-                            account.principal_name() == active_principal);
-    account_dict.SetBoolKey("isManaged", account.is_managed());
-    account_dict.SetBoolKey("passwordWasRemembered",
-                            account.password_was_remembered());
-    account_dict.SetStringKey("pic", ticket_icon);
+    base::Value::Dict account_dict;
+    account_dict.Set("principalName", account.principal_name());
+    account_dict.Set("config", account.krb5conf());
+    account_dict.Set("isSignedIn", account.tgt_validity_seconds() > 0);
+    account_dict.Set("validForDuration", valid_for_duration);
+    account_dict.Set("isActive", account.principal_name() == active_principal);
+    account_dict.Set("isManaged", account.is_managed());
+    account_dict.Set("passwordWasRemembered",
+                     account.password_was_remembered());
+    account_dict.Set("pic", ticket_icon);
     accounts.Append(std::move(account_dict));
   }
 
-  ResolveJavascriptCallback(base::Value(callback_id), std::move(accounts));
+  ResolveJavascriptCallback(base::Value(callback_id), accounts);
 }
 
 void KerberosAccountsHandler::HandleAddKerberosAccount(
@@ -374,17 +373,16 @@
 void KerberosAccountsHandler::OnValidateConfig(
     const std::string& callback_id,
     const kerberos::ValidateConfigResponse& response) {
-  base::Value error_info(base::Value::Type::DICTIONARY);
-  error_info.SetKey("code", base::Value(response.error_info().code()));
+  base::Value::Dict error_info;
+  error_info.Set("code", response.error_info().code());
   if (response.error_info().has_line_index()) {
-    error_info.SetKey("lineIndex",
-                      base::Value(response.error_info().line_index()));
+    error_info.Set("lineIndex", response.error_info().line_index());
   }
 
-  base::Value value(base::Value::Type::DICTIONARY);
-  value.SetKey("error", base::Value(static_cast<int>(response.error())));
-  value.SetKey("errorInfo", std::move(error_info));
-  ResolveJavascriptCallback(base::Value(callback_id), std::move(value));
+  base::Value::Dict value;
+  value.Set("error", static_cast<int>(response.error()));
+  value.Set("errorInfo", std::move(error_info));
+  ResolveJavascriptCallback(base::Value(callback_id), value);
 }
 
 void KerberosAccountsHandler::HandleSetAsActiveKerberosAccount(
diff --git a/chrome/browser/ui/webui/settings/chromeos/metrics_consent_handler.cc b/chrome/browser/ui/webui/settings/chromeos/metrics_consent_handler.cc
index 19c4ccd..6cd2641a 100644
--- a/chrome/browser/ui/webui/settings/chromeos/metrics_consent_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/metrics_consent_handler.cc
@@ -58,16 +58,15 @@
 
   const base::Value& callback_id = args[0];
 
-  base::Value response(base::Value::Type::DICTIONARY);
+  base::Value::Dict response;
 
   base::Value consent_pref =
       ShouldUseUserConsent()
           ? base::Value(::metrics::prefs::kMetricsUserConsent)
           : base::Value(::ash::kStatsReportingPref);
 
-  response.SetKey("prefName", std::move(consent_pref));
-  response.SetKey("isConfigurable",
-                  base::Value(IsMetricsConsentConfigurable()));
+  response.Set("prefName", std::move(consent_pref));
+  response.Set("isConfigurable", base::Value(IsMetricsConsentConfigurable()));
 
   ResolveJavascriptCallback(callback_id, response);
 }
@@ -79,7 +78,7 @@
   CHECK_EQ(args[1].type(), base::Value::Type::DICTIONARY);
 
   const base::Value& callback_id = args[0];
-  absl::optional<bool> metrics_consent = args[1].FindBoolKey("consent");
+  absl::optional<bool> metrics_consent = args[1].GetDict().FindBool("consent");
   CHECK(metrics_consent);
 
   if (!ShouldUseUserConsent()) {
diff --git a/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.cc b/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.cc
index 7577afc..91ea925 100644
--- a/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.cc
@@ -342,18 +342,17 @@
 }
 
 void MultideviceHandler::UpdatePageContent() {
-  std::unique_ptr<base::DictionaryValue> page_content_dictionary =
+  base::Value::Dict page_content_dictionary =
       GeneratePageContentDataDictionary();
-  DCHECK(page_content_dictionary);
   PA_LOG(INFO) << "Updating MultiDevice settings page content with: "
-               << *page_content_dictionary << ".";
+               << page_content_dictionary << ".";
   FireWebUIListener("settings.updateMultidevicePageContentData",
-                    *page_content_dictionary);
+                    page_content_dictionary);
 }
 
 void MultideviceHandler::NotifyAndroidSmsInfoChange() {
-  auto android_sms_info = GenerateAndroidSmsInfo();
-  FireWebUIListener("settings.onAndroidSmsInfoChange", *android_sms_info);
+  FireWebUIListener("settings.onAndroidSmsInfoChange",
+                    GenerateAndroidSmsInfo());
 }
 
 void MultideviceHandler::HandleShowMultiDeviceSetupDialog(
@@ -370,13 +369,12 @@
   const base::Value& callback_id = args[0];
   DCHECK(callback_id.is_string());
 
-  std::unique_ptr<base::DictionaryValue> page_content_dictionary =
+  base::Value::Dict page_content_dictionary =
       GeneratePageContentDataDictionary();
-  DCHECK(page_content_dictionary);
   PA_LOG(INFO) << "Responding to getPageContentData() request with: "
-               << *page_content_dictionary << ".";
+               << page_content_dictionary << ".";
 
-  ResolveJavascriptCallback(callback_id, *page_content_dictionary);
+  ResolveJavascriptCallback(callback_id, page_content_dictionary);
 }
 
 void MultideviceHandler::HandleSetFeatureEnabledState(
@@ -471,16 +469,15 @@
   ResolveJavascriptCallback(callback_id, base::Value(sign_in_allowed));
 }
 
-std::unique_ptr<base::DictionaryValue>
-MultideviceHandler::GenerateAndroidSmsInfo() {
+base::Value::Dict MultideviceHandler::GenerateAndroidSmsInfo() {
   absl::optional<GURL> app_url;
   if (android_sms_app_manager_)
     app_url = android_sms_app_manager_->GetCurrentAppUrl();
   if (!app_url)
     app_url = android_sms::GetAndroidMessagesURL();
 
-  auto android_sms_info = std::make_unique<base::DictionaryValue>();
-  android_sms_info->SetStringKey(
+  base::Value::Dict android_sms_info;
+  android_sms_info.Set(
       kAndroidSmsInfoOriginKey,
       ContentSettingsPattern::FromURLNoWildcard(*app_url).ToString());
 
@@ -492,7 +489,7 @@
           multidevice_setup::mojom::FeatureState::kEnabledByUser ||
       messages_state ==
           multidevice_setup::mojom::FeatureState::kFurtherSetupRequired;
-  android_sms_info->SetBoolKey(kAndroidSmsInfoEnabledKey, enabled_state);
+  android_sms_info.Set(kAndroidSmsInfoEnabledKey, enabled_state);
 
   return android_sms_info;
 }
@@ -501,7 +498,7 @@
     const base::Value::List& args) {
   const base::Value& callback_id = args[0];
 
-  ResolveJavascriptCallback(callback_id, *GenerateAndroidSmsInfo());
+  ResolveJavascriptCallback(callback_id, GenerateAndroidSmsInfo());
 }
 
 void MultideviceHandler::HandleAttemptNotificationSetup(
@@ -662,37 +659,36 @@
   ResolveJavascriptCallback(base::Value(js_callback_id), base::Value(success));
 }
 
-std::unique_ptr<base::DictionaryValue>
-MultideviceHandler::GeneratePageContentDataDictionary() {
-  auto page_content_dictionary = std::make_unique<base::DictionaryValue>();
+base::Value::Dict MultideviceHandler::GeneratePageContentDataDictionary() {
+  base::Value::Dict page_content_dictionary;
 
   multidevice_setup::MultiDeviceSetupClient::HostStatusWithDevice
       host_status_with_device = GetHostStatusWithDevice();
   multidevice_setup::MultiDeviceSetupClient::FeatureStatesMap feature_states =
       GetFeatureStatesMap();
 
-  page_content_dictionary->SetIntKey(
+  page_content_dictionary.Set(
       kPageContentDataModeKey,
       static_cast<int32_t>(host_status_with_device.first));
-  page_content_dictionary->SetIntKey(
+  page_content_dictionary.Set(
       kPageContentDataBetterTogetherStateKey,
       static_cast<int32_t>(
           feature_states
               [multidevice_setup::mojom::Feature::kBetterTogetherSuite]));
-  page_content_dictionary->SetIntKey(
+  page_content_dictionary.Set(
       kPageContentDataInstantTetheringStateKey,
       static_cast<int32_t>(
           feature_states
               [multidevice_setup::mojom::Feature::kInstantTethering]));
-  page_content_dictionary->SetIntKey(
+  page_content_dictionary.Set(
       kPageContentDataMessagesStateKey,
       static_cast<int32_t>(
           feature_states[multidevice_setup::mojom::Feature::kMessages]));
-  page_content_dictionary->SetIntKey(
+  page_content_dictionary.Set(
       kPageContentDataSmartLockStateKey,
       static_cast<int32_t>(
           feature_states[multidevice_setup::mojom::Feature::kSmartLock]));
-  page_content_dictionary->SetIntKey(
+  page_content_dictionary.Set(
       kPageContentDataPhoneHubStateKey,
       static_cast<int32_t>(
           feature_states[multidevice_setup::mojom::Feature::kPhoneHub]));
@@ -701,15 +697,14 @@
           ? feature_states
                 [multidevice_setup::mojom::Feature::kPhoneHubCameraRoll]
           : multidevice_setup::mojom::FeatureState::kNotSupportedByChromebook;
-  page_content_dictionary->SetIntKey(
-      kPageContentDataPhoneHubCameraRollStateKey,
-      static_cast<int32_t>(cameraRoll_feature_state));
-  page_content_dictionary->SetIntKey(
+  page_content_dictionary.Set(kPageContentDataPhoneHubCameraRollStateKey,
+                              static_cast<int32_t>(cameraRoll_feature_state));
+  page_content_dictionary.Set(
       kPageContentDataPhoneHubNotificationsStateKey,
       static_cast<int32_t>(
           feature_states
               [multidevice_setup::mojom::Feature::kPhoneHubNotifications]));
-  page_content_dictionary->SetIntKey(
+  page_content_dictionary.Set(
       kPageContentDataPhoneHubTaskContinuationStateKey,
       static_cast<int32_t>(
           feature_states
@@ -718,21 +713,20 @@
       base::FeatureList::IsEnabled(chromeos::features::kEcheSWA)
           ? feature_states[multidevice_setup::mojom::Feature::kEche]
           : multidevice_setup::mojom::FeatureState::kNotSupportedByChromebook;
-  page_content_dictionary->SetIntKey(kPageContentDataPhoneHubAppsStateKey,
-                                     static_cast<int32_t>(eche_feature_state));
+  page_content_dictionary.Set(kPageContentDataPhoneHubAppsStateKey,
+                              static_cast<int32_t>(eche_feature_state));
 
-  page_content_dictionary->SetIntKey(
+  page_content_dictionary.Set(
       kPageContentDataWifiSyncStateKey,
       static_cast<int32_t>(
           feature_states[multidevice_setup::mojom::Feature::kWifiSync]));
 
   if (host_status_with_device.second) {
-    page_content_dictionary->SetStringKey(
-        kPageContentDataHostDeviceNameKey,
-        host_status_with_device.second->name());
+    page_content_dictionary.Set(kPageContentDataHostDeviceNameKey,
+                                host_status_with_device.second->name());
   }
 
-  page_content_dictionary->SetBoolKey(
+  page_content_dictionary.Set(
       kIsAndroidSmsPairingComplete,
       android_sms_pairing_state_tracker_
           ? android_sms_pairing_state_tracker_->IsAndroidSmsPairingComplete()
@@ -751,11 +745,10 @@
                  ->GetNotificationAccessProhibitedReason();
   }
 
-  page_content_dictionary->SetInteger(
-      kNotificationAccessStatus,
-      static_cast<int32_t>(notification_access_status));
-  page_content_dictionary->SetIntKey(kNotificationAccessProhibitedReason,
-                                     static_cast<int32_t>(reason));
+  page_content_dictionary.Set(kNotificationAccessStatus,
+                              static_cast<int32_t>(notification_access_status));
+  page_content_dictionary.Set(kNotificationAccessProhibitedReason,
+                              static_cast<int32_t>(reason));
 
   phonehub::MultideviceFeatureAccessManager::AccessStatus
       camera_roll_access_status = phonehub::MultideviceFeatureAccessManager::
@@ -763,8 +756,8 @@
   if (multidevice_feature_access_manager_)
     camera_roll_access_status =
         multidevice_feature_access_manager_->GetCameraRollAccessStatus();
-  page_content_dictionary->SetInteger(
-      kCameraRollAccessStatus, static_cast<int32_t>(camera_roll_access_status));
+  page_content_dictionary.Set(kCameraRollAccessStatus,
+                              static_cast<int32_t>(camera_roll_access_status));
 
   phonehub::MultideviceFeatureAccessManager::AccessStatus apps_access_status =
       phonehub::MultideviceFeatureAccessManager::AccessStatus::
@@ -772,8 +765,8 @@
   if (apps_access_manager_)
     apps_access_status = apps_access_manager_->GetAccessStatus();
 
-  page_content_dictionary->SetInteger(kAppsAccessStatus,
-                                      static_cast<int32_t>(apps_access_status));
+  page_content_dictionary.Set(kAppsAccessStatus,
+                              static_cast<int32_t>(apps_access_status));
 
   bool is_camera_roll_file_permission_granted = false;
   if (camera_roll_manager_) {
@@ -782,29 +775,27 @@
         ash::phonehub::CameraRollManager::CameraRollUiState::
             NO_STORAGE_PERMISSION;
   }
-  page_content_dictionary->SetBoolKey(kIsCameraRollFilePermissionGranted,
-                                      is_camera_roll_file_permission_granted);
+  page_content_dictionary.Set(kIsCameraRollFilePermissionGranted,
+                              is_camera_roll_file_permission_granted);
 
   bool is_nearby_share_disallowed_by_policy =
       NearbySharingServiceFactory::IsNearbyShareSupportedForBrowserContext(
           Profile::FromWebUI(web_ui())) &&
       (GetNearbyShareEnabledState(prefs_) ==
        NearbyShareEnabledState::kDisallowedByPolicy);
-  page_content_dictionary->SetBoolKey(kIsNearbyShareDisallowedByPolicy,
-                                      is_nearby_share_disallowed_by_policy);
+  page_content_dictionary.Set(kIsNearbyShareDisallowedByPolicy,
+                              is_nearby_share_disallowed_by_policy);
 
   bool is_phone_hub_permissions_dialog_supported =
       features::IsEcheSWAEnabled() || features::IsPhoneHubCameraRollEnabled();
-  page_content_dictionary->SetBoolean(
-      kIsPhoneHubPermissionsDialogSupported,
-      is_phone_hub_permissions_dialog_supported);
+  page_content_dictionary.Set(kIsPhoneHubPermissionsDialogSupported,
+                              is_phone_hub_permissions_dialog_supported);
 
-  page_content_dictionary->SetBoolKey(
-      kIsPhoneHubFeatureCombinedSetupSupported,
-      multidevice_feature_access_manager_
-          ? multidevice_feature_access_manager_
-                ->GetFeatureSetupRequestSupported()
-          : false);
+  page_content_dictionary.Set(kIsPhoneHubFeatureCombinedSetupSupported,
+                              multidevice_feature_access_manager_
+                                  ? multidevice_feature_access_manager_
+                                        ->GetFeatureSetupRequestSupported()
+                                  : false);
 
   return page_content_dictionary;
 }
diff --git a/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.h b/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.h
index 7ba32a1..23a3dc9 100644
--- a/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.h
+++ b/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.h
@@ -23,10 +23,6 @@
 
 class PrefService;
 
-namespace base {
-class DictionaryValue;
-}  // namespace base
-
 namespace chromeos {
 namespace settings {
 
@@ -145,7 +141,7 @@
   void NotifySmartLockSignInAllowedChanged();
   // Generate android sms info dictionary containing the messages for web
   // content settings origin url and messages feature state.
-  std::unique_ptr<base::DictionaryValue> GenerateAndroidSmsInfo();
+  base::Value::Dict GenerateAndroidSmsInfo();
   void NotifyAndroidSmsInfoChange();
 
   // Returns true if |auth_token| matches the current auth token stored in
@@ -161,7 +157,7 @@
   // Returns null if requisite data has not yet been fetched (i.e., if one or
   // both of |last_host_status_update_| and |last_feature_states_update_| is
   // null).
-  std::unique_ptr<base::DictionaryValue> GeneratePageContentDataDictionary();
+  base::Value::Dict GeneratePageContentDataDictionary();
 
   multidevice_setup::MultiDeviceSetupClient::HostStatusWithDevice
   GetHostStatusWithDevice();
diff --git a/chrome/browser/ui/webui/settings/chromeos/peripheral_data_access_handler.cc b/chrome/browser/ui/webui/settings/chromeos/peripheral_data_access_handler.cc
index 0c37b107..bb7bab0 100644
--- a/chrome/browser/ui/webui/settings/chromeos/peripheral_data_access_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/peripheral_data_access_handler.cc
@@ -113,9 +113,9 @@
                                      ? local_state_pref_name
                                      : cros_setting_pref_name;
 
-  base::Value response(base::Value::Type::DICTIONARY);
-  response.SetKey("prefName", base::Value(pref_name));
-  response.SetKey("isUserConfigurable", base::Value(is_user_configurable_));
+  base::Value::Dict response;
+  response.Set("prefName", pref_name);
+  response.Set("isUserConfigurable", is_user_configurable_);
   ResolveJavascriptCallback(base::Value(callback_id), response);
 }
 
diff --git a/chrome/browser/ui/webui/settings/chromeos/switch_access_handler.cc b/chrome/browser/ui/webui/settings/chromeos/switch_access_handler.cc
index 5d0b8ab1f..d167caf 100644
--- a/chrome/browser/ui/webui/settings/chromeos/switch_access_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/switch_access_handler.cc
@@ -136,9 +136,9 @@
   if (event->type() == ui::ET_KEY_RELEASED)
     return;
 
-  base::DictionaryValue response;
-  response.SetIntPath("keyCode", static_cast<int>(event->key_code()));
-  response.SetStringPath("key", GetStringForKeyboardCode(event->key_code()));
+  base::Value::Dict response;
+  response.Set("keyCode", static_cast<int>(event->key_code()));
+  response.Set("key", GetStringForKeyboardCode(event->key_code()));
   ui::InputDeviceType deviceType = ui::INPUT_DEVICE_UNKNOWN;
 
   int source_device_id = event->source_device_id();
@@ -149,7 +149,7 @@
       break;
     }
   }
-  response.SetStringPath("device", GetSwitchAccessDevice(deviceType));
+  response.Set("device", GetSwitchAccessDevice(deviceType));
 
   FireWebUIListener("switch-access-got-key-press-for-assignment", response);
 }
@@ -175,7 +175,7 @@
 }
 
 void SwitchAccessHandler::OnSwitchAccessAssignmentsUpdated() {
-  base::DictionaryValue response;
+  base::Value::Dict response;
 
   static base::NoDestructor<std::vector<AssignmentInfo>> kAssignmentInfo({
       {"select", ash::prefs::kAccessibilitySwitchAccessSelectDeviceKeyCodes},
@@ -186,7 +186,7 @@
 
   for (const AssignmentInfo& info : *kAssignmentInfo) {
     auto* keycodes = prefs_->GetDictionary(info.pref_name);
-    base::ListValue keys;
+    base::Value::List keys;
     for (const auto item : keycodes->DictItems()) {
       int key_code;
       if (!base::StringToInt(item.first, &key_code)) {
@@ -194,14 +194,14 @@
         return;
       }
       for (const base::Value& device_type : item.second.GetListDeprecated()) {
-        base::DictionaryValue key;
-        key.SetStringPath("key", GetStringForKeyboardCode(
-                                     static_cast<ui::KeyboardCode>(key_code)));
-        key.SetStringPath("device", device_type.GetString());
+        base::Value::Dict key;
+        key.Set("key", GetStringForKeyboardCode(
+                           static_cast<ui::KeyboardCode>(key_code)));
+        key.Set("device", device_type.GetString());
         keys.Append(std::move(key));
       }
     }
-    response.SetPath(info.action_name_for_js, std::move(keys));
+    response.SetByDottedPath(info.action_name_for_js, std::move(keys));
   }
 
   FireWebUIListener("switch-access-assignments-changed", response);
diff --git a/chrome/browser/ui/webui/settings/chromeos/tts_handler.cc b/chrome/browser/ui/webui/settings/chromeos/tts_handler.cc
index 8e61955f..49bff61 100644
--- a/chrome/browser/ui/webui/settings/chromeos/tts_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/tts_handler.cc
@@ -39,7 +39,7 @@
   // Ensure the built in tts engine is loaded to be able to respond to messages.
   WakeTtsEngine(base::Value::List());
 
-  base::ListValue responses;
+  base::Value::List responses;
   Profile* profile = Profile::FromWebUI(web_ui());
   extensions::ExtensionRegistry* registry =
       extensions::ExtensionRegistry::Get(profile);
@@ -58,11 +58,11 @@
       // be updated again after extension load.
       continue;
     }
-    base::DictionaryValue response;
-    response.SetStringKey("name", extension->name());
-    response.SetStringKey("extensionId", extension_id);
+    base::Value::Dict response;
+    response.Set("name", extension->name());
+    response.Set("extensionId", extension_id);
     if (extensions::OptionsPageInfo::HasOptionsPage(extension)) {
-      response.SetStringKey(
+      response.Set(
           "optionsPage",
           extensions::OptionsPageInfo::GetOptionsPage(extension).spec());
     }
@@ -78,28 +78,28 @@
   std::vector<content::VoiceData> voices;
   tts_controller->GetVoices(Profile::FromWebUI(web_ui()), GURL(), &voices);
   const std::string& app_locale = g_browser_process->GetApplicationLocale();
-  base::ListValue responses;
+  base::Value::List responses;
   for (const auto& voice : voices) {
-    base::DictionaryValue response;
+    base::Value::Dict response;
     int language_score = GetVoiceLangMatchScore(&voice, app_locale);
     std::string language_code;
     if (voice.lang.empty()) {
       language_code = "noLanguageCode";
-      response.SetStringKey(
+      response.Set(
           "displayLanguage",
           l10n_util::GetStringUTF8(IDS_TEXT_TO_SPEECH_SETTINGS_NO_LANGUAGE));
     } else {
       language_code = l10n_util::GetLanguage(voice.lang);
-      response.SetStringKey(
+      response.Set(
           "displayLanguage",
           l10n_util::GetDisplayNameForLocale(
               language_code, g_browser_process->GetApplicationLocale(), true));
     }
-    response.SetStringKey("name", voice.name);
-    response.SetStringKey("languageCode", language_code);
-    response.SetStringKey("fullLanguageCode", voice.lang);
-    response.SetIntKey("languageScore", language_score);
-    response.SetStringKey("extensionId", voice.engine_id);
+    response.Set("name", voice.name);
+    response.Set("languageCode", language_code);
+    response.Set("fullLanguageCode", voice.lang);
+    response.Set("languageScore", language_score);
+    response.Set("extensionId", voice.engine_id);
     responses.Append(std::move(response));
   }
   AllowJavascript();
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
index 2166675c..925ba63 100644
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -33,6 +33,7 @@
 #include "chrome/browser/ui/webui/settings/about_handler.h"
 #include "chrome/browser/ui/webui/settings/accessibility_main_handler.h"
 #include "chrome/browser/ui/webui/settings/appearance_handler.h"
+#include "chrome/browser/ui/webui/settings/autofill_assistant_handler.h"
 #include "chrome/browser/ui/webui/settings/browser_lifetime_handler.h"
 #include "chrome/browser/ui/webui/settings/downloads_handler.h"
 #include "chrome/browser/ui/webui/settings/extension_control_handler.h"
@@ -62,6 +63,7 @@
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/common/url_constants.h"
+#include "chrome/grit/chromium_strings.h"
 #include "chrome/grit/generated_resources.h"
 #include "chrome/grit/settings_resources.h"
 #include "chrome/grit/settings_resources_map.h"
@@ -289,11 +291,11 @@
       "enableSendPasswords",
       base::FeatureList::IsEnabled(password_manager::features::kSendPasswords));
 
-  // Autofill Assistant on Desktop is currently used only by password change.
-  // As soon as it becomes more widely used, this condition needs to be
-  // adjusted.
+  // Indicates whether any automated password change entry point is enabled.
+  // This is currently used as a prerequisite for showing a settings toggle
+  // for Autofill Assistant.
   html_source->AddBoolean(
-      "enableAutofillAssistant",
+      "isAutomatedPasswordChangeEnabled",
       password_manager::features::IsAutomatedPasswordChangeEnabled());
 
   html_source->AddBoolean(
@@ -363,6 +365,11 @@
 
   // Add the metrics handler to write uma stats.
   web_ui->AddMessageHandler(std::make_unique<MetricsHandler>());
+  // Add the handler for personalization options, e.g. Autofill Assistant
+  // consent.
+  web_ui->AddMessageHandler(std::make_unique<AutofillAssistantHandler>(
+      std::vector<int>{IDS_SETTINGS_AUTOFILL_ASSISTANT_PREF,
+                       IDS_SETTINGS_AUTOFILL_ASSISTANT_PREF_DESC}));
 
   webui::SetupWebUIDataSource(
       html_source, base::make_span(kSettingsResources, kSettingsResourcesSize),
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index 5c9bf41..8deb179 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1659592512-3ba956ced21049c9e53b30ceea31464f75312627.profdata
+chrome-mac-arm-main-1659614384-7e28aa58866697112753a798032d262731a72c0f.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index a7229229..f170edc7 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1659592512-049720c0e7ad8491c5d47034c60968ccb6c45996.profdata
+chrome-mac-main-1659614384-0bede2a35e5d8bfbe67d5ae7a2b3f0eb08914f7a.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index 01f0f65..79e29c0 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1659592512-6f72313d5a2e88f3c9471a577a12666546741ae1.profdata
+chrome-win32-main-1659614384-b12b82e3343ba223670708b587bfe8555cf5bef7.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index 2fc1778..ac7e499c 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1659602984-b9240d355e73493814058bd7e67c6f3fca96ded3.profdata
+chrome-win64-main-1659614384-3a2606ff47d99fb545de69765d961efd75463fcf.profdata
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
index 66ce488..add8bab 100644
--- a/chrome/chrome_paks.gni
+++ b/chrome/chrome_paks.gni
@@ -334,11 +334,13 @@
       if (!is_official_build) {
         sources += [
           "$root_gen_dir/ash/webui/ash_demo_mode_app_resources.pak",
+          "$root_gen_dir/ash/webui/ash_facial_ml_app_resources.pak",
           "$root_gen_dir/ash/webui/ash_sample_system_web_app_resources.pak",
           "$root_gen_dir/ash/webui/ash_sample_system_web_app_untrusted_resources.pak",
         ]
         deps += [
           "//ash/webui/resources:demo_mode_app_resources",
+          "//ash/webui/resources:facial_ml_app_resources",
           "//ash/webui/resources:sample_system_web_app_resources",
           "//ash/webui/resources:sample_system_web_app_untrusted_resources",
         ]
diff --git a/chrome/common/extensions/api/accessibility_private.json b/chrome/common/extensions/api/accessibility_private.json
index ebc5d06..dc8de0c 100644
--- a/chrome/common/extensions/api/accessibility_private.json
+++ b/chrome/common/extensions/api/accessibility_private.json
@@ -727,6 +727,12 @@
             "description": "Properties for the updated Dictation bubble UI."
           }
         ]
+      },
+      {
+        "name": "silenceSpokenFeedback",
+        "type": "function",
+        "description": "Cancels the current and queued speech from ChromeVox.",
+        "parameters": []
       }
     ],
     "events": [
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
index 08d019f..21d5caf 100644
--- a/chrome/common/pref_names.cc
+++ b/chrome/common/pref_names.cc
@@ -2535,11 +2535,6 @@
 const char kArcAppInstallEventLoggingEnabled[] =
     "arc.app_install_event_logging_enabled";
 
-// Boolean pref indicating if event logging is enabled for policy based
-// extension.
-const char kExtensionInstallEventLoggingEnabled[] =
-    "extensions.install.event_logging_enabled";
-
 // Whether we received the remove users remote command, and hence should proceed
 // with removing the users while at the login screen.
 const char kRemoveUsersRemoteCommand[] = "remove_users_remote_command";
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index 0625f07b1..7b10b8d 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -800,7 +800,6 @@
 extern const char kPowerMetricsLidClosedSuspendCount[];
 extern const char kReportingUsers[];
 extern const char kArcAppInstallEventLoggingEnabled[];
-extern const char kExtensionInstallEventLoggingEnabled[];
 extern const char kRemoveUsersRemoteCommand[];
 extern const char kAutoScreenBrightnessMetricsDailySample[];
 extern const char kAutoScreenBrightnessMetricsAtlasUserAdjustmentCount[];
diff --git a/chrome/services/sharing/nearby/BUILD.gn b/chrome/services/sharing/nearby/BUILD.gn
index 409bd678..57590ec 100644
--- a/chrome/services/sharing/nearby/BUILD.gn
+++ b/chrome/services/sharing/nearby/BUILD.gn
@@ -12,6 +12,8 @@
     "nearby_connections_conversions.h",
     "nearby_connections_stream_buffer_manager.cc",
     "nearby_connections_stream_buffer_manager.h",
+    "nearby_shared_remotes.cc",
+    "nearby_shared_remotes.h",
     "platform.cc",
   ]
 
diff --git a/chrome/services/sharing/nearby/nearby_connections.cc b/chrome/services/sharing/nearby/nearby_connections.cc
index 340ff37..a7fb7ee 100644
--- a/chrome/services/sharing/nearby/nearby_connections.cc
+++ b/chrome/services/sharing/nearby/nearby_connections.cc
@@ -10,7 +10,6 @@
 #include "ash/services/nearby/public/mojom/webrtc.mojom.h"
 #include "base/feature_list.h"
 #include "base/files/file_util.h"
-#include "base/metrics/histogram_functions.h"
 #include "base/synchronization/waitable_event.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/time/time.h"
@@ -20,9 +19,7 @@
 #include "services/network/public/mojom/p2p.mojom.h"
 #include "third_party/nearby/src/connections/core.h"
 
-namespace location {
-namespace nearby {
-namespace connections {
+namespace location::nearby::connections {
 
 namespace {
 
@@ -94,94 +91,13 @@
 
 NearbyConnections::NearbyConnections(
     mojo::PendingReceiver<mojom::NearbyConnections> nearby_connections,
-    sharing::mojom::NearbyDependenciesPtr dependencies,
-    scoped_refptr<base::SequencedTaskRunner> io_task_runner,
+    location::nearby::api::LogMessage::Severity min_log_severity,
     base::OnceClosure on_disconnect)
     : nearby_connections_(this, std::move(nearby_connections)),
-      on_disconnect_(std::move(on_disconnect)),
       thread_task_runner_(base::ThreadTaskRunnerHandle::Get()) {
-  location::nearby::api::LogMessage::SetMinLogSeverity(
-      dependencies->min_log_severity);
+  location::nearby::api::LogMessage::SetMinLogSeverity(min_log_severity);
 
-  nearby_connections_.set_disconnect_handler(base::BindOnce(
-      &NearbyConnections::OnDisconnect, weak_ptr_factory_.GetWeakPtr(),
-      MojoDependencyName::kNearbyConnections));
-
-  if (dependencies->bluetooth_adapter) {
-    bluetooth_adapter_.Bind(std::move(dependencies->bluetooth_adapter),
-                            io_task_runner);
-    bluetooth_adapter_.set_disconnect_handler(
-        base::BindOnce(&NearbyConnections::OnDisconnect,
-                       weak_ptr_factory_.GetWeakPtr(),
-                       MojoDependencyName::kBluetoothAdapter),
-        base::SequencedTaskRunnerHandle::Get());
-  }
-
-  socket_manager_.Bind(
-      std::move(dependencies->webrtc_dependencies->socket_manager),
-      io_task_runner);
-  socket_manager_.set_disconnect_handler(
-      base::BindOnce(&NearbyConnections::OnDisconnect,
-                     weak_ptr_factory_.GetWeakPtr(),
-                     MojoDependencyName::kSocketManager),
-      base::SequencedTaskRunnerHandle::Get());
-
-  mdns_responder_factory_.Bind(
-      std::move(dependencies->webrtc_dependencies->mdns_responder_factory),
-      io_task_runner);
-  mdns_responder_factory_.set_disconnect_handler(
-      base::BindOnce(&NearbyConnections::OnDisconnect,
-                     weak_ptr_factory_.GetWeakPtr(),
-                     MojoDependencyName::kMdnsResponder),
-      base::SequencedTaskRunnerHandle::Get());
-
-  ice_config_fetcher_.Bind(
-      std::move(dependencies->webrtc_dependencies->ice_config_fetcher),
-      io_task_runner);
-  ice_config_fetcher_.set_disconnect_handler(
-      base::BindOnce(&NearbyConnections::OnDisconnect,
-                     weak_ptr_factory_.GetWeakPtr(),
-                     MojoDependencyName::kIceConfigFetcher),
-      base::SequencedTaskRunnerHandle::Get());
-
-  webrtc_signaling_messenger_.Bind(
-      std::move(dependencies->webrtc_dependencies->messenger), io_task_runner);
-  webrtc_signaling_messenger_.set_disconnect_handler(
-      base::BindOnce(&NearbyConnections::OnDisconnect,
-                     weak_ptr_factory_.GetWeakPtr(),
-                     MojoDependencyName::kWebRtcSignalingMessenger),
-      base::SequencedTaskRunnerHandle::Get());
-
-  // TODO(https://crbug.com/1261238): This should always be true when the
-  // WifiLan feature flag is enabled. Remove when flag is enabled by default.
-  if (dependencies->wifilan_dependencies) {
-    cros_network_config_.Bind(
-        std::move(dependencies->wifilan_dependencies->cros_network_config),
-        io_task_runner);
-    cros_network_config_.set_disconnect_handler(
-        base::BindOnce(&NearbyConnections::OnDisconnect,
-                       weak_ptr_factory_.GetWeakPtr(),
-                       MojoDependencyName::kCrosNetworkConfig),
-        base::SequencedTaskRunnerHandle::Get());
-
-    firewall_hole_factory_.Bind(
-        std::move(dependencies->wifilan_dependencies->firewall_hole_factory),
-        io_task_runner);
-    firewall_hole_factory_.set_disconnect_handler(
-        base::BindOnce(&NearbyConnections::OnDisconnect,
-                       weak_ptr_factory_.GetWeakPtr(),
-                       MojoDependencyName::kFirewallHoleFactory),
-        base::SequencedTaskRunnerHandle::Get());
-
-    tcp_socket_factory_.Bind(
-        std::move(dependencies->wifilan_dependencies->tcp_socket_factory),
-        io_task_runner);
-    tcp_socket_factory_.set_disconnect_handler(
-        base::BindOnce(&NearbyConnections::OnDisconnect,
-                       weak_ptr_factory_.GetWeakPtr(),
-                       MojoDependencyName::kTcpSocketFactory),
-        base::SequencedTaskRunnerHandle::Get());
-  }
+  nearby_connections_.set_disconnect_handler(std::move(on_disconnect));
 
   // There should only be one instance of NearbyConnections in a process.
   DCHECK(!g_instance);
@@ -204,47 +120,6 @@
   VLOG(1) << "Nearby Connections: shutdown complete";
 }
 
-std::string NearbyConnections::GetMojoDependencyName(
-    MojoDependencyName dependency_name) {
-  switch (dependency_name) {
-    case MojoDependencyName::kNearbyConnections:
-      return "Nearby Connections";
-    case MojoDependencyName::kBluetoothAdapter:
-      return "Bluetooth Adapter";
-    case MojoDependencyName::kSocketManager:
-      return "Socket Manager";
-    case MojoDependencyName::kMdnsResponder:
-      return "MDNS Responder";
-    case MojoDependencyName::kIceConfigFetcher:
-      return "ICE Config Fetcher";
-    case MojoDependencyName::kWebRtcSignalingMessenger:
-      return "WebRTC Signaling Messenger";
-    case MojoDependencyName::kCrosNetworkConfig:
-      return "CrOS Network Config";
-    case MojoDependencyName::kFirewallHoleFactory:
-      return "Firewall Hole Factory";
-    case MojoDependencyName::kTcpSocketFactory:
-      return "TCP socket Factory";
-  }
-}
-
-void NearbyConnections::OnDisconnect(MojoDependencyName dependency_name) {
-  if (!on_disconnect_) {
-    return;
-  }
-
-  LOG(WARNING) << "The utility process has detected that the browser process "
-                  "has disconnected from a mojo pipe: ["
-               << GetMojoDependencyName(dependency_name) << "]";
-  base::UmaHistogramEnumeration(
-      "Nearby.Connections.UtilityProcessShutdownReason."
-      "DisconnectedMojoDependency",
-      dependency_name);
-
-  std::move(on_disconnect_).Run();
-  // Note: |this| might be destroyed here.
-}
-
 void NearbyConnections::StartAdvertising(
     const std::string& service_id,
     const std::vector<uint8_t>& endpoint_info,
@@ -645,6 +520,4 @@
   service_controller_router_ = std::move(service_controller_router);
 }
 
-}  // namespace connections
-}  // namespace nearby
-}  // namespace location
+}  // namespace location::nearby::connections
diff --git a/chrome/services/sharing/nearby/nearby_connections.h b/chrome/services/sharing/nearby/nearby_connections.h
index f7d7fd3..5ba5f7c 100644
--- a/chrome/services/sharing/nearby/nearby_connections.h
+++ b/chrome/services/sharing/nearby/nearby_connections.h
@@ -23,18 +23,16 @@
 #include "base/task/single_thread_task_runner.h"
 #include "base/thread_annotations.h"
 #include "chrome/services/sharing/nearby/nearby_connections_stream_buffer_manager.h"
+#include "chrome/services/sharing/nearby/nearby_shared_remotes.h"
 #include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h"
 #include "device/bluetooth/public/mojom/adapter.mojom.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/receiver.h"
-#include "mojo/public/cpp/bindings/shared_remote.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/nearby/src/connections/implementation/service_controller_router.h"
 
-namespace location {
-namespace nearby {
-namespace connections {
+namespace location::nearby::connections {
 
 class Core;
 
@@ -53,8 +51,7 @@
   // destroy this instance.
   NearbyConnections(
       mojo::PendingReceiver<mojom::NearbyConnections> nearby_connections,
-      sharing::mojom::NearbyDependenciesPtr dependencies,
-      scoped_refptr<base::SequencedTaskRunner> io_task_runner,
+      location::nearby::api::LogMessage::Severity min_log_severity,
       base::OnceClosure on_disconnect);
 
   NearbyConnections(const NearbyConnections&) = delete;
@@ -64,45 +61,6 @@
   // Should only be used by objects within lifetime of NearbyConnections.
   static NearbyConnections& GetInstance();
 
-  // May return an unbound Remote if Nearby Connections was not provided an
-  // Adapter (likely because this device does not support Bluetooth).
-  const mojo::SharedRemote<bluetooth::mojom::Adapter>& bluetooth_adapter()
-      const {
-    return bluetooth_adapter_;
-  }
-
-  const mojo::SharedRemote<network::mojom::P2PSocketManager>& socket_manager()
-      const {
-    return socket_manager_;
-  }
-  const mojo::SharedRemote<sharing::mojom::MdnsResponderFactory>&
-  mdns_responder_factory() const {
-    return mdns_responder_factory_;
-  }
-  const mojo::SharedRemote<sharing::mojom::IceConfigFetcher>&
-  ice_config_fetcher() const {
-    return ice_config_fetcher_;
-  }
-  const mojo::SharedRemote<sharing::mojom::WebRtcSignalingMessenger>&
-  webrtc_signaling_messenger() const {
-    return webrtc_signaling_messenger_;
-  }
-
-  const mojo::SharedRemote<chromeos::network_config::mojom::CrosNetworkConfig>&
-  cros_network_config() const {
-    return cros_network_config_;
-  }
-
-  const mojo::SharedRemote<sharing::mojom::FirewallHoleFactory>&
-  firewall_hole_factory() const {
-    return firewall_hole_factory_;
-  }
-
-  const mojo::SharedRemote<sharing::mojom::TcpSocketFactory>&
-  tcp_socket_factory() const {
-    return tcp_socket_factory_;
-  }
-
   // mojom::NearbyConnections:
   void StartAdvertising(
       const std::string& service_id,
@@ -174,45 +132,9 @@
       std::unique_ptr<ServiceControllerRouter> service_controller_router);
 
  private:
-  // These values are used for metrics. Entries should not be renumbered and
-  // numeric values should never be reused. If entries are added, kMaxValue
-  // should be updated.
-  enum class MojoDependencyName {
-    kNearbyConnections = 0,
-    kBluetoothAdapter = 1,
-    kSocketManager = 2,
-    kMdnsResponder = 3,
-    kIceConfigFetcher = 4,
-    kWebRtcSignalingMessenger = 5,
-    kCrosNetworkConfig = 6,
-    kFirewallHoleFactory = 7,
-    kTcpSocketFactory = 8,
-    kMaxValue = kTcpSocketFactory
-  };
-
   Core* GetCore(const std::string& service_id);
 
-  std::string GetMojoDependencyName(MojoDependencyName dependency_name);
-
-  void OnDisconnect(MojoDependencyName dependency_name);
-
   mojo::Receiver<mojom::NearbyConnections> nearby_connections_;
-  base::OnceClosure on_disconnect_;
-
-  // Medium dependencies. SharedRemote is used to ensure all calls are posted
-  // to sequence binding the Remote.
-  mojo::SharedRemote<bluetooth::mojom::Adapter> bluetooth_adapter_;
-  mojo::SharedRemote<network::mojom::P2PSocketManager> socket_manager_;
-  mojo::SharedRemote<sharing::mojom::MdnsResponderFactory>
-      mdns_responder_factory_;
-  mojo::SharedRemote<sharing::mojom::IceConfigFetcher> ice_config_fetcher_;
-  mojo::SharedRemote<sharing::mojom::WebRtcSignalingMessenger>
-      webrtc_signaling_messenger_;
-  mojo::SharedRemote<chromeos::network_config::mojom::CrosNetworkConfig>
-      cros_network_config_;
-  mojo::SharedRemote<sharing::mojom::FirewallHoleFactory>
-      firewall_hole_factory_;
-  mojo::SharedRemote<sharing::mojom::TcpSocketFactory> tcp_socket_factory_;
 
   std::unique_ptr<ServiceControllerRouter> service_controller_router_;
 
@@ -242,8 +164,6 @@
   base::WeakPtrFactory<NearbyConnections> weak_ptr_factory_{this};
 };
 
-}  // namespace connections
-}  // namespace nearby
-}  // namespace location
+}  // namespace location::nearby::connections
 
 #endif  // CHROME_SERVICES_SHARING_NEARBY_NEARBY_CONNECTIONS_H_
diff --git a/chrome/services/sharing/nearby/nearby_connections_unittest.cc b/chrome/services/sharing/nearby/nearby_connections_unittest.cc
index 8d23bb1..3357d64f 100644
--- a/chrome/services/sharing/nearby/nearby_connections_unittest.cc
+++ b/chrome/services/sharing/nearby/nearby_connections_unittest.cc
@@ -202,50 +202,13 @@
 class NearbyConnectionsTest : public testing::Test {
  public:
   NearbyConnectionsTest() {
-    // Set up CrosNetworkConfig mojo service.
-    cros_network_config_test_helper_ = std::make_unique<
-        chromeos::network_config::CrosNetworkConfigTestHelper>();
-    mojo::PendingRemote<chromeos::network_config::mojom::CrosNetworkConfig>
-        cros_network_config_remote;
-    ash::GetNetworkConfigService(
-        cros_network_config_remote.InitWithNewPipeAndPassReceiver());
-
-    // Set up firewall hole factory mojo service.
-    mojo::PendingRemote<sharing::mojom::FirewallHoleFactory>
-        firewall_hole_factory_remote;
-    firewall_hole_factory_self_owned_receiver_ref_ =
-        mojo::MakeSelfOwnedReceiver(
-            std::make_unique<ash::nearby::FakeFirewallHoleFactory>(),
-            firewall_hole_factory_remote.InitWithNewPipeAndPassReceiver());
-
-    // Set up TCP socket factory mojo service.
-    mojo::PendingRemote<sharing::mojom::TcpSocketFactory>
-        tcp_socket_factory_remote;
-    tcp_socket_factory_self_owned_receiver_ref_ = mojo::MakeSelfOwnedReceiver(
-        std::make_unique<ash::nearby::FakeTcpSocketFactory>(
-            /*default_local_addr=*/net::IPEndPoint(
-                net::IPAddress(192, 168, 86, 75), 44444)),
-        tcp_socket_factory_remote.InitWithNewPipeAndPassReceiver());
-
-    auto webrtc_dependencies = sharing::mojom::WebRtcDependencies::New(
-        webrtc_dependencies_.socket_manager_.BindNewPipeAndPassRemote(),
-        webrtc_dependencies_.mdns_responder_factory_.BindNewPipeAndPassRemote(),
-        webrtc_dependencies_.ice_config_fetcher_.BindNewPipeAndPassRemote(),
-        webrtc_dependencies_.messenger_.BindNewPipeAndPassRemote());
-    auto wifilan_dependencies = sharing::mojom::WifiLanDependencies::New(
-        std::move(cros_network_config_remote),
-        std::move(firewall_hole_factory_remote),
-        std::move(tcp_socket_factory_remote));
-    auto dependencies = sharing::mojom::NearbyDependencies::New(
-        bluetooth_adapter_.adapter_.BindNewPipeAndPassRemote(),
-        std::move(webrtc_dependencies), std::move(wifilan_dependencies),
-        location::nearby::api::LogMessage::Severity::kInfo);
     auto service_controller_router =
         std::make_unique<testing::NiceMock<MockServiceControllerRouter>>();
     service_controller_router_ptr_ = service_controller_router.get();
+
     nearby_connections_ = std::make_unique<NearbyConnections>(
-        remote_.BindNewPipeAndPassReceiver(), std::move(dependencies),
-        /*io_task_runner=*/nullptr,
+        remote_.BindNewPipeAndPassReceiver(),
+        location::nearby::api::LogMessage::Severity::kInfo,
         base::BindOnce(&NearbyConnectionsTest::OnDisconnect,
                        base::Unretained(this)));
     nearby_connections_->SetServiceControllerRouterForTesting(
@@ -478,46 +441,6 @@
   disconnect_run_loop_.Run();
 }
 
-TEST_F(NearbyConnectionsTest, BluetoothDisconnect) {
-  bluetooth_adapter_.adapter_.reset();
-  disconnect_run_loop_.Run();
-}
-
-TEST_F(NearbyConnectionsTest, P2PSocketManagerDisconnect) {
-  webrtc_dependencies_.socket_manager_.reset();
-  disconnect_run_loop_.Run();
-}
-
-TEST_F(NearbyConnectionsTest, MdnsResponderFactoryDisconnect) {
-  webrtc_dependencies_.mdns_responder_factory_.reset();
-  disconnect_run_loop_.Run();
-}
-
-TEST_F(NearbyConnectionsTest, IceConfigFetcherDisconnect) {
-  webrtc_dependencies_.ice_config_fetcher_.reset();
-  disconnect_run_loop_.Run();
-}
-
-TEST_F(NearbyConnectionsTest, WebRtcSignalingMessengerDisconnect) {
-  webrtc_dependencies_.messenger_.reset();
-  disconnect_run_loop_.Run();
-}
-
-TEST_F(NearbyConnectionsTest, CrosNetworkConfigDisconnect) {
-  cros_network_config_test_helper_.reset();
-  disconnect_run_loop_.Run();
-}
-
-TEST_F(NearbyConnectionsTest, FirewallHoleFactoryDisconnect) {
-  firewall_hole_factory_self_owned_receiver_ref_->Close();
-  disconnect_run_loop_.Run();
-}
-
-TEST_F(NearbyConnectionsTest, TcpSocketFactoryDisconnect) {
-  tcp_socket_factory_self_owned_receiver_ref_->Close();
-  disconnect_run_loop_.Run();
-}
-
 TEST_F(NearbyConnectionsTest, StartDiscovery) {
   FakeEndpointDiscoveryListener fake_discovery_listener;
   ClientProxy* client_proxy = StartDiscovery(fake_discovery_listener);
diff --git a/chrome/services/sharing/nearby/nearby_shared_remotes.cc b/chrome/services/sharing/nearby/nearby_shared_remotes.cc
new file mode 100644
index 0000000..d9fc777
--- /dev/null
+++ b/chrome/services/sharing/nearby/nearby_shared_remotes.cc
@@ -0,0 +1,30 @@
+// Copyright 2022 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/services/sharing/nearby/nearby_shared_remotes.h"
+
+namespace location::nearby {
+
+namespace {
+
+// This object is owned by SharingImpl and made available for
+// ImplementationPlatform which implements a completely static interface.
+NearbySharedRemotes* g_instance = nullptr;
+
+}  // namespace
+
+// static
+NearbySharedRemotes* NearbySharedRemotes::GetInstance() {
+  return g_instance;
+}
+
+// static
+void NearbySharedRemotes::SetInstance(NearbySharedRemotes* instance) {
+  g_instance = instance;
+}
+
+NearbySharedRemotes::NearbySharedRemotes() = default;
+NearbySharedRemotes::~NearbySharedRemotes() = default;
+
+}  // namespace location::nearby
diff --git a/chrome/services/sharing/nearby/nearby_shared_remotes.h b/chrome/services/sharing/nearby/nearby_shared_remotes.h
new file mode 100644
index 0000000..41dc6f0
--- /dev/null
+++ b/chrome/services/sharing/nearby/nearby_shared_remotes.h
@@ -0,0 +1,46 @@
+// Copyright 2022 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_SERVICES_SHARING_NEARBY_NEARBY_SHARED_REMOTES_H_
+#define CHROME_SERVICES_SHARING_NEARBY_NEARBY_SHARED_REMOTES_H_
+
+#include "ash/services/nearby/public/mojom/firewall_hole.mojom.h"
+#include "ash/services/nearby/public/mojom/sharing.mojom.h"
+#include "ash/services/nearby/public/mojom/tcp_socket_factory.mojom.h"
+#include "ash/services/nearby/public/mojom/webrtc.mojom.h"
+#include "ash/services/nearby/public/mojom/webrtc_signaling_messenger.mojom.h"
+#include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h"
+#include "device/bluetooth/public/mojom/adapter.mojom.h"
+#include "mojo/public/cpp/bindings/shared_remote.h"
+#include "services/network/public/mojom/p2p.mojom.h"
+
+namespace location::nearby {
+
+// Container for the SharedRemote objects required by Nearby Connections and
+// Nearby Presence.
+struct NearbySharedRemotes {
+  static NearbySharedRemotes* GetInstance();
+  static void SetInstance(NearbySharedRemotes* instance);
+
+  NearbySharedRemotes();
+  ~NearbySharedRemotes();
+  NearbySharedRemotes(const NearbySharedRemotes&) = delete;
+  NearbySharedRemotes& operator=(const NearbySharedRemotes&) = delete;
+
+  mojo::SharedRemote<bluetooth::mojom::Adapter> bluetooth_adapter;
+  mojo::SharedRemote<network::mojom::P2PSocketManager> socket_manager;
+  mojo::SharedRemote<sharing::mojom::MdnsResponderFactory>
+      mdns_responder_factory;
+  mojo::SharedRemote<sharing::mojom::WebRtcSignalingMessenger>
+      webrtc_signaling_messenger;
+  mojo::SharedRemote<sharing::mojom::IceConfigFetcher> ice_config_fetcher;
+  mojo::SharedRemote<chromeos::network_config::mojom::CrosNetworkConfig>
+      cros_network_config;
+  mojo::SharedRemote<sharing::mojom::FirewallHoleFactory> firewall_hole_factory;
+  mojo::SharedRemote<sharing::mojom::TcpSocketFactory> tcp_socket_factory;
+};
+
+}  // namespace location::nearby
+
+#endif  // CHROME_SERVICES_SHARING_NEARBY_NEARBY_SHARED_REMOTES_H_
diff --git a/chrome/services/sharing/nearby/platform.cc b/chrome/services/sharing/nearby/platform.cc
index eacf644..82293bb2 100644
--- a/chrome/services/sharing/nearby/platform.cc
+++ b/chrome/services/sharing/nearby/platform.cc
@@ -10,6 +10,7 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/task/thread_pool.h"
 #include "chrome/services/sharing/nearby/nearby_connections.h"
+#include "chrome/services/sharing/nearby/nearby_shared_remotes.h"
 #include "chrome/services/sharing/nearby/platform/atomic_boolean.h"
 #include "chrome/services/sharing/nearby/platform/atomic_uint32.h"
 #include "chrome/services/sharing/nearby/platform/ble_medium.h"
@@ -47,9 +48,7 @@
 #include "third_party/nearby/src/internal/platform/implementation/wifi.h"
 #include "third_party/nearby/src/internal/platform/implementation/wifi_hotspot.h"
 
-namespace location {
-namespace nearby {
-namespace api {
+namespace location::nearby::api {
 
 int GetCurrentTid() {
   // SubmittableExecutor and ScheduledExecutor does not own a thread pool
@@ -103,14 +102,14 @@
 
 std::unique_ptr<BluetoothAdapter>
 ImplementationPlatform::CreateBluetoothAdapter() {
-  auto& connections = connections::NearbyConnections::GetInstance();
-  const mojo::SharedRemote<bluetooth::mojom::Adapter>& bluetooth_adapter =
-      connections.bluetooth_adapter();
-
-  if (!bluetooth_adapter.is_bound())
-    return nullptr;
-
-  return std::make_unique<chrome::BluetoothAdapter>(bluetooth_adapter);
+  location::nearby::NearbySharedRemotes* nearby_shared_remotes =
+      location::nearby::NearbySharedRemotes::GetInstance();
+  if (nearby_shared_remotes &&
+      nearby_shared_remotes->bluetooth_adapter.is_bound()) {
+    return std::make_unique<chrome::BluetoothAdapter>(
+        nearby_shared_remotes->bluetooth_adapter);
+  }
+  return nullptr;
 }
 
 std::unique_ptr<CountDownLatch> ImplementationPlatform::CreateCountDownLatch(
@@ -169,34 +168,32 @@
 std::unique_ptr<BluetoothClassicMedium>
 ImplementationPlatform::CreateBluetoothClassicMedium(
     api::BluetoothAdapter& adapter) {
+  location::nearby::NearbySharedRemotes* nearby_shared_remotes =
+      location::nearby::NearbySharedRemotes::GetInstance();
   // Ignore the provided |adapter| argument; it is a reference to the object
   // created by ImplementationPlatform::CreateBluetoothAdapter(). Instead,
   // directly use the cached bluetooth::mojom::Adapter.
-
-  auto& connections = connections::NearbyConnections::GetInstance();
-  const mojo::SharedRemote<bluetooth::mojom::Adapter>& bluetooth_adapter =
-      connections.bluetooth_adapter();
-
-  if (!bluetooth_adapter.is_bound())
-    return nullptr;
-
-  return std::make_unique<chrome::BluetoothClassicMedium>(bluetooth_adapter);
+  if (nearby_shared_remotes &&
+      nearby_shared_remotes->bluetooth_adapter.is_bound()) {
+    return std::make_unique<chrome::BluetoothClassicMedium>(
+        nearby_shared_remotes->bluetooth_adapter);
+  }
+  return nullptr;
 }
 
 std::unique_ptr<BleMedium> ImplementationPlatform::CreateBleMedium(
     api::BluetoothAdapter& adapter) {
+  location::nearby::NearbySharedRemotes* nearby_shared_remotes =
+      location::nearby::NearbySharedRemotes::GetInstance();
   // Ignore the provided |adapter| argument; it is a reference to the object
   // created by ImplementationPlatform::CreateBluetoothAdapter(). Instead,
   // directly use the cached bluetooth::mojom::Adapter.
-
-  auto& connections = connections::NearbyConnections::GetInstance();
-  const mojo::SharedRemote<bluetooth::mojom::Adapter>& bluetooth_adapter =
-      connections.bluetooth_adapter();
-
-  if (!bluetooth_adapter.is_bound())
-    return nullptr;
-
-  return std::make_unique<chrome::BleMedium>(bluetooth_adapter);
+  if (nearby_shared_remotes &&
+      nearby_shared_remotes->bluetooth_adapter.is_bound()) {
+    return std::make_unique<chrome::BleMedium>(
+        nearby_shared_remotes->bluetooth_adapter);
+  }
+  return nullptr;
 }
 
 std::unique_ptr<ble_v2::BleMedium> ImplementationPlatform::CreateBleV2Medium(
@@ -220,12 +217,16 @@
 }
 
 std::unique_ptr<WifiLanMedium> ImplementationPlatform::CreateWifiLanMedium() {
-  auto& connections = connections::NearbyConnections::GetInstance();
+  location::nearby::NearbySharedRemotes* nearby_shared_remotes =
+      location::nearby::NearbySharedRemotes::GetInstance();
+  if (!nearby_shared_remotes) {
+    return nullptr;
+  }
 
   // TODO(https://crbug.com/1261238): This should always be bound when the
   // WifiLan feature flag is enabled. Update logging to ERROR after launch.
   const mojo::SharedRemote<chromeos::network_config::mojom::CrosNetworkConfig>&
-      cros_network_config = connections.cros_network_config();
+      cros_network_config = nearby_shared_remotes->cros_network_config;
   if (!cros_network_config.is_bound()) {
     VLOG(1) << "CrosNetworkConfig not bound. Returning null WifiLan medium";
     return nullptr;
@@ -234,7 +235,7 @@
   // TODO(https://crbug.com/1261238): This should always be bound when the
   // WifiLan feature flag is enabled. Update logging to ERROR after launch.
   const mojo::SharedRemote<sharing::mojom::FirewallHoleFactory>&
-      firewall_hole_factory = connections.firewall_hole_factory();
+      firewall_hole_factory = nearby_shared_remotes->firewall_hole_factory;
   if (!firewall_hole_factory.is_bound()) {
     VLOG(1) << "FirewallHoleFactory not bound. Returning null WifiLan medium";
     return nullptr;
@@ -243,7 +244,7 @@
   // TODO(https://crbug.com/1261238): This should always be bound when the
   // WifiLan feature flag is enabled. Update logging to ERROR after launch.
   const mojo::SharedRemote<sharing::mojom::TcpSocketFactory>&
-      tcp_socket_factory = connections.tcp_socket_factory();
+      tcp_socket_factory = nearby_shared_remotes->tcp_socket_factory;
   if (!tcp_socket_factory.is_bound()) {
     VLOG(1) << "TcpSocketFactory not bound. Returning null WifiLan medium";
     return nullptr;
@@ -254,24 +255,50 @@
 }
 
 std::unique_ptr<WebRtcMedium> ImplementationPlatform::CreateWebRtcMedium() {
-  auto& connections = connections::NearbyConnections::GetInstance();
+  location::nearby::NearbySharedRemotes* nearby_shared_remotes =
+      location::nearby::NearbySharedRemotes::GetInstance();
 
-  const mojo::SharedRemote<network::mojom::P2PSocketManager>& socket_manager =
-      connections.socket_manager();
-  const mojo::SharedRemote<sharing::mojom::MdnsResponderFactory>&
-      mdns_responder_factory = connections.mdns_responder_factory();
-  const mojo::SharedRemote<sharing::mojom::IceConfigFetcher>&
-      ice_config_fetcher = connections.ice_config_fetcher();
-  const mojo::SharedRemote<sharing::mojom::WebRtcSignalingMessenger>&
-      messenger = connections.webrtc_signaling_messenger();
-
-  if (!socket_manager.is_bound() || !mdns_responder_factory.is_bound() ||
-      !ice_config_fetcher.is_bound() || !messenger.is_bound()) {
-    LOG(ERROR)
-        << "Not all webrtc dependencies were bound. Returning null medium";
+  if (!nearby_shared_remotes) {
+    LOG(ERROR) << "No NearbySharedRemotes instance. Returning null medium.";
     return nullptr;
   }
 
+  const mojo::SharedRemote<network::mojom::P2PSocketManager>& socket_manager =
+      nearby_shared_remotes->socket_manager;
+  const mojo::SharedRemote<sharing::mojom::MdnsResponderFactory>&
+      mdns_responder_factory = nearby_shared_remotes->mdns_responder_factory;
+  const mojo::SharedRemote<sharing::mojom::IceConfigFetcher>&
+      ice_config_fetcher = nearby_shared_remotes->ice_config_fetcher;
+  const mojo::SharedRemote<sharing::mojom::WebRtcSignalingMessenger>&
+      messenger = nearby_shared_remotes->webrtc_signaling_messenger;
+
+  auto log_error = [](std::string dependency_name) {
+    LOG(ERROR) << "Webrtc dependency [" << dependency_name
+               << "] is not bound. Returning null medium.";
+  };
+
+  if (!socket_manager.is_bound()) {
+    log_error("socket_manager");
+    return nullptr;
+  }
+
+  if (!mdns_responder_factory.is_bound()) {
+    log_error("mdns_responder_factory");
+    return nullptr;
+  }
+
+  if (!ice_config_fetcher.is_bound()) {
+    log_error("ice_config_fetcher");
+    return nullptr;
+  }
+
+  if (!messenger.is_bound()) {
+    log_error("messenger");
+    return nullptr;
+  }
+
+  auto& connections = connections::NearbyConnections::GetInstance();
+
   return std::make_unique<chrome::WebRtcMedium>(
       socket_manager, mdns_responder_factory, ice_config_fetcher, messenger,
       connections.GetThreadTaskRunner());
@@ -292,6 +319,4 @@
       static_cast<chrome::Mutex*>(mutex));
 }
 
-}  // namespace api
-}  // namespace nearby
-}  // namespace location
+}  // namespace location::nearby::api
diff --git a/chrome/services/sharing/sharing_impl.cc b/chrome/services/sharing/sharing_impl.cc
index 0b4faa18..9d12b91d 100644
--- a/chrome/services/sharing/sharing_impl.cc
+++ b/chrome/services/sharing/sharing_impl.cc
@@ -8,6 +8,7 @@
 
 #include "ash/services/nearby/public/mojom/nearby_decoder.mojom.h"
 #include "base/callback.h"
+#include "base/metrics/histogram_functions.h"
 #include "chrome/services/sharing/nearby/decoder/nearby_decoder.h"
 #include "chrome/services/sharing/nearby/nearby_connections.h"
 
@@ -33,10 +34,16 @@
   DCHECK(!nearby_connections_);
   DCHECK(!nearby_decoder_);
 
+  location::nearby::api::LogMessage::Severity min_log_severity =
+      deps->min_log_severity;
+
+  InitializeNearbySharedRemotes(std::move(deps));
+
   nearby_connections_ = std::make_unique<NearbyConnections>(
-      std::move(connections_receiver), std::move(deps), io_task_runner_,
-      base::BindOnce(&SharingImpl::NearbyConnectionsDisconnected,
-                     weak_ptr_factory_.GetWeakPtr()));
+      std::move(connections_receiver), min_log_severity,
+      base::BindOnce(&SharingImpl::OnDisconnect, weak_ptr_factory_.GetWeakPtr(),
+                     MojoDependencyName::kNearbyConnections));
+
   nearby_decoder_ =
       std::make_unique<NearbySharingDecoder>(std::move(decoder_receiver));
 }
@@ -47,6 +54,8 @@
 }
 
 void SharingImpl::DoShutDown(bool is_expected) {
+  location::nearby::NearbySharedRemotes::SetInstance(nullptr);
+
   if (!nearby_connections_ && !nearby_decoder_)
     return;
 
@@ -57,9 +66,119 @@
   // Sharing utility process has crashed.
 }
 
-void SharingImpl::NearbyConnectionsDisconnected() {
+void SharingImpl::OnDisconnect(MojoDependencyName mojo_dependency_name) {
+  LOG(WARNING) << "The utility process has detected that the browser process "
+                  "has disconnected from a mojo pipe: ["
+               << GetMojoDependencyName(mojo_dependency_name) << "]";
+  base::UmaHistogramEnumeration(
+      "Nearby.Connections.UtilityProcessShutdownReason."
+      "DisconnectedMojoDependency",
+      mojo_dependency_name);
+
   LOG(ERROR) << "A Sharing process dependency has unexpectedly disconnected.";
   DoShutDown(/*is_expected=*/false);
 }
 
+void SharingImpl::InitializeNearbySharedRemotes(NearbyDependenciesPtr deps) {
+  nearby_shared_remotes_ =
+      std::make_unique<location::nearby::NearbySharedRemotes>();
+  location::nearby::NearbySharedRemotes::SetInstance(
+      nearby_shared_remotes_.get());
+
+  if (deps->bluetooth_adapter) {
+    nearby_shared_remotes_->bluetooth_adapter.Bind(
+        std::move(deps->bluetooth_adapter), io_task_runner_);
+    nearby_shared_remotes_->bluetooth_adapter.set_disconnect_handler(
+        base::BindOnce(&SharingImpl::OnDisconnect,
+                       weak_ptr_factory_.GetWeakPtr(),
+                       MojoDependencyName::kBluetoothAdapter),
+        base::SequencedTaskRunnerHandle::Get());
+  }
+
+  nearby_shared_remotes_->socket_manager.Bind(
+      std::move(deps->webrtc_dependencies->socket_manager), io_task_runner_);
+  nearby_shared_remotes_->socket_manager.set_disconnect_handler(
+      base::BindOnce(&SharingImpl::OnDisconnect, weak_ptr_factory_.GetWeakPtr(),
+                     MojoDependencyName::kSocketManager),
+      base::SequencedTaskRunnerHandle::Get());
+
+  nearby_shared_remotes_->mdns_responder_factory.Bind(
+      std::move(deps->webrtc_dependencies->mdns_responder_factory),
+      io_task_runner_);
+  nearby_shared_remotes_->mdns_responder_factory.set_disconnect_handler(
+      base::BindOnce(&SharingImpl::OnDisconnect, weak_ptr_factory_.GetWeakPtr(),
+                     MojoDependencyName::kMdnsResponder),
+      base::SequencedTaskRunnerHandle::Get());
+
+  nearby_shared_remotes_->ice_config_fetcher.Bind(
+      std::move(deps->webrtc_dependencies->ice_config_fetcher),
+      io_task_runner_);
+  nearby_shared_remotes_->ice_config_fetcher.set_disconnect_handler(
+      base::BindOnce(&SharingImpl::OnDisconnect, weak_ptr_factory_.GetWeakPtr(),
+                     MojoDependencyName::kIceConfigFetcher),
+      base::SequencedTaskRunnerHandle::Get());
+
+  nearby_shared_remotes_->webrtc_signaling_messenger.Bind(
+      std::move(deps->webrtc_dependencies->messenger), io_task_runner_);
+  nearby_shared_remotes_->webrtc_signaling_messenger.set_disconnect_handler(
+      base::BindOnce(&SharingImpl::OnDisconnect, weak_ptr_factory_.GetWeakPtr(),
+                     MojoDependencyName::kWebRtcSignalingMessenger),
+      base::SequencedTaskRunnerHandle::Get());
+
+  // TODO(https://crbug.com/1261238): This should always be true when the
+  // WifiLan feature flag is enabled. Remove when flag is enabled by default.
+  if (deps->wifilan_dependencies) {
+    nearby_shared_remotes_->cros_network_config.Bind(
+        std::move(deps->wifilan_dependencies->cros_network_config),
+        io_task_runner_);
+    nearby_shared_remotes_->cros_network_config.set_disconnect_handler(
+        base::BindOnce(&SharingImpl::OnDisconnect,
+                       weak_ptr_factory_.GetWeakPtr(),
+                       MojoDependencyName::kCrosNetworkConfig),
+        base::SequencedTaskRunnerHandle::Get());
+
+    nearby_shared_remotes_->firewall_hole_factory.Bind(
+        std::move(deps->wifilan_dependencies->firewall_hole_factory),
+        io_task_runner_);
+    nearby_shared_remotes_->firewall_hole_factory.set_disconnect_handler(
+        base::BindOnce(&SharingImpl::OnDisconnect,
+                       weak_ptr_factory_.GetWeakPtr(),
+                       MojoDependencyName::kFirewallHoleFactory),
+        base::SequencedTaskRunnerHandle::Get());
+
+    nearby_shared_remotes_->tcp_socket_factory.Bind(
+        std::move(deps->wifilan_dependencies->tcp_socket_factory),
+        io_task_runner_);
+    nearby_shared_remotes_->tcp_socket_factory.set_disconnect_handler(
+        base::BindOnce(&SharingImpl::OnDisconnect,
+                       weak_ptr_factory_.GetWeakPtr(),
+                       MojoDependencyName::kTcpSocketFactory),
+        base::SequencedTaskRunnerHandle::Get());
+  }
+}
+
+std::string SharingImpl::GetMojoDependencyName(
+    MojoDependencyName dependency_name) {
+  switch (dependency_name) {
+    case MojoDependencyName::kNearbyConnections:
+      return "Nearby Connections";
+    case MojoDependencyName::kBluetoothAdapter:
+      return "Bluetooth Adapter";
+    case MojoDependencyName::kSocketManager:
+      return "Socket Manager";
+    case MojoDependencyName::kMdnsResponder:
+      return "MDNS Responder";
+    case MojoDependencyName::kIceConfigFetcher:
+      return "ICE Config Fetcher";
+    case MojoDependencyName::kWebRtcSignalingMessenger:
+      return "WebRTC Signaling Messenger";
+    case MojoDependencyName::kCrosNetworkConfig:
+      return "CrOS Network Config";
+    case MojoDependencyName::kFirewallHoleFactory:
+      return "Firewall Hole Factory";
+    case MojoDependencyName::kTcpSocketFactory:
+      return "TCP socket Factory";
+  }
+}
+
 }  // namespace sharing
diff --git a/chrome/services/sharing/sharing_impl.h b/chrome/services/sharing/sharing_impl.h
index 16a1e97..d257c0b 100644
--- a/chrome/services/sharing/sharing_impl.h
+++ b/chrome/services/sharing/sharing_impl.h
@@ -15,19 +15,16 @@
 #include "base/memory/scoped_refptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/task/sequenced_task_runner.h"
+#include "chrome/services/sharing/nearby/nearby_shared_remotes.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "services/network/public/mojom/mdns_responder.mojom-forward.h"
 #include "services/network/public/mojom/p2p.mojom-forward.h"
 
-namespace location {
-namespace nearby {
-namespace connections {
+namespace location::nearby::connections {
 class NearbyConnections;
-}  // namespace connections
-}  // namespace nearby
-}  // namespace location
+}  // namespace location::nearby::connections
 
 namespace sharing {
 
@@ -57,12 +54,32 @@
  private:
   friend class SharingImplTest;
 
+  // These values are used for metrics. Entries should not be renumbered and
+  // numeric values should never be reused. If entries are added, kMaxValue
+  // should be updated.
+  enum class MojoDependencyName {
+    kNearbyConnections = 0,
+    kBluetoothAdapter = 1,
+    kSocketManager = 2,
+    kMdnsResponder = 3,
+    kIceConfigFetcher = 4,
+    kWebRtcSignalingMessenger = 5,
+    kCrosNetworkConfig = 6,
+    kFirewallHoleFactory = 7,
+    kTcpSocketFactory = 8,
+    kMaxValue = kTcpSocketFactory
+  };
+
   void DoShutDown(bool is_expected);
-  void NearbyConnectionsDisconnected();
+  void OnDisconnect(MojoDependencyName mojo_dependency_name);
+  void InitializeNearbySharedRemotes(NearbyDependenciesPtr deps);
+  std::string GetMojoDependencyName(MojoDependencyName dependency_name);
 
   mojo::Receiver<mojom::Sharing> receiver_;
   const scoped_refptr<base::SequencedTaskRunner> io_task_runner_;
 
+  std::unique_ptr<location::nearby::NearbySharedRemotes> nearby_shared_remotes_;
+
   std::unique_ptr<NearbyConnections> nearby_connections_;
 
   std::unique_ptr<NearbySharingDecoder> nearby_decoder_;
diff --git a/chrome/services/system_signals/BUILD.gn b/chrome/services/system_signals/BUILD.gn
index 39c431c3..69d3887 100644
--- a/chrome/services/system_signals/BUILD.gn
+++ b/chrome/services/system_signals/BUILD.gn
@@ -4,19 +4,89 @@
 
 import("//build/config/features.gni")
 
-source_set("unit_tests") {
-  testonly = true
-  deps = []
+source_set("system_signals") {
+  public = []
+
+  sources = [
+    "base_system_signals_service.cc",
+    "base_system_signals_service.h",
+  ]
+
+  public_deps = [
+    "//components/device_signals/core/common/mojom",
+    "//mojo/public/mojom/base",
+  ]
+
+  deps = [
+    "//base",
+    "//components/device_signals/core/common",
+  ]
 
   if (is_win) {
-    deps += [ "//chrome/services/system_signals/win:unit_tests" ]
+    public += [ "win/win_system_signals_service.h" ]
+
+    sources += [
+      "win/metrics_utils.cc",
+      "win/metrics_utils.h",
+      "win/win_system_signals_service.cc",
+    ]
+
+    public_deps += [
+      "//components/device_signals/core/common/win",
+      "//components/device_signals/core/system_signals/win",
+    ]
   }
 
   if (is_mac) {
-    deps += [ "//chrome/services/system_signals/mac:unit_tests" ]
+    public += [ "mac/mac_system_signals_service.h" ]
+
+    sources += [ "mac/mac_system_signals_service.mm" ]
+
+    deps += [ "//components/device_signals/core/system_signals/mac" ]
   }
 
   if (is_linux) {
-    deps += [ "//chrome/services/system_signals/linux:unit_tests" ]
+    public += [ "linux/linux_system_signals_service.h" ]
+
+    sources += [ "linux/linux_system_signals_service.cc" ]
+
+    deps += [ "//components/device_signals/core/system_signals/linux" ]
+  }
+}
+
+source_set("unit_tests") {
+  testonly = true
+  sources = []
+
+  deps = [
+    ":system_signals",
+    "//base",
+    "//base/test:test_support",
+    "//components/device_signals/core/common",
+    "//components/device_signals/core/common/mojom",
+    "//components/device_signals/core/system_signals",
+    "//components/device_signals/core/system_signals:test_support",
+    "//mojo/public/mojom/base",
+    "//testing/gmock",
+    "//testing/gtest",
+    "//third_party/abseil-cpp:absl",
+  ]
+
+  if (is_win) {
+    sources += [ "win/win_system_signals_service_unittest.cc" ]
+
+    deps += [
+      "//components/device_signals/core/common/win",
+      "//components/device_signals/core/system_signals/win",
+      "//components/device_signals/core/system_signals/win:test_support",
+    ]
+  }
+
+  if (is_mac) {
+    sources += [ "mac/mac_system_signals_service_unittest.mm" ]
+  }
+
+  if (is_linux) {
+    sources += [ "linux/linux_system_signals_service_unittest.cc" ]
   }
 }
diff --git a/chrome/services/system_signals/base_system_signals_service.cc b/chrome/services/system_signals/base_system_signals_service.cc
new file mode 100644
index 0000000..e7b0e92
--- /dev/null
+++ b/chrome/services/system_signals/base_system_signals_service.cc
@@ -0,0 +1,28 @@
+// Copyright 2022 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/services/system_signals/linux/linux_system_signals_service.h"
+
+#include <utility>
+
+#include "components/device_signals/core/common/common_types.h"
+#include "components/device_signals/core/system_signals/file_system_service.h"
+
+namespace system_signals {
+
+BaseSystemSignalsService::BaseSystemSignalsService(
+    mojo::PendingReceiver<device_signals::mojom::SystemSignalsService> receiver,
+    std::unique_ptr<device_signals::FileSystemService> file_system_service)
+    : receiver_(this, std::move(receiver)),
+      file_system_service_(std::move(file_system_service)) {}
+
+BaseSystemSignalsService::~BaseSystemSignalsService() = default;
+
+void BaseSystemSignalsService::GetFileSystemSignals(
+    const std::vector<device_signals::GetFileSystemInfoOptions>& requests,
+    GetFileSystemSignalsCallback callback) {
+  std::move(callback).Run(file_system_service_->GetSignals(requests));
+}
+
+}  // namespace system_signals
diff --git a/chrome/services/system_signals/base_system_signals_service.h b/chrome/services/system_signals/base_system_signals_service.h
new file mode 100644
index 0000000..ebd8e2c
--- /dev/null
+++ b/chrome/services/system_signals/base_system_signals_service.h
@@ -0,0 +1,43 @@
+// Copyright 2022 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_SERVICES_SYSTEM_SIGNALS_BASE_SYSTEM_SIGNALS_SERVICE_H_
+#define CHROME_SERVICES_SYSTEM_SIGNALS_BASE_SYSTEM_SIGNALS_SERVICE_H_
+
+#include <memory>
+#include <vector>
+
+#include "components/device_signals/core/common/mojom/system_signals.mojom.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "mojo/public/cpp/bindings/receiver.h"
+
+namespace device_signals {
+class FileSystemService;
+}  // namespace device_signals
+
+namespace system_signals {
+
+class BaseSystemSignalsService
+    : public device_signals::mojom::SystemSignalsService {
+ public:
+  // device_signals::mojom::SystemSignalsService:
+  void GetFileSystemSignals(
+      const std::vector<device_signals::GetFileSystemInfoOptions>& requests,
+      GetFileSystemSignalsCallback callback) override;
+
+ protected:
+  explicit BaseSystemSignalsService(
+      mojo::PendingReceiver<device_signals::mojom::SystemSignalsService>
+          receiver,
+      std::unique_ptr<device_signals::FileSystemService> file_system_service);
+
+  ~BaseSystemSignalsService() override;
+
+  mojo::Receiver<device_signals::mojom::SystemSignalsService> receiver_;
+  std::unique_ptr<device_signals::FileSystemService> file_system_service_;
+};
+
+}  // namespace system_signals
+
+#endif  // CHROME_SERVICES_SYSTEM_SIGNALS_BASE_SYSTEM_SIGNALS_SERVICE_H_
diff --git a/chrome/services/system_signals/linux/BUILD.gn b/chrome/services/system_signals/linux/BUILD.gn
deleted file mode 100644
index 3f048e9e5..0000000
--- a/chrome/services/system_signals/linux/BUILD.gn
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2022 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("//build/config/features.gni")
-
-source_set("linux") {
-  public = [ "linux_system_signals_service.h" ]
-
-  sources = [ "linux_system_signals_service.cc" ]
-
-  public_deps = [ "//components/device_signals/core/common/mojom" ]
-
-  deps = [
-    "//base",
-    "//components/device_signals/core/common",
-    "//components/device_signals/core/common/linux",
-  ]
-}
-
-source_set("unit_tests") {
-  testonly = true
-  sources = [ "linux_system_signals_service_unittest.cc" ]
-
-  deps = [
-    ":linux",
-    "//base",
-    "//base/test:test_support",
-    "//components/device_signals/core/common",
-    "//components/device_signals/core/common:test_support",
-    "//components/device_signals/core/common/mojom",
-    "//mojo/public/mojom/base",
-    "//testing/gmock",
-    "//testing/gtest",
-  ]
-}
diff --git a/chrome/services/system_signals/linux/linux_system_signals_service.cc b/chrome/services/system_signals/linux/linux_system_signals_service.cc
index 2e567b0..4e64a1a 100644
--- a/chrome/services/system_signals/linux/linux_system_signals_service.cc
+++ b/chrome/services/system_signals/linux/linux_system_signals_service.cc
@@ -7,26 +7,25 @@
 #include <utility>
 
 #include "components/device_signals/core/common/common_types.h"
-#include "components/device_signals/core/common/file_system_service.h"
-#include "components/device_signals/core/common/linux/linux_platform_delegate.h"
-#include "components/device_signals/core/common/platform_delegate.h"
+#include "components/device_signals/core/system_signals/file_system_service.h"
+#include "components/device_signals/core/system_signals/linux/linux_platform_delegate.h"
+#include "components/device_signals/core/system_signals/platform_delegate.h"
 
 namespace system_signals {
 
-LinuxSystemSignalsService::LinuxSystemSignalsService()
-    : LinuxSystemSignalsService(device_signals::FileSystemService::Create(
-          std::make_unique<device_signals::LinuxPlatformDelegate>())) {}
+LinuxSystemSignalsService::LinuxSystemSignalsService(
+    mojo::PendingReceiver<device_signals::mojom::SystemSignalsService> receiver)
+    : LinuxSystemSignalsService(
+          std::move(receiver),
+          device_signals::FileSystemService::Create(
+              std::make_unique<device_signals::LinuxPlatformDelegate>())) {}
 
 LinuxSystemSignalsService::LinuxSystemSignalsService(
+    mojo::PendingReceiver<device_signals::mojom::SystemSignalsService> receiver,
     std::unique_ptr<device_signals::FileSystemService> file_system_service)
-    : file_system_service_(std::move(file_system_service)) {}
+    : BaseSystemSignalsService(std::move(receiver),
+                               std::move(file_system_service)) {}
 
 LinuxSystemSignalsService::~LinuxSystemSignalsService() = default;
 
-void LinuxSystemSignalsService::GetFileSystemSignals(
-    const std::vector<device_signals::GetFileSystemInfoOptions>& requests,
-    GetFileSystemSignalsCallback callback) {
-  std::move(callback).Run(file_system_service_->GetSignals(requests));
-}
-
 }  // namespace system_signals
diff --git a/chrome/services/system_signals/linux/linux_system_signals_service.h b/chrome/services/system_signals/linux/linux_system_signals_service.h
index eecc1db..3d71468 100644
--- a/chrome/services/system_signals/linux/linux_system_signals_service.h
+++ b/chrome/services/system_signals/linux/linux_system_signals_service.h
@@ -5,40 +5,29 @@
 #ifndef CHROME_SERVICES_SYSTEM_SIGNALS_LINUX_LINUX_SYSTEM_SIGNALS_SERVICE_H_
 #define CHROME_SERVICES_SYSTEM_SIGNALS_LINUX_LINUX_SYSTEM_SIGNALS_SERVICE_H_
 
-#include <memory>
-#include <vector>
-
-#include "components/device_signals/core/common/mojom/system_signals.mojom.h"
-
-namespace device_signals {
-class FileSystemService;
-}  // namespace device_signals
+#include "chrome/services/system_signals/base_system_signals_service.h"
 
 namespace system_signals {
 
-class LinuxSystemSignalsService
-    : public device_signals::mojom::SystemSignalsService {
+class LinuxSystemSignalsService : public BaseSystemSignalsService {
  public:
-  LinuxSystemSignalsService();
+  explicit LinuxSystemSignalsService(
+      mojo::PendingReceiver<device_signals::mojom::SystemSignalsService>
+          receiver);
   ~LinuxSystemSignalsService() override;
 
   LinuxSystemSignalsService(const LinuxSystemSignalsService&) = delete;
   LinuxSystemSignalsService& operator=(const LinuxSystemSignalsService&) =
       delete;
 
-  // device_signals::mojom::SystemSignalsService:
-  void GetFileSystemSignals(
-      const std::vector<device_signals::GetFileSystemInfoOptions>& requests,
-      GetFileSystemSignalsCallback callback) override;
-
  private:
   friend class LinuxSystemSignalsServiceTest;
 
   // Constructor that can be used by tests to mock out dependencies.
-  explicit LinuxSystemSignalsService(
+  LinuxSystemSignalsService(
+      mojo::PendingReceiver<device_signals::mojom::SystemSignalsService>
+          receiver,
       std::unique_ptr<device_signals::FileSystemService> file_system_service);
-
-  std::unique_ptr<device_signals::FileSystemService> file_system_service_;
 };
 
 }  // namespace system_signals
diff --git a/chrome/services/system_signals/linux/linux_system_signals_service_unittest.cc b/chrome/services/system_signals/linux/linux_system_signals_service_unittest.cc
index ddbf64d..11d1dcf6 100644
--- a/chrome/services/system_signals/linux/linux_system_signals_service_unittest.cc
+++ b/chrome/services/system_signals/linux/linux_system_signals_service_unittest.cc
@@ -11,8 +11,8 @@
 #include "base/test/task_environment.h"
 #include "base/test/test_future.h"
 #include "components/device_signals/core/common/common_types.h"
-#include "components/device_signals/core/common/file_system_service.h"
-#include "components/device_signals/core/common/mock_file_system_service.h"
+#include "components/device_signals/core/system_signals/file_system_service.h"
+#include "components/device_signals/core/system_signals/mock_file_system_service.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -28,10 +28,14 @@
         std::make_unique<testing::StrictMock<MockFileSystemService>>();
     file_system_service_ = file_system_service.get();
 
+    mojo::PendingReceiver<device_signals::mojom::SystemSignalsService>
+        fake_receiver;
+
     // Have to use "new" since make_unique doesn't have access to friend private
     // constructor.
     linux_system_signals_service_ = std::unique_ptr<LinuxSystemSignalsService>(
-        new LinuxSystemSignalsService(std::move(file_system_service)));
+        new LinuxSystemSignalsService(std::move(fake_receiver),
+                                      std::move(file_system_service)));
   }
 
   base::test::TaskEnvironment task_environment_;
diff --git a/chrome/services/system_signals/mac/BUILD.gn b/chrome/services/system_signals/mac/BUILD.gn
deleted file mode 100644
index c14e743..0000000
--- a/chrome/services/system_signals/mac/BUILD.gn
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2022 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("//build/config/features.gni")
-
-source_set("mac") {
-  public = [ "mac_system_signals_service.h" ]
-
-  sources = [ "mac_system_signals_service.mm" ]
-
-  public_deps = [ "//components/device_signals/core/common/mojom" ]
-
-  deps = [
-    "//base",
-    "//components/device_signals/core/common",
-    "//components/device_signals/core/common/mac",
-  ]
-}
-
-source_set("unit_tests") {
-  testonly = true
-  sources = [ "mac_system_signals_service_unittest.mm" ]
-
-  deps = [
-    ":mac",
-    "//base",
-    "//base/test:test_support",
-    "//components/device_signals/core/common",
-    "//components/device_signals/core/common:test_support",
-    "//components/device_signals/core/common/mojom",
-    "//mojo/public/mojom/base",
-    "//testing/gmock",
-    "//testing/gtest",
-  ]
-}
diff --git a/chrome/services/system_signals/mac/mac_system_signals_service.h b/chrome/services/system_signals/mac/mac_system_signals_service.h
index bf2c54d..3db01c4 100644
--- a/chrome/services/system_signals/mac/mac_system_signals_service.h
+++ b/chrome/services/system_signals/mac/mac_system_signals_service.h
@@ -5,39 +5,28 @@
 #ifndef CHROME_SERVICES_SYSTEM_SIGNALS_MAC_MAC_SYSTEM_SIGNALS_SERVICE_H_
 #define CHROME_SERVICES_SYSTEM_SIGNALS_MAC_MAC_SYSTEM_SIGNALS_SERVICE_H_
 
-#include <memory>
-#include <vector>
-
-#include "components/device_signals/core/common/mojom/system_signals.mojom.h"
-
-namespace device_signals {
-class FileSystemService;
-}  // namespace device_signals
+#include "chrome/services/system_signals/base_system_signals_service.h"
 
 namespace system_signals {
 
-class MacSystemSignalsService
-    : public device_signals::mojom::SystemSignalsService {
+class MacSystemSignalsService : public BaseSystemSignalsService {
  public:
-  MacSystemSignalsService();
+  explicit MacSystemSignalsService(
+      mojo::PendingReceiver<device_signals::mojom::SystemSignalsService>
+          receiver);
   ~MacSystemSignalsService() override;
 
   MacSystemSignalsService(const MacSystemSignalsService&) = delete;
   MacSystemSignalsService& operator=(const MacSystemSignalsService&) = delete;
 
-  // device_signals::mojom::SystemSignalsService:
-  void GetFileSystemSignals(
-      const std::vector<device_signals::GetFileSystemInfoOptions>& requests,
-      GetFileSystemSignalsCallback callback) override;
-
  private:
   friend class MacSystemSignalsServiceTest;
 
   // Constructor that can be used by tests to mock out dependencies.
-  explicit MacSystemSignalsService(
+  MacSystemSignalsService(
+      mojo::PendingReceiver<device_signals::mojom::SystemSignalsService>
+          receiver,
       std::unique_ptr<device_signals::FileSystemService> file_system_service);
-
-  std::unique_ptr<device_signals::FileSystemService> file_system_service_;
 };
 
 }  // namespace system_signals
diff --git a/chrome/services/system_signals/mac/mac_system_signals_service.mm b/chrome/services/system_signals/mac/mac_system_signals_service.mm
index 5e963787..59342e3 100644
--- a/chrome/services/system_signals/mac/mac_system_signals_service.mm
+++ b/chrome/services/system_signals/mac/mac_system_signals_service.mm
@@ -7,26 +7,25 @@
 #include <utility>
 
 #include "components/device_signals/core/common/common_types.h"
-#include "components/device_signals/core/common/file_system_service.h"
-#include "components/device_signals/core/common/mac/mac_platform_delegate.h"
-#include "components/device_signals/core/common/platform_delegate.h"
+#include "components/device_signals/core/system_signals/file_system_service.h"
+#include "components/device_signals/core/system_signals/mac/mac_platform_delegate.h"
+#include "components/device_signals/core/system_signals/platform_delegate.h"
 
 namespace system_signals {
 
-MacSystemSignalsService::MacSystemSignalsService()
-    : MacSystemSignalsService(device_signals::FileSystemService::Create(
-          std::make_unique<device_signals::MacPlatformDelegate>())) {}
+MacSystemSignalsService::MacSystemSignalsService(
+    mojo::PendingReceiver<device_signals::mojom::SystemSignalsService> receiver)
+    : MacSystemSignalsService(
+          std::move(receiver),
+          device_signals::FileSystemService::Create(
+              std::make_unique<device_signals::MacPlatformDelegate>())) {}
 
 MacSystemSignalsService::MacSystemSignalsService(
+    mojo::PendingReceiver<device_signals::mojom::SystemSignalsService> receiver,
     std::unique_ptr<device_signals::FileSystemService> file_system_service)
-    : file_system_service_(std::move(file_system_service)) {}
+    : BaseSystemSignalsService(std::move(receiver),
+                               std::move(file_system_service)) {}
 
 MacSystemSignalsService::~MacSystemSignalsService() = default;
 
-void MacSystemSignalsService::GetFileSystemSignals(
-    const std::vector<device_signals::GetFileSystemInfoOptions>& requests,
-    GetFileSystemSignalsCallback callback) {
-  std::move(callback).Run(file_system_service_->GetSignals(requests));
-}
-
 }  // namespace system_signals
diff --git a/chrome/services/system_signals/mac/mac_system_signals_service_unittest.mm b/chrome/services/system_signals/mac/mac_system_signals_service_unittest.mm
index b243241..28d88e1 100644
--- a/chrome/services/system_signals/mac/mac_system_signals_service_unittest.mm
+++ b/chrome/services/system_signals/mac/mac_system_signals_service_unittest.mm
@@ -11,8 +11,8 @@
 #include "base/test/task_environment.h"
 #include "base/test/test_future.h"
 #include "components/device_signals/core/common/common_types.h"
-#include "components/device_signals/core/common/file_system_service.h"
-#include "components/device_signals/core/common/mock_file_system_service.h"
+#include "components/device_signals/core/system_signals/file_system_service.h"
+#include "components/device_signals/core/system_signals/mock_file_system_service.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -28,10 +28,14 @@
         std::make_unique<testing::StrictMock<MockFileSystemService>>();
     file_system_service_ = file_system_service.get();
 
+    mojo::PendingReceiver<device_signals::mojom::SystemSignalsService>
+        fake_receiver;
+
     // Have to use "new" since make_unique doesn't have access to friend private
     // constructor.
-    mac_system_signals_service_ = std::unique_ptr<MacSystemSignalsService>(
-        new MacSystemSignalsService(std::move(file_system_service)));
+    mac_system_signals_service_ =
+        std::unique_ptr<MacSystemSignalsService>(new MacSystemSignalsService(
+            std::move(fake_receiver), std::move(file_system_service)));
   }
 
   base::test::TaskEnvironment task_environment_;
diff --git a/chrome/services/system_signals/public/cpp/browser/BUILD.gn b/chrome/services/system_signals/public/cpp/browser/BUILD.gn
index cf5fed9..eedbc9a6 100644
--- a/chrome/services/system_signals/public/cpp/browser/BUILD.gn
+++ b/chrome/services/system_signals/public/cpp/browser/BUILD.gn
@@ -15,20 +15,9 @@
     "//mojo/public/mojom/base",
   ]
 
-  deps = [ "//base" ]
-
-  if (is_win) {
-    deps += [
-      "//chrome:strings",
-      "//content/public/browser",
-    ]
-  }
-
-  if (is_mac) {
-    deps += [ "//chrome/services/system_signals/mac" ]
-  }
-
-  if (is_linux) {
-    deps += [ "//chrome/services/system_signals/linux" ]
-  }
+  deps = [
+    "//base",
+    "//chrome:strings",
+    "//content/public/browser",
+  ]
 }
diff --git a/chrome/services/system_signals/public/cpp/browser/system_signals_service_host_impl.cc b/chrome/services/system_signals/public/cpp/browser/system_signals_service_host_impl.cc
index eb0d2e6f..76b89af 100644
--- a/chrome/services/system_signals/public/cpp/browser/system_signals_service_host_impl.cc
+++ b/chrome/services/system_signals/public/cpp/browser/system_signals_service_host_impl.cc
@@ -6,23 +6,15 @@
 
 #include "components/device_signals/core/common/mojom/system_signals.mojom.h"
 
-#if BUILDFLAG(IS_WIN)
 #include "base/time/time.h"
 #include "chrome/grit/generated_resources.h"              // nogncheck
 #include "content/public/browser/service_process_host.h"  // nogncheck
-#elif BUILDFLAG(IS_MAC)
-#include "chrome/services/system_signals/mac/mac_system_signals_service.h"
-#elif BUILDFLAG(IS_LINUX)
-#include "chrome/services/system_signals/linux/linux_system_signals_service.h"
-#endif
 
 namespace system_signals {
 
 SystemSignalsServiceHostImpl::SystemSignalsServiceHostImpl() = default;
 SystemSignalsServiceHostImpl::~SystemSignalsServiceHostImpl() = default;
 
-#if BUILDFLAG(IS_WIN)
-
 device_signals::mojom::SystemSignalsService*
 SystemSignalsServiceHostImpl::GetService() {
   // To prevent any impact on Chrome's stability and memory footprint, run
@@ -39,19 +31,4 @@
   return remote_service_.get();
 }
 
-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
-
-device_signals::mojom::SystemSignalsService*
-SystemSignalsServiceHostImpl::GetService() {
-  if (!local_service_) {
-#if BUILDFLAG(IS_MAC)
-    local_service_ = std::make_unique<MacSystemSignalsService>();
-#else
-    local_service_ = std::make_unique<LinuxSystemSignalsService>();
-#endif  // BUILDFLAG(IS_MAC)
-  }
-  return local_service_.get();
-}
-#endif  // BUILDFLAG(IS_WIN)
-
 }  // namespace system_signals
diff --git a/chrome/services/system_signals/public/cpp/browser/system_signals_service_host_impl.h b/chrome/services/system_signals/public/cpp/browser/system_signals_service_host_impl.h
index 4a0b3a7..7074c5b 100644
--- a/chrome/services/system_signals/public/cpp/browser/system_signals_service_host_impl.h
+++ b/chrome/services/system_signals/public/cpp/browser/system_signals_service_host_impl.h
@@ -5,16 +5,10 @@
 #ifndef CHROME_SERVICES_SYSTEM_SIGNALS_PUBLIC_CPP_BROWSER_SYSTEM_SIGNALS_SERVICE_HOST_IMPL_H_
 #define CHROME_SERVICES_SYSTEM_SIGNALS_PUBLIC_CPP_BROWSER_SYSTEM_SIGNALS_SERVICE_HOST_IMPL_H_
 
-#include "build/build_config.h"
 #include "components/device_signals/core/browser/system_signals_service_host.h"
 
-#if BUILDFLAG(IS_WIN)
 #include "components/device_signals/core/common/mojom/system_signals.mojom.h"
 #include "mojo/public/cpp/bindings/remote.h"
-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
-#include <memory>
-#include "components/device_signals/core/common/mojom/system_signals.mojom-forward.h"
-#endif
 
 namespace system_signals {
 
@@ -32,11 +26,7 @@
   device_signals::mojom::SystemSignalsService* GetService() override;
 
  private:
-#if BUILDFLAG(IS_WIN)
   mojo::Remote<device_signals::mojom::SystemSignalsService> remote_service_;
-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
-  std::unique_ptr<device_signals::mojom::SystemSignalsService> local_service_;
-#endif
 };
 
 }  // namespace system_signals
diff --git a/chrome/services/system_signals/win/BUILD.gn b/chrome/services/system_signals/win/BUILD.gn
deleted file mode 100644
index 9c09314..0000000
--- a/chrome/services/system_signals/win/BUILD.gn
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 2022 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("//build/config/features.gni")
-
-source_set("win") {
-  public = [ "win_system_signals_service.h" ]
-
-  sources = [
-    "metrics_utils.cc",
-    "metrics_utils.h",
-    "win_system_signals_service.cc",
-  ]
-
-  public_deps = [
-    "//components/device_signals/core/common/mojom",
-    "//components/device_signals/core/common/win",
-    "//components/device_signals/core/system_signals/win",
-    "//mojo/public/mojom/base",
-  ]
-
-  deps = [
-    "//base",
-    "//components/device_signals/core/common",
-  ]
-}
-
-source_set("unit_tests") {
-  testonly = true
-  sources = [ "win_system_signals_service_unittest.cc" ]
-
-  deps = [
-    ":win",
-    "//base",
-    "//base/test:test_support",
-    "//components/device_signals/core/common",
-    "//components/device_signals/core/common:test_support",
-    "//components/device_signals/core/common/mojom",
-    "//components/device_signals/core/common/win",
-    "//components/device_signals/core/system_signals/win",
-    "//components/device_signals/core/system_signals/win:test_support",
-    "//mojo/public/mojom/base",
-    "//testing/gmock",
-    "//testing/gtest",
-    "//third_party/abseil-cpp:absl",
-  ]
-}
diff --git a/chrome/services/system_signals/win/win_system_signals_service.cc b/chrome/services/system_signals/win/win_system_signals_service.cc
index a3355f3..4d758bed 100644
--- a/chrome/services/system_signals/win/win_system_signals_service.cc
+++ b/chrome/services/system_signals/win/win_system_signals_service.cc
@@ -7,8 +7,8 @@
 #include "base/win/windows_version.h"
 #include "chrome/services/system_signals/win/metrics_utils.h"
 #include "components/device_signals/core/common/common_types.h"
-#include "components/device_signals/core/common/file_system_service.h"
-#include "components/device_signals/core/common/platform_delegate.h"
+#include "components/device_signals/core/system_signals/file_system_service.h"
+#include "components/device_signals/core/system_signals/platform_delegate.h"
 #include "components/device_signals/core/system_signals/win/win_platform_delegate.h"
 #include "components/device_signals/core/system_signals/win/wmi_client.h"
 #include "components/device_signals/core/system_signals/win/wmi_client_impl.h"
@@ -31,19 +31,13 @@
     std::unique_ptr<device_signals::FileSystemService> file_system_service,
     std::unique_ptr<device_signals::WmiClient> wmi_client,
     std::unique_ptr<device_signals::WscClient> wsc_client)
-    : receiver_(this, std::move(receiver)),
-      file_system_service_(std::move(file_system_service)),
+    : BaseSystemSignalsService(std::move(receiver),
+                               std::move(file_system_service)),
       wmi_client_(std::move(wmi_client)),
       wsc_client_(std::move(wsc_client)) {}
 
 WinSystemSignalsService::~WinSystemSignalsService() = default;
 
-void WinSystemSignalsService::GetFileSystemSignals(
-    const std::vector<device_signals::GetFileSystemInfoOptions>& requests,
-    GetFileSystemSignalsCallback callback) {
-  std::move(callback).Run(file_system_service_->GetSignals(requests));
-}
-
 void WinSystemSignalsService::GetAntiVirusSignals(
     GetAntiVirusSignalsCallback callback) {
   // The AV signal is not supported on Win server builds.
diff --git a/chrome/services/system_signals/win/win_system_signals_service.h b/chrome/services/system_signals/win/win_system_signals_service.h
index 1b2a6393..c1f4400 100644
--- a/chrome/services/system_signals/win/win_system_signals_service.h
+++ b/chrome/services/system_signals/win/win_system_signals_service.h
@@ -5,13 +5,8 @@
 #ifndef CHROME_SERVICES_SYSTEM_SIGNALS_WIN_WIN_SYSTEM_SIGNALS_SERVICE_H_
 #define CHROME_SERVICES_SYSTEM_SIGNALS_WIN_WIN_SYSTEM_SIGNALS_SERVICE_H_
 
-#include <memory>
-#include <vector>
-
 #include "base/win/scoped_com_initializer.h"
-#include "components/device_signals/core/common/mojom/system_signals.mojom.h"
-#include "mojo/public/cpp/bindings/pending_receiver.h"
-#include "mojo/public/cpp/bindings/receiver.h"
+#include "chrome/services/system_signals/base_system_signals_service.h"
 
 namespace device_signals {
 class FileSystemService;
@@ -21,8 +16,7 @@
 
 namespace system_signals {
 
-class WinSystemSignalsService
-    : public device_signals::mojom::SystemSignalsService {
+class WinSystemSignalsService : public BaseSystemSignalsService {
  public:
   explicit WinSystemSignalsService(
       mojo::PendingReceiver<device_signals::mojom::SystemSignalsService>
@@ -34,9 +28,6 @@
   WinSystemSignalsService& operator=(const WinSystemSignalsService&) = delete;
 
   // mojom::SystemSignalsService:
-  void GetFileSystemSignals(
-      const std::vector<device_signals::GetFileSystemInfoOptions>& requests,
-      GetFileSystemSignalsCallback callback) override;
   void GetAntiVirusSignals(GetAntiVirusSignalsCallback callback) override;
   void GetHotfixSignals(GetHotfixSignalsCallback callback) override;
 
@@ -51,8 +42,6 @@
       std::unique_ptr<device_signals::WmiClient> wmi_client,
       std::unique_ptr<device_signals::WscClient> wsc_client);
 
-  mojo::Receiver<device_signals::mojom::SystemSignalsService> receiver_;
-  std::unique_ptr<device_signals::FileSystemService> file_system_service_;
   std::unique_ptr<device_signals::WmiClient> wmi_client_;
   std::unique_ptr<device_signals::WscClient> wsc_client_;
   base::win::ScopedCOMInitializer scoped_com_initializer_;
diff --git a/chrome/services/system_signals/win/win_system_signals_service_unittest.cc b/chrome/services/system_signals/win/win_system_signals_service_unittest.cc
index 65c10ac..2c92545f4 100644
--- a/chrome/services/system_signals/win/win_system_signals_service_unittest.cc
+++ b/chrome/services/system_signals/win/win_system_signals_service_unittest.cc
@@ -14,9 +14,9 @@
 #include "base/test/task_environment.h"
 #include "base/test/test_future.h"
 #include "components/device_signals/core/common/common_types.h"
-#include "components/device_signals/core/common/file_system_service.h"
-#include "components/device_signals/core/common/mock_file_system_service.h"
 #include "components/device_signals/core/common/win/win_types.h"
+#include "components/device_signals/core/system_signals/file_system_service.h"
+#include "components/device_signals/core/system_signals/mock_file_system_service.h"
 #include "components/device_signals/core/system_signals/win/mock_wmi_client.h"
 #include "components/device_signals/core/system_signals/win/mock_wsc_client.h"
 #include "components/device_signals/core/system_signals/win/wmi_client.h"
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 94a2be0..653b1ce2 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -3838,6 +3838,7 @@
         "../browser/ash/policy/login/signin_profile_extensions_policy_browsertest.cc",
         "../browser/ash/policy/networking/network_policy_application_browsertest.cc",
         "../browser/ash/policy/networking/policy_certs_browsertest.cc",
+        "../browser/ash/policy/reporting/metrics_reporting/usb/usb_events_browsertest.cc",
         "../browser/ash/policy/reporting/user_added_removed/user_added_removed_reporter_browsertest.cc",
         "../browser/ash/policy/status_collector/child_status_collector_browsertest.cc",
         "../browser/ash/policy/status_collector/device_status_collector_browsertest.cc",
@@ -4235,6 +4236,7 @@
         "//components/quirks",
         "//components/reporting/client:report_queue",
         "//components/reporting/client:test_support",
+        "//components/reporting/proto:metric_data_proto",
         "//components/reporting/storage:test_support",
         "//components/reporting/util:test_callbacks_support",
         "//components/rlz",
diff --git a/chrome/test/data/policy/policy_test_cases.json b/chrome/test/data/policy/policy_test_cases.json
index a5db0be..2ef7b7d 100644
--- a/chrome/test/data/policy/policy_test_cases.json
+++ b/chrome/test/data/policy/policy_test_cases.json
@@ -13486,19 +13486,7 @@
     ]
   },
   "ExtensionInstallEventLoggingEnabled": {
-    "os": [
-      "chromeos_ash"
-    ],
-    "policy_pref_mapping_tests": [
-      {
-        "policies": {
-          "ExtensionInstallEventLoggingEnabled": true
-        },
-        "prefs": {
-          "extensions.install.event_logging_enabled": {}
-        }
-      }
-    ]
+    "reason_for_missing_test": "Policy was removed"
   },
   "UsageTimeLimit": {
     "os": [
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn
index 69bfeb3..908c790 100644
--- a/chrome/test/data/webui/BUILD.gn
+++ b/chrome/test/data/webui/BUILD.gn
@@ -434,11 +434,15 @@
     "color_provider_css_colors_test.ts",
     "color_provider_css_colors_test_chromeos.ts",
     "cr_focus_row_behavior_test.ts",
-    "resources/list_property_update_behavior_tests.ts",
     "resources/list_property_update_mixin_tests.ts",
     "text_defaults_test.ts",
     "test_store_ts.ts",
   ]
+
+  if (is_chromeos_ash) {
+    in_files += [ "resources/list_property_update_behavior_tests.ts" ]
+  }
+
   deps = [ "//ui/webui/resources:library" ]
   extra_deps = [ ":generate_definitions" ]
   definitions = [
diff --git a/chrome/test/data/webui/chromeos/os_feedback_ui/share_data_page_test.js b/chrome/test/data/webui/chromeos/os_feedback_ui/share_data_page_test.js
index f7aa6a0..a81428b9 100644
--- a/chrome/test/data/webui/chromeos/os_feedback_ui/share_data_page_test.js
+++ b/chrome/test/data/webui/chromeos/os_feedback_ui/share_data_page_test.js
@@ -8,7 +8,7 @@
 import {fakeEmptyFeedbackContext, fakeFeedbackContext} from 'chrome://os-feedback/fake_data.js';
 import {FakeFeedbackServiceProvider} from 'chrome://os-feedback/fake_feedback_service_provider.js';
 import {FeedbackFlowState} from 'chrome://os-feedback/feedback_flow.js';
-import {FeedbackContext} from 'chrome://os-feedback/feedback_types.js';
+import {FeedbackAppPreSubmitAction, FeedbackContext} from 'chrome://os-feedback/feedback_types.js';
 import {setFeedbackServiceProviderForTesting} from 'chrome://os-feedback/mojo_interface_provider.js';
 import {ShareDataPageElement} from 'chrome://os-feedback/share_data_page.js';
 import {mojoString16ToString, stringToMojoString16} from 'chrome://resources/ash/common/mojo_utils.js';
@@ -70,6 +70,17 @@
   }
 
   /**
+   * @param {number} callCounts
+   * @param {FeedbackAppPreSubmitAction} action
+   * @private
+   */
+  function verifyRecordPreSubmitActionCallCount(callCounts, action) {
+    assertEquals(
+        callCounts,
+        feedbackServiceProvider.getRecordPreSubmitActionCallCount(action));
+  }
+
+  /**
    * Helper function which will click the send button, wait for the event
    * 'continue-click', and return the detail data of the event.
    * @param {!Element} element
@@ -400,6 +411,8 @@
   // focus on the close dialog icon button.
   test('screenshotPreview', async () => {
     await initializePage();
+    verifyRecordPreSubmitActionCallCount(
+        0, FeedbackAppPreSubmitAction.kViewedScreenshot);
     page.feedbackContext = fakeFeedbackContext;
     page.screenshotUrl = fakeImageUrl;
     assertEquals(fakeImageUrl, getElement('#screenshotImage').src);
@@ -418,6 +431,8 @@
     assertTrue(isVisible(closeDialogButton));
     // The preview dialog's close icon button is focused.
     assertEquals(closeDialogButton, getDeepActiveElement());
+    verifyRecordPreSubmitActionCallCount(
+        1, FeedbackAppPreSubmitAction.kViewedScreenshot);
 
     // Press enter should close the preview dialog.
     closeDialogButton.dispatchEvent(
diff --git a/chrome/test/data/webui/chromeos/shimless_rma/onboarding_select_components_page_test.js b/chrome/test/data/webui/chromeos/shimless_rma/onboarding_select_components_page_test.js
index bc83b542..b01976a 100644
--- a/chrome/test/data/webui/chromeos/shimless_rma/onboarding_select_components_page_test.js
+++ b/chrome/test/data/webui/chromeos/shimless_rma/onboarding_select_components_page_test.js
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
+import {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
 import {fakeComponentsForRepairStateTest} from 'chrome://shimless-rma/fake_data.js';
 import {FakeShimlessRmaService} from 'chrome://shimless-rma/fake_shimless_rma_service.js';
 import {setShimlessRmaServiceForTesting} from 'chrome://shimless-rma/mojo_interface_provider.js';
@@ -128,7 +129,7 @@
 
     const components = getComponentRepairStateList();
     assertNotEquals(fakeComponentsForRepairStateTest, components);
-    fakeComponentsForRepairStateTest[0].state = ComponentRepairStatus.kReplaced;
+    fakeComponentsForRepairStateTest[1].state = ComponentRepairStatus.kReplaced;
     assertDeepEquals(fakeComponentsForRepairStateTest, components);
   });
 
@@ -195,4 +196,110 @@
 
     assertEquals(0, callCounter);
   });
+
+  test('SelectComponentsPageKeyboardNavigationWorks', async () => {
+    await initializeComponentSelectPage(fakeComponentsForRepairStateTest);
+
+    const componentCameraButton =
+        component.shadowRoot.querySelector('#componentCamera')
+            .shadowRoot.querySelector('#componentButton');
+    const componentTouchpadButton =
+        component.shadowRoot.querySelector('#componentTouchpad')
+            .shadowRoot.querySelector('#componentButton');
+    const componentNetworkButton =
+        component.shadowRoot.querySelector('#componentNetwork')
+            .shadowRoot.querySelector('#componentButton');
+    // There are two cameras, so we can only get the first one by the id. We get
+    // the second one by the unique id.
+    const componentSecondCameraButton =
+        component.shadowRoot.querySelector('[unique-id="7"]')
+            .shadowRoot.querySelector('#componentButton');
+
+    await flushTasks();
+
+    // At the beginning we should be focused on the first clickable component,
+    // which is the camera.
+    assertDeepEquals(componentCameraButton, getDeepActiveElement());
+    // We are at the beginning of the list, so left arrow should do nothing.
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowLeft'}));
+    await flushTasks();
+    assertDeepEquals(componentCameraButton, getDeepActiveElement());
+
+    // Skip the battery because it's missing.
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowRight'}));
+    await flushTasks();
+    assertDeepEquals(componentTouchpadButton, getDeepActiveElement());
+
+    // Skip two components.
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowRight'}));
+    await flushTasks();
+    assertDeepEquals(componentNetworkButton, getDeepActiveElement());
+
+    // If the next component is good, we don't skip it.
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowRight'}));
+    await flushTasks();
+    assertDeepEquals(componentSecondCameraButton, getDeepActiveElement());
+
+    // We have reached the end of the list, so we can't go any further.
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowRight'}));
+    await flushTasks();
+    assertDeepEquals(componentSecondCameraButton, getDeepActiveElement());
+
+    // Check that we can go backwards the same way.
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowLeft'}));
+    await flushTasks();
+    assertDeepEquals(componentNetworkButton, getDeepActiveElement());
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowLeft'}));
+    await flushTasks();
+    assertDeepEquals(componentTouchpadButton, getDeepActiveElement());
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowLeft'}));
+    await flushTasks();
+    assertDeepEquals(componentCameraButton, getDeepActiveElement());
+
+    // Check that the down button navigates down the column. It should skip the
+    // network component, because it is in a different column.
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowDown'}));
+    await flushTasks();
+    assertDeepEquals(componentTouchpadButton, getDeepActiveElement());
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowDown'}));
+    await flushTasks();
+    assertDeepEquals(componentSecondCameraButton, getDeepActiveElement());
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowDown'}));
+    await flushTasks();
+    assertDeepEquals(componentSecondCameraButton, getDeepActiveElement());
+
+    // The up button should work in a similar way.
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowUp'}));
+    await flushTasks();
+    assertDeepEquals(componentTouchpadButton, getDeepActiveElement());
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowUp'}));
+    await flushTasks();
+    assertDeepEquals(componentCameraButton, getDeepActiveElement());
+    window.dispatchEvent(new KeyboardEvent('keydown', {key: 'ArrowUp'}));
+    await flushTasks();
+    assertDeepEquals(componentCameraButton, getDeepActiveElement());
+
+    // Click on the touchpad button. It should come into focus.
+    componentTouchpadButton.click();
+    await flushTasks();
+    assertDeepEquals(componentTouchpadButton, getDeepActiveElement());
+
+    // Click on the battery button. It's disabled, so we shouldn't focus on it.
+    const componentBatteryButton =
+        component.shadowRoot.querySelector('#componentBattery')
+            .shadowRoot.querySelector('#componentButton');
+    componentBatteryButton.click();
+    await flushTasks();
+    assertDeepEquals(componentTouchpadButton, getDeepActiveElement());
+
+    // Make sure we can bring both cameras into focus, even though they have the
+    // same id.
+    componentCameraButton.click();
+    await flushTasks();
+    assertDeepEquals(componentCameraButton, getDeepActiveElement());
+
+    componentSecondCameraButton.click();
+    await flushTasks();
+    assertDeepEquals(componentSecondCameraButton, getDeepActiveElement());
+  });
 }
diff --git a/chrome/test/data/webui/cr_elements/cr_expand_button_tests.ts b/chrome/test/data/webui/cr_elements/cr_expand_button_tests.ts
index 7e14bf7..efc5c2d 100644
--- a/chrome/test/data/webui/cr_elements/cr_expand_button_tests.ts
+++ b/chrome/test/data/webui/cr_elements/cr_expand_button_tests.ts
@@ -3,11 +3,10 @@
 // found in the LICENSE file.
 
 // clang-format off
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 
-import {CrExpandButtonElement} from 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
+import {CrExpandButtonElement} from 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
 import {CrIconButtonElement} from 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.m.js';
-
 import {assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js';
 // clang-format on
 
diff --git a/chrome/test/data/webui/new_tab_page/modules/task_module/module_test.ts b/chrome/test/data/webui/new_tab_page/modules/task_module/module_test.ts
index 237bdb3f..e97477fc 100644
--- a/chrome/test/data/webui/new_tab_page/modules/task_module/module_test.ts
+++ b/chrome/test/data/webui/new_tab_page/modules/task_module/module_test.ts
@@ -8,7 +8,7 @@
 import {$$, CrAutoImgElement} from 'chrome://new-tab-page/new_tab_page.js';
 import {TaskModuleHandlerRemote} from 'chrome://new-tab-page/task_module.mojom-webui.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
-import {assertEquals, assertTrue} from 'chrome://webui-test/chai_assert.js';
+import {assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js';
 import {TestBrowserProxy} from 'chrome://webui-test/test_browser_proxy.js';
 import {eventToPromise, flushTasks} from 'chrome://webui-test/test_util.js';
 
@@ -310,4 +310,91 @@
           assertTrue(disableButton.innerText.includes(showText));
         });
   });
+
+  test('hide query chip container when relatedSearches is empty', async () => {
+    // Arrange.
+    const task = {
+      title: 'Hello world',
+      taskItems: [
+        {
+          name: 'foo',
+          imageUrl: {url: 'https://foo.com/img.png'},
+          siteName: 'Foo Site',
+          info: 'foo info',
+          targetUrl: {url: 'https://foo.com'},
+        },
+        {
+          name: 'bar',
+          imageUrl: {url: 'https://bar.com/img.png'},
+          siteName: 'Bar Site',
+          info: 'bar info',
+          targetUrl: {url: 'https://bar.com'},
+        },
+      ],
+      relatedSearches: [],
+    };
+    handler.setResultFor('getPrimaryTask', Promise.resolve({task}));
+
+    // Act.
+    const moduleElement =
+        await recipeTasksDescriptor.initialize(0) as TaskModuleElement;
+    document.body.append(moduleElement);
+    moduleElement.$.taskItemsRepeat.render();
+    moduleElement.$.relatedSearchesRepeat.render();
+
+    // Assert.
+    const relatedSearchesContainer =
+        moduleElement.shadowRoot!.querySelector<HTMLAnchorElement>(
+            '#relatedSearches');
+    assertTrue(relatedSearchesContainer!.hidden);
+  });
+
+  test(
+      'show query chip container when relatedSearches is not empty',
+      async () => {
+        // Arrange.
+        const task = {
+          title: 'Hello world',
+          taskItems: [
+            {
+              name: 'foo',
+              imageUrl: {url: 'https://foo.com/img.png'},
+              siteName: 'Foo Site',
+              info: 'foo info',
+              targetUrl: {url: 'https://foo.com'},
+            },
+            {
+              name: 'bar',
+              imageUrl: {url: 'https://bar.com/img.png'},
+              siteName: 'Bar Site',
+              info: 'bar info',
+              targetUrl: {url: 'https://bar.com'},
+            },
+          ],
+          relatedSearches: [
+            {
+              text: 'baz',
+              targetUrl: {url: 'https://baz.com'},
+            },
+            {
+              text: 'blub',
+              targetUrl: {url: 'https://blub.com'},
+            },
+          ],
+        };
+        handler.setResultFor('getPrimaryTask', Promise.resolve({task}));
+
+        // Act.
+        const moduleElement =
+            await recipeTasksDescriptor.initialize(0) as TaskModuleElement;
+        document.body.append(moduleElement);
+        moduleElement.$.taskItemsRepeat.render();
+        moduleElement.$.relatedSearchesRepeat.render();
+
+        // Assert.
+        const relatedSearchesContainer =
+            moduleElement.shadowRoot!.querySelector<HTMLAnchorElement>(
+                '#relatedSearches');
+        assertFalse(relatedSearchesContainer!.hidden);
+      });
 });
diff --git a/chrome/test/data/webui/resources/list_property_update_behavior_tests.ts b/chrome/test/data/webui/resources/list_property_update_behavior_tests.ts
index 37bb75a..854bdeda 100644
--- a/chrome/test/data/webui/resources/list_property_update_behavior_tests.ts
+++ b/chrome/test/data/webui/resources/list_property_update_behavior_tests.ts
@@ -4,7 +4,7 @@
 
 /** @fileoverview Suite of tests for the ListPropertyUpdateBehavior.  */
 
-import {ListPropertyUpdateBehavior} from 'chrome://resources/js/list_property_update_behavior.m.js';
+import {ListPropertyUpdateBehavior} from 'chrome://resources/js/list_property_update_behavior.js';
 import {mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {assertDeepEquals, assertEquals, assertFalse, assertNotEquals, assertTrue} from 'chrome://webui-test/chai_assert.js';
 
diff --git a/chrome/test/data/webui/resources/webui_resources_browsertest.js b/chrome/test/data/webui/resources/webui_resources_browsertest.js
index 39dd41cf..406ce22e 100644
--- a/chrome/test/data/webui/resources/webui_resources_browsertest.js
+++ b/chrome/test/data/webui/resources/webui_resources_browsertest.js
@@ -7,6 +7,7 @@
 // Polymer BrowserTest fixture.
 GEN_INCLUDE(['//chrome/test/data/webui/polymer_browser_test_base.js']);
 
+GEN('#include "build/chromeos_buildflags.h"');
 GEN('#include "content/public/test/browser_test.h"');
 
 /* eslint-disable no-var */
@@ -23,6 +24,7 @@
   }
 };
 
+GEN('#if BUILDFLAG(IS_CHROMEOS_ASH)');
 var WebUIResourcesListPropertyUpdateBehaviorTest =
     class extends WebUIResourcesBrowserTest {
   /** @override */
@@ -34,6 +36,7 @@
 TEST_F('WebUIResourcesListPropertyUpdateBehaviorTest', 'All', function() {
   mocha.run();
 });
+GEN('#endif');
 
 var WebUIResourcesListPropertyUpdateMixinTest =
     class extends WebUIResourcesBrowserTest {
diff --git a/chrome/test/data/webui/settings/BUILD.gn b/chrome/test/data/webui/settings/BUILD.gn
index a8291588..e58de34 100644
--- a/chrome/test/data/webui/settings/BUILD.gn
+++ b/chrome/test/data/webui/settings/BUILD.gn
@@ -38,6 +38,7 @@
     "spell_check_page_tests.ts",
     "languages_page_metrics_test_browser.ts",
     "translate_page_metrics_test_browser.ts",
+    "spell_check_page_metrics_test_browser.ts",
   ]
 }
 
@@ -117,6 +118,7 @@
   "site_settings_page_test.ts",
   "startup_urls_page_test.ts",
   "sync_test_util.ts",
+  "test_autofill_assistant_browser_proxy.ts",
   "test_clear_browsing_data_browser_proxy.ts",
   "test_extension_control_browser_proxy.ts",
   "test_hats_browser_proxy.ts",
diff --git a/chrome/test/data/webui/settings/cr_settings_browsertest.js b/chrome/test/data/webui/settings/cr_settings_browsertest.js
index cb2fbdb6d..a06c76f 100644
--- a/chrome/test/data/webui/settings/cr_settings_browsertest.js
+++ b/chrome/test/data/webui/settings/cr_settings_browsertest.js
@@ -171,6 +171,28 @@
     function() {
       runMochaSuite('TranslatePageMetricsBrowser');
     });
+var CrSettingsSpellCheckPageMetricsTest = class extends CrSettingsBrowserTest {
+  /** @override */
+  get browsePreload() {
+    return 'chrome://settings/test_loader.html?module=settings/spell_check_page_metrics_test_browser.js';
+  }
+};
+
+TEST_F('CrSettingsSpellCheckPageMetricsTest', 'SpellCheckMetrics', function() {
+  mocha.grep(spell_check_page_metrics_test_browser.TestNames.SpellCheckMetrics).run();
+});
+
+GEN('#if BUILDFLAG(GOOGLE_CHROME_BRANDING)');
+TEST_F('CrSettingsSpellCheckPageMetricsTest', 'SpellCheckMetricsOfficialBuild', function() {
+  mocha.grep(spell_check_page_metrics_test_browser.TestNames.SpellCheckMetricsOfficialBuild).run();
+});
+GEN('#endif');
+
+GEN('#if !BUILDFLAG(IS_MAC)');
+TEST_F('CrSettingsSpellCheckPageMetricsTest', 'SpellCheckMetricsNotMacOSx', function() {
+  mocha.grep(spell_check_page_metrics_test_browser.TestNames.SpellCheckMetricsNotMacOSx).run();
+});
+GEN('#endif');
 
 GEN('#endif  // !BUILDFLAG(IS_CHROMEOS_ASH)');
 
diff --git a/chrome/test/data/webui/settings/personalization_options_test.ts b/chrome/test/data/webui/settings/personalization_options_test.ts
index e5b6156f..c26a031 100644
--- a/chrome/test/data/webui/settings/personalization_options_test.ts
+++ b/chrome/test/data/webui/settings/personalization_options_test.ts
@@ -6,30 +6,33 @@
 import 'chrome://settings/lazy_load.js';
 
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
-import {SettingsPersonalizationOptionsElement} from 'chrome://settings/lazy_load.js';
+import {AutofillAssistantBrowserProxyImpl, SettingsPersonalizationOptionsElement} from 'chrome://settings/lazy_load.js';
 import {PrivacyPageVisibility} from 'chrome://settings/page_visibility.js';
-import {loadTimeData, PrivacyPageBrowserProxyImpl, StatusAction, SyncBrowserProxyImpl} from 'chrome://settings/settings.js';
+import {loadTimeData, PrivacyPageBrowserProxyImpl, SettingsToggleButtonElement, StatusAction, SyncBrowserProxyImpl} from 'chrome://settings/settings.js';
 import {assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js';
+import {isVisible} from 'chrome://webui-test/test_util.js';
 // <if expr="not chromeos_ash and not chromeos_lacros">
-import {eventToPromise, isVisible} from 'chrome://webui-test/test_util.js';
+import {eventToPromise} from 'chrome://webui-test/test_util.js';
 
 // </if>
 
 import {TestPrivacyPageBrowserProxy} from './test_privacy_page_browser_proxy.js';
 import {TestSyncBrowserProxy} from './test_sync_browser_proxy.js';
+import {TestAutofillAssistantBrowserProxy} from './test_autofill_assistant_browser_proxy.js';
 
 // clang-format on
 
 suite('PersonalizationOptionsTests_AllBuilds', function() {
   let testBrowserProxy: TestPrivacyPageBrowserProxy;
   let syncBrowserProxy: TestSyncBrowserProxy;
+  let autofillAssistantBrowserProxy: TestAutofillAssistantBrowserProxy;
   let customPageVisibility: PrivacyPageVisibility;
   let testElement: SettingsPersonalizationOptionsElement;
 
   suiteSetup(function() {
     loadTimeData.overrideValues({
       driveSuggestAvailable: true,
-      enableAutofillAssistant: true,
+      isAutomatedPasswordChangeEnabled: true,
       signinAvailable: true,
     });
   });
@@ -57,6 +60,9 @@
     PrivacyPageBrowserProxyImpl.setInstance(testBrowserProxy);
     syncBrowserProxy = new TestSyncBrowserProxy();
     SyncBrowserProxyImpl.setInstance(syncBrowserProxy);
+    autofillAssistantBrowserProxy = new TestAutofillAssistantBrowserProxy();
+    AutofillAssistantBrowserProxyImpl.setInstance(
+        autofillAssistantBrowserProxy);
     buildTestElement();
   });
 
@@ -229,15 +235,58 @@
   // </if>
 
   test('autofillAssistantAvailable', function() {
-    assertTrue(
-        !!testElement.shadowRoot!.querySelector('#enableAssistantFlows'));
+    // If the user is not logged in, the element is hidden.
+    testElement.syncStatus = {
+      signedIn: false,
+      statusAction: StatusAction.NO_ACTION,
+    };
+    flush();
+    assertFalse(isVisible(testElement.shadowRoot!.querySelector(
+        '#enableAutofillAssistantToggle')));
+
+    // For logged in users, the toggle appears.
+    testElement.syncStatus = {
+      signedIn: true,
+      statusAction: StatusAction.NO_ACTION,
+    };
+    flush();
+    assertTrue(isVisible(testElement.shadowRoot!.querySelector(
+        '#enableAutofillAssistantToggle')));
+  });
+
+  test('autofillAssistant toggle', async function() {
+    testElement.syncStatus = {
+      signedIn: true,
+      statusAction: StatusAction.NO_ACTION,
+    };
+    flush();
+
+    // Initially, the toggle is off.
+    const toggle =
+        testElement.shadowRoot!.querySelector<SettingsToggleButtonElement>(
+            '#enableAutofillAssistantToggle');
+    assertTrue(!!toggle);
+    assertFalse(toggle.checked);
+
+    // Clicking it leads to a consent prompt.
+    toggle.click();
+    await (autofillAssistantBrowserProxy.whenCalled('promptForConsent'));
+    // The TestAutofillAssistantBrowserProxy simulates accepting the prompt.
+    assertTrue(toggle.checked);
+    assertTrue(testElement.prefs.autofill_assistant.enabled.value);
+
+    // Clicking it again turns it off and logs that consent was revoked.
+    toggle.click();
+    await (autofillAssistantBrowserProxy.whenCalled('revokeConsent'));
+    assertFalse(toggle.checked);
+    assertFalse(testElement.prefs.autofill_assistant.enabled.value);
   });
 
   test('autofillAssistantUnavailable', function() {
-    loadTimeData.overrideValues({'enableAutofillAssistant': false});
+    loadTimeData.overrideValues({'isAutomatedPasswordChangeEnabled': false});
     buildTestElement();  // Rebuild the element after modifying loadTimeData.
-    assertFalse(
-        !!testElement.shadowRoot!.querySelector('#enableAssistantFlows'));
+    assertFalse(isVisible(testElement.shadowRoot!.querySelector(
+        '#enableAutofillAssistantToggle')));
   });
 });
 
diff --git a/chrome/test/data/webui/settings/spell_check_page_metrics_test_browser.ts b/chrome/test/data/webui/settings/spell_check_page_metrics_test_browser.ts
new file mode 100644
index 0000000..e45f142
--- /dev/null
+++ b/chrome/test/data/webui/settings/spell_check_page_metrics_test_browser.ts
@@ -0,0 +1,209 @@
+// Copyright 2022 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 {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {LanguageHelper, LanguagesBrowserProxyImpl, LanguageSettingsActionType, LanguageSettingsMetricsProxy, LanguageSettingsMetricsProxyImpl, LanguageSettingsPageImpressionType, SettingsSpellCheckPageElement} from 'chrome://settings/lazy_load.js';
+import {CrSettingsPrefs} from 'chrome://settings/settings.js';
+import {assertEquals, assertTrue} from 'chrome://webui-test/chai_assert.js';
+import {TestBrowserProxy} from 'chrome://webui-test/test_browser_proxy.js';
+import {fakeDataBind} from 'chrome://webui-test/test_util.js';
+
+import {FakeLanguageSettingsPrivate, getFakeLanguagePrefs} from './fake_language_settings_private.js';
+import {FakeSettingsPrivate} from './fake_settings_private.js';
+import {TestLanguagesBrowserProxy} from './test_languages_browser_proxy.js';
+
+const spell_check_page_metrics_test_browser = {
+  TestNames: {
+    SpellCheckMetrics: 'spell_check_metrics_all',
+    // <if expr="_google_chrome">
+    SpellCheckMetricsOfficialBuild: 'spell_check_metrics_official',
+    // </if>
+    // <if expr="not is_macosx">
+    SpellCheckMetricsNotMacOSx: 'spell_check_not_macosx',
+    // </if>
+  },
+};
+
+Object.assign(window, {spell_check_page_metrics_test_browser});
+
+/**
+ * A test version of LanguageSettingsMetricsProxy.
+ */
+class TestSpellCheckSettingsMetricsProxy extends TestBrowserProxy implements
+    LanguageSettingsMetricsProxy {
+  constructor() {
+    super(['recordSettingsMetric', 'recordPageImpressionMetric']);
+  }
+
+  recordSettingsMetric(interaction: LanguageSettingsActionType) {
+    this.methodCalled('recordSettingsMetric', interaction);
+  }
+
+  recordPageImpressionMetric(interaction: LanguageSettingsPageImpressionType) {
+    this.methodCalled('recordPageImpressionMetric', interaction);
+  }
+}
+
+suite('SpellCheckPageMetricsBrowser', function() {
+  let languageHelper: LanguageHelper;
+  let spellCheckPage: SettingsSpellCheckPageElement;
+  let browserProxy: TestLanguagesBrowserProxy;
+  let languageSettingsMetricsProxy: TestSpellCheckSettingsMetricsProxy;
+
+  suiteSetup(function() {
+    CrSettingsPrefs.deferInitialization = true;
+  });
+
+  setup(function() {
+    document.body.innerHTML = '';
+    const settingsPrefs = document.createElement('settings-prefs');
+    const settingsPrivate = new FakeSettingsPrivate(getFakeLanguagePrefs()) as
+        unknown as typeof chrome.settingsPrivate;
+    settingsPrefs.initialize(settingsPrivate);
+    document.body.appendChild(settingsPrefs);
+    return CrSettingsPrefs.initialized.then(function() {
+      // Sets up test browser proxy.
+      browserProxy = new TestLanguagesBrowserProxy();
+      LanguagesBrowserProxyImpl.setInstance(browserProxy);
+
+      // Sets up test browser proxy.
+      languageSettingsMetricsProxy = new TestSpellCheckSettingsMetricsProxy();
+      LanguageSettingsMetricsProxyImpl.setInstance(
+          languageSettingsMetricsProxy);
+
+      // Sets up fake languageSettingsPrivate API.
+      const languageSettingsPrivate = browserProxy.getLanguageSettingsPrivate();
+      (languageSettingsPrivate as unknown as FakeLanguageSettingsPrivate)
+          .setSettingsPrefs(settingsPrefs);
+
+      const settingsLanguages = document.createElement('settings-languages');
+      settingsLanguages.prefs = settingsPrefs.prefs;
+      fakeDataBind(settingsPrefs, settingsLanguages, 'prefs');
+      document.body.appendChild(settingsLanguages);
+
+      spellCheckPage = document.createElement('settings-spell-check-page');
+
+      // Prefs would normally be data-bound to settings-languages-page.
+      spellCheckPage.prefs = settingsLanguages.prefs;
+      fakeDataBind(settingsLanguages, spellCheckPage, 'prefs');
+
+      spellCheckPage.languageHelper = settingsLanguages.languageHelper;
+      fakeDataBind(settingsLanguages, spellCheckPage, 'language-helper');
+
+      spellCheckPage.languages = settingsLanguages.languages;
+      fakeDataBind(settingsLanguages, spellCheckPage, 'languages');
+
+      document.body.appendChild(spellCheckPage);
+      languageHelper = spellCheckPage.languageHelper;
+      return languageHelper.whenReady();
+    });
+  });
+
+  teardown(function() {
+    document.body.innerHTML = '';
+  });
+
+  suite(spell_check_page_metrics_test_browser.TestNames.SpellCheckMetrics, function() {
+    test('records when disabling spellCheck globally', async () => {
+      spellCheckPage.setPrefValue('browser.enable_spellchecking', true);
+      const spellCheckToggle = spellCheckPage.shadowRoot!
+          .querySelector<HTMLElement>('#enableSpellcheckingToggle');
+      assertTrue(!!spellCheckToggle, 'no spellCheckToggle');
+      spellCheckToggle.click();
+      flush();
+
+      assertEquals(
+          LanguageSettingsActionType.DISABLE_SPELL_CHECK_GLOBALLY,
+          await languageSettingsMetricsProxy.whenCalled('recordSettingsMetric'));
+    });
+
+    test('records when enabling spellCheck globally', async () => {
+      spellCheckPage.setPrefValue('browser.enable_spellchecking', false);
+
+      const spellCheckToggle = spellCheckPage.shadowRoot!
+          .querySelector<HTMLElement>('#enableSpellcheckingToggle');
+      assertTrue(!!spellCheckToggle);
+      spellCheckToggle.click();
+      flush();
+
+      assertEquals(
+          LanguageSettingsActionType.ENABLE_SPELL_CHECK_GLOBALLY,
+          await languageSettingsMetricsProxy.whenCalled('recordSettingsMetric'));
+    });
+  });
+
+  // <if expr="_google_chrome">
+  suite(spell_check_page_metrics_test_browser.TestNames.SpellCheckMetricsOfficialBuild, function() {
+    test('records when selecing basic spell check', async () => {
+      spellCheckPage.setPrefValue('spellcheck.use_spelling_service', true);
+      const basicServiceSelect = spellCheckPage.shadowRoot!
+          .querySelector<HTMLElement>('#spellingServiceDisable');
+      assertTrue(!!basicServiceSelect);
+      basicServiceSelect.click();
+      flush();
+
+      assertEquals(
+        LanguageSettingsActionType.SELECT_BASIC_SPELL_CHECK,
+        await languageSettingsMetricsProxy.whenCalled('recordSettingsMetric'));
+    });
+
+    test('records when selecing enhanced spell check', async () => {
+      spellCheckPage.setPrefValue('spellcheck.use_spelling_service', false);
+      const enhancedServiceSelect = spellCheckPage.shadowRoot!
+          .querySelector<HTMLElement>('#spellingServiceEnable');
+      assertTrue(!!enhancedServiceSelect);
+      enhancedServiceSelect.click();
+      flush();
+
+      assertEquals(
+        LanguageSettingsActionType.SELECT_ENHANCED_SPELL_CHECK,
+        await languageSettingsMetricsProxy.whenCalled('recordSettingsMetric'));
+    });
+  });
+  // </if>
+
+  // <if expr="not is_macosx">
+  suite(spell_check_page_metrics_test_browser.TestNames.SpellCheckMetricsNotMacOSx, function() {
+    test('records when enabling spellCheck for a language', async () => {
+      spellCheckPage.setPrefValue('browser.enable_spellchecking', true);
+      // enable language with support for spell check
+      spellCheckPage.setPrefValue('spellcheck.dictionaries', ['en']);
+      spellCheckPage.setPrefValue('spellcheck.dictionaries', ['nb']);
+
+      const spellCheckLanguagesList = spellCheckPage.shadowRoot!
+          .querySelector<HTMLElement>('#spellCheckLanguagesList');
+      assertTrue(!!spellCheckLanguagesList);
+      const spellCheckLanguageItem = spellCheckLanguagesList
+          .querySelectorAll<HTMLElement>('.list-item')[1];
+      assertTrue(!!spellCheckLanguageItem);
+      spellCheckLanguageItem.querySelector('cr-toggle')!.click();
+      flush();
+
+      assertEquals(
+          LanguageSettingsActionType.ENABLE_SPELL_CHECK_FOR_LANGUAGE,
+          await languageSettingsMetricsProxy.whenCalled('recordSettingsMetric'));
+    });
+
+    test('records when disabling spellCheck for a language', async () => {
+      spellCheckPage.setPrefValue('browser.enable_spellchecking', true);
+      // enable language with support for spell check
+      languageHelper.enableLanguage('en');
+      languageHelper.enableLanguage('af');
+
+      const spellCheckLanguagesList = spellCheckPage.shadowRoot!
+          .querySelector<HTMLElement>('#spellCheckLanguagesList');
+      assertTrue(!!spellCheckLanguagesList);
+      const spellCheckLanguageItem = spellCheckLanguagesList
+          .querySelectorAll<HTMLElement>('.list-item')[1];
+      assertTrue(!!spellCheckLanguageItem);
+      spellCheckLanguageItem.querySelector('cr-toggle')!.click();
+      flush();
+
+      assertEquals(
+          LanguageSettingsActionType.DISABLE_SPELL_CHECK_FOR_LANGUAGE,
+          await languageSettingsMetricsProxy.whenCalled('recordSettingsMetric'));
+    });
+  });
+  // </if>
+});
diff --git a/chrome/test/data/webui/settings/test_autofill_assistant_browser_proxy.ts b/chrome/test/data/webui/settings/test_autofill_assistant_browser_proxy.ts
new file mode 100644
index 0000000..c1057ac
--- /dev/null
+++ b/chrome/test/data/webui/settings/test_autofill_assistant_browser_proxy.ts
@@ -0,0 +1,25 @@
+// Copyright 2022 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 {AutofillAssistantBrowserProxy} from 'chrome://settings/lazy_load.js';
+import {TestBrowserProxy} from 'chrome://webui-test/test_browser_proxy.js';
+
+export class TestAutofillAssistantBrowserProxy extends TestBrowserProxy
+    implements AutofillAssistantBrowserProxy {
+  constructor() {
+    super([
+      'promptForConsent',
+      'revokeConsent',
+    ]);
+  }
+
+  promptForConsent() {
+    this.methodCalled('promptForConsent');
+    return Promise.resolve(true);
+  }
+
+  revokeConsent(dialogElements: string[]) {
+    this.methodCalled('revokeConsent', dialogElements);
+  }
+}
diff --git a/chrome/updater/app/server/win/com_classes_legacy.cc b/chrome/updater/app/server/win/com_classes_legacy.cc
index 10b0614d..193a5a4 100644
--- a/chrome/updater/app/server/win/com_classes_legacy.cc
+++ b/chrome/updater/app/server/win/com_classes_legacy.cc
@@ -868,9 +868,13 @@
                 [](base::WaitableEvent& event) { event.Signal(); },
                 std::ref(event)));
 
+            const auto prefs = AppServerSingletonInstance()->prefs();
+            if (!prefs)
+              return;
+
             const auto persisted_data =
                 base::MakeRefCounted<const PersistedData>(
-                    AppServerSingletonInstance()->prefs()->GetPrefService());
+                    prefs->GetPrefService());
             if (!persisted_data)
               return;
 
diff --git a/chrome/updater/app/server/win/com_classes_legacy_unittest.cc b/chrome/updater/app/server/win/com_classes_legacy_unittest.cc
index b77f64b..457954be 100644
--- a/chrome/updater/app/server/win/com_classes_legacy_unittest.cc
+++ b/chrome/updater/app/server/win/com_classes_legacy_unittest.cc
@@ -253,7 +253,7 @@
 TEST(LegacyCOMClassesTest, CheckLegacyInterfaceIDs) {
 #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(GoogleUpdate3WebUserClass)),
-            L"{22181302-A8A6-4f84-A541-E5CBFC70CC43}");
+            L"{22181302-A8A6-4F84-A541-E5CBFC70CC43}");
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(GoogleUpdate3WebSystemClass)),
             L"{8A1D4361-2C08-4700-A351-3EAA9CBFF5E4}");
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(PolicyStatusUserClass)),
@@ -261,15 +261,15 @@
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(PolicyStatusSystemClass)),
             L"{521FDB42-7130-4806-822A-FC5163FAD983}");
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(ProcessLauncherClass)),
-            L"{ABC01078-F197-4b0b-ADBC-CFE684B39C82}");
+            L"{ABC01078-F197-4B0B-ADBC-CFE684B39C82}");
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(ICurrentState)),
             L"{247954F9-9EDC-4E68-8CC3-150C2B89EADF}");
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(IGoogleUpdate3Web)),
             L"{494B20CF-282E-4BDD-9F5D-B70CB09D351E}");
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(IAppBundleWeb)),
-            L"{DD42475D-6D46-496a-924E-BD5630B4CBBA}");
+            L"{DD42475D-6D46-496A-924E-BD5630B4CBBA}");
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(IAppWeb)),
-            L"{18D0F672-18B4-48e6-AD36-6E6BF01DBBC4}");
+            L"{18D0F672-18B4-48E6-AD36-6E6BF01DBBC4}");
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(IAppCommandWeb)),
             L"{8476CE12-AE1F-4198-805C-BA0F9B783F57}");
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(IPolicyStatus)),
@@ -281,7 +281,7 @@
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(IPolicyStatusValue)),
             L"{27634814-8E41-4C35-8577-980134A96544}");
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(IProcessLauncher)),
-            L"{128C2DA6-2BC0-44c0-B3F6-4EC22E647964}");
+            L"{128C2DA6-2BC0-44C0-B3F6-4EC22E647964}");
   EXPECT_EQ(base::win::WStringFromGUID(__uuidof(IProcessLauncher2)),
             L"{D106AB5F-A70E-400E-A21B-96208C1D8DBB}");
 #else
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
index 6828560..696cd26 100644
--- a/chrome/utility/BUILD.gn
+++ b/chrome/utility/BUILD.gn
@@ -170,11 +170,14 @@
       ldflags += [ "/DELAYLOAD:esent.dll" ]
 
       deps += [
-        "//chrome/services/system_signals/win",
         "//chrome/services/util_win:lib",
         "//components/device_signals/core/common/mojom",
       ]
     }
+
+    if (is_win || is_mac || is_linux) {
+      deps += [ "//chrome/services/system_signals" ]
+    }
   }
 
   if (is_chromeos_ash) {
diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc
index 903c088..de86afdf 100644
--- a/chrome/utility/services.cc
+++ b/chrome/utility/services.cc
@@ -53,8 +53,13 @@
 
 #if BUILDFLAG(IS_MAC)
 #include "chrome/services/mac_notifications/mac_notification_provider_impl.h"
+#include "chrome/services/system_signals/mac/mac_system_signals_service.h"
 #endif  // BUILDFLAG(IS_MAC)
 
+#if BUILDFLAG(IS_LINUX)
+#include "chrome/services/system_signals/linux/linux_system_signals_service.h"
+#endif  // BUILDFLAG(IS_LINUX)
+
 #if !BUILDFLAG(IS_ANDROID)
 #include "chrome/common/importer/profile_import.mojom.h"
 #include "chrome/utility/importer/profile_import_impl.h"
@@ -191,13 +196,6 @@
   return std::make_unique<UtilWinImpl>(std::move(receiver));
 }
 
-auto RunSystemSignalsService(
-    mojo::PendingReceiver<device_signals::mojom::SystemSignalsService>
-        receiver) {
-  return std::make_unique<system_signals::WinSystemSignalsService>(
-      std::move(receiver));
-}
-
 auto RunWindowsIconReader(
     mojo::PendingReceiver<chrome::mojom::UtilReadIcon> receiver) {
   return std::make_unique<UtilReadIcon>(std::move(receiver));
@@ -220,6 +218,23 @@
 }
 #endif  // BUILDFLAG(IS_MAC)
 
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+auto RunSystemSignalsService(
+    mojo::PendingReceiver<device_signals::mojom::SystemSignalsService>
+        receiver) {
+#if BUILDFLAG(IS_WIN)
+  return std::make_unique<system_signals::WinSystemSignalsService>(
+      std::move(receiver));
+#elif BUILDFLAG(IS_MAC)
+  return std::make_unique<system_signals::MacSystemSignalsService>(
+      std::move(receiver));
+#else
+  return std::make_unique<system_signals::LinuxSystemSignalsService>(
+      std::move(receiver));
+#endif  // BUILDFLAG(IS_WIN)
+}
+#endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
 #if !BUILDFLAG(IS_ANDROID)
 auto RunProxyResolver(
     mojo::PendingReceiver<proxy_resolver::mojom::ProxyResolverFactory>
@@ -453,10 +468,13 @@
   services.Add(RunProcessorMetrics);
   services.Add(RunQuarantineService);
   services.Add(RunWindowsUtility);
-  services.Add(RunSystemSignalsService);
   services.Add(RunWindowsIconReader);
 #endif  // BUILDFLAG(IS_WIN)
 
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+  services.Add(RunSystemSignalsService);
+#endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
 #if BUILDFLAG(ENABLE_PRINTING) && BUILDFLAG(IS_CHROMEOS_ASH)
   services.Add(RunCupsIppParser);
 #endif
diff --git a/chromecast/cast_core/runtime/browser/runtime_application_base.cc b/chromecast/cast_core/runtime/browser/runtime_application_base.cc
index 734d3593..e0ace08 100644
--- a/chromecast/cast_core/runtime/browser/runtime_application_base.cc
+++ b/chromecast/cast_core/runtime/browser/runtime_application_base.cc
@@ -287,6 +287,19 @@
   return feature_permission_origins;
 }
 
+bool RuntimeApplicationBase::GetEnabledForDev() const {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  const auto* entry = FindEntry(feature::kCastCoreRendererFeatures,
+                                GetAppConfig().extra_features());
+  if (!entry) {
+    return false;
+  }
+  DCHECK(entry->value().has_dictionary());
+
+  return FindEntry(chromecast::feature::kEnableDevMode,
+                   entry->value().dictionary()) != nullptr;
+}
+
 void RuntimeApplicationBase::LoadPage(const GURL& url) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
@@ -399,13 +412,8 @@
   params->activity_id = params->is_remote_control_mode
                             ? params->session_id
                             : GetAppConfig().app_id();
-#if DCHECK_IS_ON()
-  params->enabled_for_dev = true;
-#endif
-  CastWebView::Scoped cast_web_view =
-      web_service_->CreateWebViewInternal(std::move(params));
-  DCHECK(cast_web_view);
-  return cast_web_view;
+  params->enabled_for_dev = GetEnabledForDev();
+  return web_service_->CreateWebViewInternal(std::move(params));
 }
 
 void RuntimeApplicationBase::SetMediaState(
diff --git a/chromecast/cast_core/runtime/browser/runtime_application_base.h b/chromecast/cast_core/runtime/browser/runtime_application_base.h
index 6ee9d9a..6b0da4f 100644
--- a/chromecast/cast_core/runtime/browser/runtime_application_base.h
+++ b/chromecast/cast_core/runtime/browser/runtime_application_base.h
@@ -99,6 +99,9 @@
   std::vector<int> GetFeaturePermissions() const;
   // Returns additional feature permission origins.
   std::vector<std::string> GetAdditionalFeaturePermissionOrigins() const;
+  // Returns if current session is enabled for dev.
+  bool GetEnabledForDev() const;
+
   // Loads the page at the given |url| in the CastWebContents.
   void LoadPage(const GURL& url);
   // Notifies the application has launched.
diff --git a/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.cc b/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.cc
index 1d05606..cebd6e9 100644
--- a/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.cc
+++ b/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.cc
@@ -40,9 +40,18 @@
       FROM_HERE, base::BindOnce(std::move(callback), true));
 }
 
+void FakeHibermanClient::ResumeFromHibernateAS(
+    const std::string& auth_session_id,
+    ResumeFromHibernateCallback callback) {
+  base::ThreadTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE, base::BindOnce(std::move(callback), true));
+}
+
 void FakeHibermanClient::WaitForServiceToBeAvailable(
     chromeos::WaitForServiceToBeAvailableCallback callback) {
-  // Don't call us, we'll call you ;)
+  // Sure, the service is available now!
+  base::ThreadTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE, base::BindOnce(std::move(callback), true));
 }
 
 }  // namespace ash
diff --git a/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.h b/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.h
index eaa1575..dae34805 100644
--- a/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.h
+++ b/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.h
@@ -34,6 +34,8 @@
       chromeos::WaitForServiceToBeAvailableCallback callback) override;
   void ResumeFromHibernate(const std::string& account_id,
                            ResumeFromHibernateCallback callback) override;
+  void ResumeFromHibernateAS(const std::string& auth_session_id,
+                             ResumeFromHibernateCallback callback) override;
 };
 
 }  // namespace ash
diff --git a/chromeos/ash/components/dbus/hiberman/hiberman_client.cc b/chromeos/ash/components/dbus/hiberman/hiberman_client.cc
index d8244d1..764d248b 100644
--- a/chromeos/ash/components/dbus/hiberman/hiberman_client.cc
+++ b/chromeos/ash/components/dbus/hiberman/hiberman_client.cc
@@ -69,6 +69,22 @@
                        weak_factory_.GetWeakPtr(), std::move(callback)));
   }
 
+  void ResumeFromHibernateAS(const std::string& auth_session_id,
+                             ResumeFromHibernateCallback callback) override {
+    dbus::MethodCall method_call(::hiberman::kHibernateResumeInterface,
+                                 ::hiberman::kResumeFromHibernateASMethod);
+    dbus::MessageWriter writer(&method_call);
+    writer.AppendArrayOfBytes(
+        reinterpret_cast<const uint8_t*>(&auth_session_id[0]),
+        auth_session_id.length());
+    // Bind with the weak pointer of |this| so the response is not
+    // handled once |this| is already destroyed.
+    proxy_->CallMethod(
+        &method_call, kHibermanResumeTimeoutMS,
+        base::BindOnce(&HibermanClientImpl::HandleResponse,
+                       weak_factory_.GetWeakPtr(), std::move(callback)));
+  }
+
  private:
   void HandleResponse(VoidDBusMethodCallback callback,
                       dbus::Response* response) {
diff --git a/chromeos/ash/components/dbus/hiberman/hiberman_client.h b/chromeos/ash/components/dbus/hiberman/hiberman_client.h
index 3b2199c..4717890 100644
--- a/chromeos/ash/components/dbus/hiberman/hiberman_client.h
+++ b/chromeos/ash/components/dbus/hiberman/hiberman_client.h
@@ -50,6 +50,12 @@
   virtual void ResumeFromHibernate(const std::string& account_id,
                                    ResumeFromHibernateCallback callback) = 0;
 
+  // Resume from hibernate with an auth session, if possible. Upon a successful
+  // resume from hibernation, this function does not return, as execution
+  // continues in the resumed image.
+  virtual void ResumeFromHibernateAS(const std::string& auth_session_id,
+                                     ResumeFromHibernateCallback callback) = 0;
+
  protected:
   // Initialize/Shutdown should be used instead.
   HibermanClient();
diff --git a/chromeos/ash/components/dbus/hiberman/hiberman_client_unittest.cc b/chromeos/ash/components/dbus/hiberman/hiberman_client_unittest.cc
index 6c999274..f5d3ac5c 100644
--- a/chromeos/ash/components/dbus/hiberman/hiberman_client_unittest.cc
+++ b/chromeos/ash/components/dbus/hiberman/hiberman_client_unittest.cc
@@ -8,6 +8,7 @@
 #include <utility>
 
 #include "base/test/task_environment.h"
+#include "base/test/test_future.h"
 #include "dbus/mock_bus.h"
 #include "dbus/mock_object_proxy.h"
 #include "dbus/object_path.h"
@@ -81,6 +82,15 @@
       // The Resume method should have an account_id string.
       ASSERT_TRUE(reader.PopString(&account_id));
       // There's no reply data for this method.
+    } else if (method_call->GetMember() ==
+               ::hiberman::kResumeFromHibernateASMethod) {
+      dbus::MessageReader reader(method_call);
+      const uint8_t* bytes = nullptr;
+      size_t length = 0;
+      // The ResumeFromHibernateAS method should have an auth_session_id byte
+      // array.
+      EXPECT_TRUE(reader.PopArrayOfBytes(&bytes, &length));
+      EXPECT_NE(length, static_cast<size_t>(0));
     } else {
       ASSERT_FALSE(true) << "Unrecognized member: " << method_call->GetMember();
     }
@@ -95,17 +105,21 @@
 };
 
 TEST_F(HibermanClientTest, ResumeFromHibernate) {
-  bool callback_called = false;
-  auto callback = base::BindOnce(
-      [](bool* callback_was_called,
-         bool method_call_success) {
-        *callback_was_called = true;
-      },
-      &callback_called);
-
-  client_->ResumeFromHibernate("test@google.com", std::move(callback));
+  base::test::TestFuture<bool> future;
+  client_->ResumeFromHibernate("test@google.com", future.GetCallback());
   base::RunLoop().RunUntilIdle();
-  ASSERT_TRUE(callback_called);
+  // Assert that the callback was called and that the method_call_success
+  // parameter returned true.
+  ASSERT_TRUE(future.Get<0>());
+}
+
+TEST_F(HibermanClientTest, ResumeFromHibernateAS) {
+  base::test::TestFuture<bool> future;
+  client_->ResumeFromHibernateAS("fake_auth_session_id", future.GetCallback());
+  base::RunLoop().RunUntilIdle();
+  // Assert that the callback was called and that the method_call_success
+  // parameter returned true.
+  ASSERT_TRUE(future.Get<0>());
 }
 
 }  // namespace ash
diff --git a/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.cc b/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.cc
index ff166bf..08567c6 100644
--- a/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.cc
+++ b/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.cc
@@ -298,7 +298,7 @@
 }
 
 void FakeUserDataAuthClient::TestApi::AddExistingUser(
-    cryptohome::AccountIdentifier account_id) {
+    const cryptohome::AccountIdentifier& account_id) {
   const auto [user_it, was_inserted] =
       client_->users_.insert({std::move(account_id), UserCryptohomeState()});
   if (!was_inserted) {
@@ -318,6 +318,12 @@
   CHECK(base::CreateDirectory(*profile_dir));
 }
 
+absl::optional<base::FilePath>
+FakeUserDataAuthClient::TestApi::GetUserProfileDir(
+    const cryptohome::AccountIdentifier& account_id) const {
+  return client_->GetUserProfileDir(account_id);
+}
+
 void FakeUserDataAuthClient::TestApi::AddKey(
     const cryptohome::AccountIdentifier& account_id,
     const cryptohome::Key& key) {
diff --git a/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.h b/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.h
index 7dcdaf7..4240d4e 100644
--- a/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.h
+++ b/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.h
@@ -93,7 +93,12 @@
 
     // Marks a user as existing and creates the user's home directory. No auth
     // factors are added.
-    void AddExistingUser(cryptohome::AccountIdentifier account_id);
+    void AddExistingUser(const cryptohome::AccountIdentifier& account_id);
+
+    // Returns the user's home directory, or an empty optional if the user data
+    // directory is not initialized or the user doesn't exist.
+    absl::optional<base::FilePath> GetUserProfileDir(
+        const cryptohome::AccountIdentifier& account_id) const;
 
     // Adds the given key as a fake auth factor to the user (the user must
     // already exist).
diff --git a/chromeos/ash/components/network/BUILD.gn b/chromeos/ash/components/network/BUILD.gn
index efb4705..112dacb 100644
--- a/chromeos/ash/components/network/BUILD.gn
+++ b/chromeos/ash/components/network/BUILD.gn
@@ -251,6 +251,8 @@
     "//chromeos/dbus/permission_broker",
     "//chromeos/dbus/shill",
     "//chromeos/login/login_state",
+    "//chromeos/services/network_config:in_process_instance",
+    "//chromeos/services/network_config/public/cpp:test_support",
     "//components/onc",
     "//components/prefs",
     "//components/prefs:test_support",
diff --git a/chromeos/ash/components/network/cellular_metrics_logger.cc b/chromeos/ash/components/network/cellular_metrics_logger.cc
index 81fdb301..0e0ba6d 100644
--- a/chromeos/ash/components/network/cellular_metrics_logger.cc
+++ b/chromeos/ash/components/network/cellular_metrics_logger.cc
@@ -120,6 +120,14 @@
     "Network.Ash.Cellular.SimLock.Policy.Notification.LockType";
 
 // static
+const char CellularMetricsLogger::kUnrestrictedActiveNetworkSIMLockStatus[] =
+    "Network.Ash.Cellular.SimLock.Policy.Unrestricted.ActiveSIMLockStatus";
+
+// static
+const char CellularMetricsLogger::kRestrictedActiveNetworkSIMLockStatus[] =
+    "Network.Ash.Cellular.SimLock.Policy.Restricted.ActiveSIMLockStatus";
+
+// static
 const base::TimeDelta CellularMetricsLogger::kInitializationTimeout =
     base::Seconds(15);
 
@@ -564,6 +572,44 @@
   // chrome layers.
   CheckForShillConnectionFailureMetric(network);
   CheckForConnectionStateMetric(network);
+  CheckForSIMStatusMetric(network);
+}
+
+void CellularMetricsLogger::CheckForSIMStatusMetric(
+    const NetworkState* network) {
+  const DeviceState* cellular_device =
+      network_state_handler_->GetDeviceState(network->device_path());
+  if (!cellular_device || network->IsConnectingState()) {
+    return;
+  }
+
+  const std::string& sim_lock_type = cellular_device->sim_lock_type();
+
+  if (last_active_network_iccid_ == network->iccid() ||
+      (!network->IsConnectedState() && sim_lock_type.empty())) {
+    return;
+  }
+
+  last_active_network_iccid_ = network->iccid();
+  SimPinLockType lock_type;
+
+  if (sim_lock_type == shill::kSIMLockPin) {
+    lock_type = SimPinLockType::kPinLocked;
+  } else if (sim_lock_type == shill::kSIMLockPuk) {
+    lock_type = SimPinLockType::kPukLocked;
+  } else if (sim_lock_type.empty()) {
+    lock_type = SimPinLockType::kUnlocked;
+  } else {
+    NOTREACHED();
+  }
+
+  if (managed_network_configuration_handler_->AllowCellularSimLock()) {
+    base::UmaHistogramEnumeration(kUnrestrictedActiveNetworkSIMLockStatus,
+                                  lock_type);
+  } else {
+    base::UmaHistogramEnumeration(kRestrictedActiveNetworkSIMLockStatus,
+                                  lock_type);
+  }
 }
 
 void CellularMetricsLogger::CheckForTimeToConnectedMetric(
diff --git a/chromeos/ash/components/network/cellular_metrics_logger.h b/chromeos/ash/components/network/cellular_metrics_logger.h
index 4ca89dc..83171fbf 100644
--- a/chromeos/ash/components/network/cellular_metrics_logger.h
+++ b/chromeos/ash/components/network/cellular_metrics_logger.h
@@ -80,6 +80,10 @@
   // after which cellular device is considered initialized.
   static const base::TimeDelta kInitializationTimeout;
 
+  // Histograms associated with SIM Lock status on the active network.
+  static const char kUnrestrictedActiveNetworkSIMLockStatus[];
+  static const char kRestrictedActiveNetworkSIMLockStatus[];
+
   // PIN operations that are tracked by metrics.
   enum class SimPinOperation {
     kRequireLock = 0,
@@ -101,7 +105,8 @@
   enum class SimPinLockType {
     kPinLocked = 0,
     kPukLocked = 1,
-    kMaxValue = kPukLocked
+    kUnlocked = 2,
+    kMaxValue = kUnlocked
   };
 
   // Records the result of pin operations performed.
@@ -350,6 +355,13 @@
   // Tracks cellular network connection state and logs time to connected.
   void CheckForTimeToConnectedMetric(const NetworkState* network);
 
+  // Tracks current cellular connection status and logs the metric.
+  // Current connection can be in one of the three states:
+  // (Connected/PIN_Locked/PUK_Blocked). This will be logged when a
+  // switch happens from no connection to an active connection or
+  // from one connection to another.
+  void CheckForSIMStatusMetric(const NetworkState* network);
+
   // Tracks cellular network connected states and non user initiated
   // disconnections.
   void CheckForConnectionStateMetric(const NetworkState* network);
@@ -421,6 +433,9 @@
   // starting up.
   base::OneShotTimer initialization_timer_;
 
+  // Stores the iccid of the most recently active network.
+  std::string last_active_network_iccid_;
+
   // Tracks whether the PSim activation state is already logged for this
   // session.
   bool is_psim_activation_state_logged_ = false;
diff --git a/chromeos/ash/components/network/cellular_metrics_logger_unittest.cc b/chromeos/ash/components/network/cellular_metrics_logger_unittest.cc
index b3867bb..d3bb222 100644
--- a/chromeos/ash/components/network/cellular_metrics_logger_unittest.cc
+++ b/chromeos/ash/components/network/cellular_metrics_logger_unittest.cc
@@ -21,6 +21,7 @@
 #include "chromeos/ash/components/network/network_ui_data.h"
 #include "chromeos/ash/components/network/test_cellular_esim_profile_handler.h"
 #include "chromeos/login/login_state/login_state.h"
+#include "chromeos/services/network_config/public/cpp/cros_network_config_test_helper.h"
 #include "dbus/object_path.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
@@ -102,6 +103,8 @@
         new testing::NiceMock<ash::MockManagedNetworkConfigurationHandler>);
     cellular_esim_profile_handler_ =
         std::make_unique<TestCellularESimProfileHandler>();
+    network_config_helper_ = std::make_unique<
+        chromeos::network_config::CrosNetworkConfigTestHelper>();
 
     network_state_test_helper_.hermes_manager_test()->AddEuicc(
         dbus::ObjectPath(kTestEuiccPath), kTestEidName, /*is_active=*/true,
@@ -132,6 +135,7 @@
   void TearDown() override {
     network_state_test_helper_.ClearDevices();
     network_state_test_helper_.ClearServices();
+    network_config_helper_.reset();
     cellular_metrics_logger_.reset();
     LoginState::Shutdown();
   }
@@ -196,6 +200,16 @@
     base::RunLoop().RunUntilIdle();
   }
 
+  void SetCellularSimLock(const std::string lock_type) {
+    base::Value::Dict sim_lock_status;
+    sim_lock_status.Set(shill::kSIMLockTypeProperty, lock_type);
+    network_config_helper_->network_state_helper()
+        .device_test()
+        ->SetDeviceProperty(
+            kTestCellularDevicePath, shill::kSIMLockStatusProperty,
+            base::Value(std::move(sim_lock_status)), /*notify_changed=*/true);
+  }
+
   void RemoveCellular() {
     ShillServiceClient::TestInterface* service_test =
         network_state_test_helper_.service_test();
@@ -258,6 +272,8 @@
   std::unique_ptr<base::HistogramTester> histogram_tester_;
   NetworkStateTestHelper network_state_test_helper_{
       false /* use_default_devices_and_services */};
+  std::unique_ptr<chromeos::network_config::CrosNetworkConfigTestHelper>
+      network_config_helper_;
   std::unique_ptr<CellularInhibitor> cellular_inhibitor_;
   std::unique_ptr<TestCellularESimProfileHandler>
       cellular_esim_profile_handler_;
@@ -945,6 +961,134 @@
       CellularMetricsLogger::ConnectResult::kCanceled, 1);
 }
 
+TEST_F(CellularMetricsLoggerTest, SwitchActiveNetworkOnManagedDevice) {
+  SetUpMetricsLogger();
+
+  InitCellular();
+  const base::Value kOnlineStateValue(shill::kStateOnline);
+  const base::Value kOfflineStateValue(shill::kStateOffline);
+  const base::Value kFailedToConnect(shill::kStateFailure);
+
+  ON_CALL(*mock_managed_network_configuration_manager_, AllowCellularSimLock())
+      .WillByDefault(testing::Return(false));
+
+  ResetHistogramTester();
+  AddESimProfile(hermes::profile::State::kActive, kTestESimCellularServicePath);
+
+  // No connection -> Unlocked ESIM connection
+  service_client_test()->SetServiceProperty(
+      kTestESimCellularServicePath, shill::kStateProperty, kOnlineStateValue);
+  service_client_test()->SetServiceProperty(
+      kTestPSimCellularServicePath, shill::kStateProperty, kOfflineStateValue);
+  base::RunLoop().RunUntilIdle();
+  histogram_tester_->ExpectTotalCount(
+      CellularMetricsLogger::kRestrictedActiveNetworkSIMLockStatus, 1);
+  histogram_tester_->ExpectTotalCount(
+      CellularMetricsLogger::kUnrestrictedActiveNetworkSIMLockStatus, 0);
+  histogram_tester_->ExpectBucketCount(
+      CellularMetricsLogger::kRestrictedActiveNetworkSIMLockStatus,
+      CellularMetricsLogger::SimPinLockType::kUnlocked, 1);
+
+  // Unlocked ESIM connection -> PSIM connection -> PinLocked ESiM connection
+  service_client_test()->SetServiceProperty(
+      kTestESimCellularServicePath, shill::kStateProperty, kOfflineStateValue);
+  service_client_test()->SetServiceProperty(
+      kTestPSimCellularServicePath, shill::kStateProperty, kOnlineStateValue);
+  base::RunLoop().RunUntilIdle();
+
+  service_client_test()->SetServiceProperty(
+      kTestPSimCellularServicePath, shill::kStateProperty, kOfflineStateValue);
+  SetCellularSimLock(shill::kSIMLockPin);
+  service_client_test()->SetServiceProperty(
+      kTestESimCellularServicePath, shill::kStateProperty, kFailedToConnect);
+  base::RunLoop().RunUntilIdle();
+  histogram_tester_->ExpectBucketCount(
+      CellularMetricsLogger::kRestrictedActiveNetworkSIMLockStatus,
+      CellularMetricsLogger::SimPinLockType::kPinLocked, 1);
+
+  // PinLocked ESIM -> PSIM connection -> PukBlocked ESIM
+  service_client_test()->SetServiceProperty(
+      kTestESimCellularServicePath, shill::kStateProperty, kOfflineStateValue);
+  service_client_test()->SetServiceProperty(
+      kTestPSimCellularServicePath, shill::kStateProperty, kOnlineStateValue);
+  base::RunLoop().RunUntilIdle();
+
+  service_client_test()->SetServiceProperty(
+      kTestPSimCellularServicePath, shill::kStateProperty, kOfflineStateValue);
+  SetCellularSimLock(shill::kSIMLockPuk);
+  service_client_test()->SetServiceProperty(
+      kTestESimCellularServicePath, shill::kStateProperty, kFailedToConnect);
+  base::RunLoop().RunUntilIdle();
+  histogram_tester_->ExpectBucketCount(
+      CellularMetricsLogger::kRestrictedActiveNetworkSIMLockStatus,
+      CellularMetricsLogger::SimPinLockType::kPukLocked, 1);
+}
+
+TEST_F(CellularMetricsLoggerTest, SwitchActiveNetworkOnUnmanagedDevice) {
+  SetUpMetricsLogger();
+
+  InitCellular();
+  const base::Value kOnlineStateValue(shill::kStateOnline);
+  const base::Value kOfflineStateValue(shill::kStateOffline);
+
+  ON_CALL(*mock_managed_network_configuration_manager_, AllowCellularSimLock())
+      .WillByDefault(testing::Return(true));
+
+  ResetHistogramTester();
+  AddESimProfile(hermes::profile::State::kActive, kTestESimCellularServicePath);
+
+  // Two activated SIMs, but none connected.
+  service_client_test()->SetServiceProperty(
+      kTestESimCellularServicePath, shill::kActivationStateProperty,
+      base::Value(shill::kActivationStateActivated));
+  service_client_test()->SetServiceProperty(
+      kTestESimCellularServicePath, shill::kActivationStateProperty,
+      base::Value(shill::kActivationStateActivated));
+  base::RunLoop().RunUntilIdle();
+  histogram_tester_->ExpectTotalCount(
+      CellularMetricsLogger::kUnrestrictedActiveNetworkSIMLockStatus, 0);
+  histogram_tester_->ExpectTotalCount(
+      CellularMetricsLogger::kRestrictedActiveNetworkSIMLockStatus, 0);
+
+  // No connection -> ESIM connection
+  service_client_test()->SetServiceProperty(
+      kTestESimCellularServicePath, shill::kStateProperty, kOnlineStateValue);
+  service_client_test()->SetServiceProperty(
+      kTestPSimCellularServicePath, shill::kStateProperty, kOfflineStateValue);
+  base::RunLoop().RunUntilIdle();
+  histogram_tester_->ExpectTotalCount(
+      CellularMetricsLogger::kUnrestrictedActiveNetworkSIMLockStatus, 1);
+  histogram_tester_->ExpectTotalCount(
+      CellularMetricsLogger::kRestrictedActiveNetworkSIMLockStatus, 0);
+
+  // ESIM connection -> PSIM connection
+  service_client_test()->SetServiceProperty(
+      kTestESimCellularServicePath, shill::kStateProperty, kOfflineStateValue);
+  service_client_test()->SetServiceProperty(
+      kTestPSimCellularServicePath, shill::kStateProperty, kOnlineStateValue);
+  base::RunLoop().RunUntilIdle();
+  histogram_tester_->ExpectTotalCount(
+      CellularMetricsLogger::kUnrestrictedActiveNetworkSIMLockStatus, 2);
+
+  // PSIM connection -> No connection
+  service_client_test()->SetServiceProperty(
+      kTestESimCellularServicePath, shill::kStateProperty, kOfflineStateValue);
+  service_client_test()->SetServiceProperty(
+      kTestPSimCellularServicePath, shill::kStateProperty, kOfflineStateValue);
+  base::RunLoop().RunUntilIdle();
+  histogram_tester_->ExpectTotalCount(
+      CellularMetricsLogger::kUnrestrictedActiveNetworkSIMLockStatus, 2);
+
+  // No connection -> PSIM connection
+  service_client_test()->SetServiceProperty(
+      kTestESimCellularServicePath, shill::kStateProperty, kOfflineStateValue);
+  service_client_test()->SetServiceProperty(
+      kTestPSimCellularServicePath, shill::kStateProperty, kOnlineStateValue);
+  base::RunLoop().RunUntilIdle();
+  histogram_tester_->ExpectTotalCount(
+      CellularMetricsLogger::kUnrestrictedActiveNetworkSIMLockStatus, 2);
+}
+
 TEST_F(CellularMetricsLoggerTest, CellularTimeToConnectedTest) {
   SetUpMetricsLogger();
 
diff --git a/chromeos/ash/components/oobe_quick_start/connectivity/target_device_connection_broker_impl.cc b/chromeos/ash/components/oobe_quick_start/connectivity/target_device_connection_broker_impl.cc
index ddf73bc..888b0a9 100644
--- a/chromeos/ash/components/oobe_quick_start/connectivity/target_device_connection_broker_impl.cc
+++ b/chromeos/ash/components/oobe_quick_start/connectivity/target_device_connection_broker_impl.cc
@@ -16,6 +16,27 @@
 
 namespace ash::quick_start {
 
+void TargetDeviceConnectionBrokerImpl::BluetoothAdapterFactoryWrapper::
+    GetAdapter(device::BluetoothAdapterFactory::AdapterCallback callback) {
+  if (bluetooth_adapter_factory_wrapper_for_testing_) {
+    bluetooth_adapter_factory_wrapper_for_testing_->GetAdapterImpl(
+        std::move(callback));
+    return;
+  }
+
+  device::BluetoothAdapterFactory* adapter_factory =
+      device::BluetoothAdapterFactory::Get();
+
+  // Bluetooth is always supported on the ChromeOS platform.
+  DCHECK(adapter_factory->IsBluetoothSupported());
+
+  adapter_factory->GetAdapter(std::move(callback));
+}
+
+TargetDeviceConnectionBrokerImpl::BluetoothAdapterFactoryWrapper*
+    TargetDeviceConnectionBrokerImpl::BluetoothAdapterFactoryWrapper::
+        bluetooth_adapter_factory_wrapper_for_testing_ = nullptr;
+
 TargetDeviceConnectionBrokerImpl::TargetDeviceConnectionBrokerImpl() {
   GetBluetoothAdapter();
 }
@@ -24,7 +45,6 @@
 
 TargetDeviceConnectionBrokerImpl::FeatureSupportStatus
 TargetDeviceConnectionBrokerImpl::GetFeatureSupportStatus() const {
-  // TODO(b/234848503) Add unit test coverage for the kUndetermined case.
   if (!bluetooth_adapter_)
     return FeatureSupportStatus::kUndetermined;
 
@@ -35,19 +55,13 @@
 }
 
 void TargetDeviceConnectionBrokerImpl::GetBluetoothAdapter() {
-  auto* adapter_factory = device::BluetoothAdapterFactory::Get();
-
-  // Bluetooth is always supported on the ChromeOS platform.
-  DCHECK(adapter_factory->IsBluetoothSupported());
-
   // Because this will be called from the constructor, GetAdapter() may call
   // OnGetBluetoothAdapter() immediately which can cause problems during tests
   // since the class is not fully constructed yet.
   base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::BindOnce(
-          &device::BluetoothAdapterFactory::GetAdapter,
-          base::Unretained(adapter_factory),
+          &BluetoothAdapterFactoryWrapper::GetAdapter,
           base::BindOnce(
               &TargetDeviceConnectionBrokerImpl::OnGetBluetoothAdapter,
               weak_ptr_factory_.GetWeakPtr())));
@@ -56,6 +70,10 @@
 void TargetDeviceConnectionBrokerImpl::OnGetBluetoothAdapter(
     scoped_refptr<device::BluetoothAdapter> adapter) {
   bluetooth_adapter_ = adapter;
+
+  if (deferred_start_advertising_callback_) {
+    std::move(deferred_start_advertising_callback_).Run();
+  }
 }
 
 void TargetDeviceConnectionBrokerImpl::StartAdvertising(
@@ -63,7 +81,23 @@
     ResultCallback on_start_advertising_callback) {
   // TODO(b/234655072): Notify client about incoming connections on the started
   // advertisement via ConnectionLifecycleListener.
-  CHECK(GetFeatureSupportStatus() == FeatureSupportStatus::kSupported);
+  if (GetFeatureSupportStatus() == FeatureSupportStatus::kUndetermined) {
+    deferred_start_advertising_callback_ =
+        base::BindOnce(&TargetDeviceConnectionBroker::StartAdvertising,
+                       weak_ptr_factory_.GetWeakPtr(), listener,
+                       std::move(on_start_advertising_callback));
+    return;
+  }
+
+  if (GetFeatureSupportStatus() == FeatureSupportStatus::kNotSupported) {
+    LOG(ERROR)
+        << __func__
+        << " failed to start advertising because the feature is not supported.";
+    std::move(on_start_advertising_callback).Run(/*success=*/false);
+    return;
+  }
+
+  DCHECK(GetFeatureSupportStatus() == FeatureSupportStatus::kSupported);
 
   if (!bluetooth_adapter_->IsPowered()) {
     LOG(ERROR) << __func__
@@ -98,6 +132,10 @@
 
 void TargetDeviceConnectionBrokerImpl::StopAdvertising(
     base::OnceClosure on_stop_advertising_callback) {
+  if (deferred_start_advertising_callback_) {
+    deferred_start_advertising_callback_.Reset();
+  }
+
   if (!fast_pair_advertiser_) {
     VLOG(1) << __func__ << " Not currently advertising, ignoring.";
     std::move(on_stop_advertising_callback).Run();
diff --git a/chromeos/ash/components/oobe_quick_start/connectivity/target_device_connection_broker_impl.h b/chromeos/ash/components/oobe_quick_start/connectivity/target_device_connection_broker_impl.h
index 01e2b91..00ad75b 100644
--- a/chromeos/ash/components/oobe_quick_start/connectivity/target_device_connection_broker_impl.h
+++ b/chromeos/ash/components/oobe_quick_start/connectivity/target_device_connection_broker_impl.h
@@ -8,13 +8,10 @@
 #include "base/memory/weak_ptr.h"
 #include "base/unguessable_token.h"
 #include "chromeos/ash/components/oobe_quick_start/connectivity/target_device_connection_broker.h"
+#include "device/bluetooth/bluetooth_adapter_factory.h"
 
 class FastPairAdvertiser;
 
-namespace device {
-class BluetoothAdapter;
-}
-
 namespace ash::quick_start {
 
 class TargetDeviceConnectionBrokerImpl : public TargetDeviceConnectionBroker {
@@ -23,6 +20,26 @@
       TargetDeviceConnectionBroker::FeatureSupportStatus;
   using ResultCallback = TargetDeviceConnectionBroker::ResultCallback;
 
+  // Thin wrapper around BluetoothAdapterFactory to allow mocking GetAdapter()
+  // for unit tests.
+  class BluetoothAdapterFactoryWrapper {
+   public:
+    static void GetAdapter(
+        device::BluetoothAdapterFactory::AdapterCallback callback);
+
+    static void set_bluetooth_adapter_factory_wrapper_for_testing(
+        BluetoothAdapterFactoryWrapper* wrapper) {
+      bluetooth_adapter_factory_wrapper_for_testing_ = wrapper;
+    }
+
+   private:
+    virtual void GetAdapterImpl(
+        device::BluetoothAdapterFactory::AdapterCallback callback) = 0;
+
+    static BluetoothAdapterFactoryWrapper*
+        bluetooth_adapter_factory_wrapper_for_testing_;
+  };
+
   TargetDeviceConnectionBrokerImpl();
   TargetDeviceConnectionBrokerImpl(TargetDeviceConnectionBrokerImpl&) = delete;
   TargetDeviceConnectionBrokerImpl& operator=(
@@ -42,6 +59,7 @@
   void OnStopFastPairAdvertising(base::OnceClosure callback);
 
   scoped_refptr<device::BluetoothAdapter> bluetooth_adapter_;
+  base::OnceClosure deferred_start_advertising_callback_;
 
   std::unique_ptr<FastPairAdvertiser> fast_pair_advertiser_;
   base::UnguessableToken random_session_id_;
diff --git a/chromeos/ash/components/oobe_quick_start/connectivity/target_device_connection_broker_impl_unittest.cc b/chromeos/ash/components/oobe_quick_start/connectivity/target_device_connection_broker_impl_unittest.cc
index e996b2d..e40abaf 100644
--- a/chromeos/ash/components/oobe_quick_start/connectivity/target_device_connection_broker_impl_unittest.cc
+++ b/chromeos/ash/components/oobe_quick_start/connectivity/target_device_connection_broker_impl_unittest.cc
@@ -22,6 +22,29 @@
 using TargetDeviceConnectionBrokerImpl =
     ash::quick_start::TargetDeviceConnectionBrokerImpl;
 
+// Allows us to delay returning a Bluetooth adapter until after ReturnAdapter()
+// is called. Used for testing how the connection broker behaves before the
+// Bluetooth adapter is finished initializing
+class DeferredBluetoothAdapterFactoryWrapper
+    : public TargetDeviceConnectionBrokerImpl::BluetoothAdapterFactoryWrapper {
+ public:
+  void ReturnAdapter() {
+    if (!adapter_callback_)
+      return;
+
+    device::BluetoothAdapterFactory::Get()->GetAdapter(
+        std::move(adapter_callback_));
+  }
+
+ private:
+  void GetAdapterImpl(
+      device::BluetoothAdapterFactory::AdapterCallback callback) override {
+    adapter_callback_ = std::move(callback);
+  }
+
+  device::BluetoothAdapterFactory::AdapterCallback adapter_callback_;
+};
+
 class FakeFastPairAdvertiser : public FastPairAdvertiser {
  public:
   explicit FakeFastPairAdvertiser(
@@ -136,11 +159,12 @@
             this, &TargetDeviceConnectionBrokerImplTest::IsBluetoothPowered));
     device::BluetoothAdapterFactory::SetAdapterForTesting(
         mock_bluetooth_adapter_);
+    TargetDeviceConnectionBrokerImpl::BluetoothAdapterFactoryWrapper::
+        set_bluetooth_adapter_factory_wrapper_for_testing(
+            &bluetooth_adapter_factory_wrapper_);
 
     CreateConnectionBroker();
     SetFakeFastPairAdvertiserFactory(/*should_succeed_on_start=*/true);
-    // Allow the Bluetooth adapter to be fetched.
-    base::RunLoop().RunUntilIdle();
   }
 
   void CreateConnectionBroker() {
@@ -148,6 +172,11 @@
         ash::quick_start::TargetDeviceConnectionBrokerFactory::Create();
   }
 
+  void FinishFetchingBluetoothAdapter() {
+    base::RunLoop().RunUntilIdle();
+    bluetooth_adapter_factory_wrapper_.ReturnAdapter();
+  }
+
   bool IsBluetoothPowered() { return is_bluetooth_powered_; }
 
   bool IsBluetoothPresent() { return is_bluetooth_present_; }
@@ -166,11 +195,7 @@
 
   void StartAdvertisingResultCallback(bool success) {
     start_advertising_callback_called_ = true;
-    if (success) {
-      start_advertising_callback_success_ = true;
-      return;
-    }
-    start_advertising_callback_success_ = false;
+    start_advertising_callback_success_ = success;
   }
 
   void StopAdvertisingCallback() { stop_advertising_callback_called_ = true; }
@@ -184,12 +209,19 @@
   scoped_refptr<NiceMock<device::MockBluetoothAdapter>> mock_bluetooth_adapter_;
   std::unique_ptr<TargetDeviceConnectionBroker> connection_broker_;
   std::unique_ptr<FakeFastPairAdvertiserFactory> fast_pair_advertiser_factory_;
+  DeferredBluetoothAdapterFactoryWrapper bluetooth_adapter_factory_wrapper_;
   base::test::SingleThreadTaskEnvironment task_environment_;
   base::WeakPtrFactory<TargetDeviceConnectionBrokerImplTest> weak_ptr_factory_{
       this};
 };
 
 TEST_F(TargetDeviceConnectionBrokerImplTest, GetFeatureSupportStatus) {
+  EXPECT_EQ(
+      TargetDeviceConnectionBrokerImpl::FeatureSupportStatus::kUndetermined,
+      connection_broker_->GetFeatureSupportStatus());
+
+  FinishFetchingBluetoothAdapter();
+
   SetBluetoothIsPresent(false);
   EXPECT_EQ(
       TargetDeviceConnectionBrokerImpl::FeatureSupportStatus::kNotSupported,
@@ -201,6 +233,7 @@
 }
 
 TEST_F(TargetDeviceConnectionBrokerImplTest, StartFastPairAdvertising) {
+  FinishFetchingBluetoothAdapter();
   EXPECT_EQ(0u, fast_pair_advertiser_factory_->StartAdvertisingCount());
 
   connection_broker_->StartAdvertising(
@@ -214,7 +247,42 @@
 }
 
 TEST_F(TargetDeviceConnectionBrokerImplTest,
+       StartFastPairAdvertising_BeforeBTAdapterInitialized) {
+  EXPECT_EQ(0u, fast_pair_advertiser_factory_->StartAdvertisingCount());
+
+  connection_broker_->StartAdvertising(
+      nullptr,
+      base::BindOnce(
+          &TargetDeviceConnectionBrokerImplTest::StartAdvertisingResultCallback,
+          weak_ptr_factory_.GetWeakPtr()));
+  EXPECT_EQ(0u, fast_pair_advertiser_factory_->StartAdvertisingCount());
+
+  FinishFetchingBluetoothAdapter();
+
+  EXPECT_EQ(1u, fast_pair_advertiser_factory_->StartAdvertisingCount());
+  EXPECT_TRUE(start_advertising_callback_called_);
+  EXPECT_TRUE(start_advertising_callback_success_);
+}
+
+TEST_F(TargetDeviceConnectionBrokerImplTest,
+       StartFastPairAdvertisingError_BluetoothNotPresent) {
+  FinishFetchingBluetoothAdapter();
+  SetBluetoothIsPresent(false);
+  EXPECT_EQ(0u, fast_pair_advertiser_factory_->StartAdvertisingCount());
+
+  connection_broker_->StartAdvertising(
+      nullptr,
+      base::BindOnce(
+          &TargetDeviceConnectionBrokerImplTest::StartAdvertisingResultCallback,
+          weak_ptr_factory_.GetWeakPtr()));
+  EXPECT_EQ(0u, fast_pair_advertiser_factory_->StartAdvertisingCount());
+  EXPECT_TRUE(start_advertising_callback_called_);
+  EXPECT_FALSE(start_advertising_callback_success_);
+}
+
+TEST_F(TargetDeviceConnectionBrokerImplTest,
        StartFastPairAdvertisingError_BluetoothNotPowered) {
+  FinishFetchingBluetoothAdapter();
   SetBluetoothIsPowered(false);
   EXPECT_EQ(0u, fast_pair_advertiser_factory_->StartAdvertisingCount());
 
@@ -230,6 +298,7 @@
 
 TEST_F(TargetDeviceConnectionBrokerImplTest,
        StartFastPairAdvertisingError_Unsuccessful) {
+  FinishFetchingBluetoothAdapter();
   SetFakeFastPairAdvertiserFactory(/*should_succeed_on_start=*/false);
   EXPECT_EQ(0u, fast_pair_advertiser_factory_->StartAdvertisingCount());
 
@@ -245,6 +314,8 @@
 
 TEST_F(TargetDeviceConnectionBrokerImplTest,
        StopFastPairAdvertising_NeverStarted) {
+  FinishFetchingBluetoothAdapter();
+
   // If StartAdvertising is never called, StopAdvertising should not propagate
   // to the fast pair advertiser.
   connection_broker_->StopAdvertising(base::BindOnce(
@@ -255,7 +326,28 @@
   EXPECT_FALSE(fast_pair_advertiser_factory_->StopAdvertisingCalled());
 }
 
+TEST_F(TargetDeviceConnectionBrokerImplTest,
+       StopFastPairAdvertising_BeforeBTAdapterInitialized) {
+  connection_broker_->StartAdvertising(
+      nullptr,
+      base::BindOnce(
+          &TargetDeviceConnectionBrokerImplTest::StartAdvertisingResultCallback,
+          weak_ptr_factory_.GetWeakPtr()));
+
+  // If the Bluetooth adapter hasn't finished initializing, then
+  // StartAdvertisings never completed, and StopAdvertising should not propagate
+  // to the fast pair advertiser.
+  connection_broker_->StopAdvertising(base::BindOnce(
+      &TargetDeviceConnectionBrokerImplTest::StopAdvertisingCallback,
+      weak_ptr_factory_.GetWeakPtr()));
+
+  EXPECT_TRUE(stop_advertising_callback_called_);
+  EXPECT_FALSE(fast_pair_advertiser_factory_->StopAdvertisingCalled());
+}
+
 TEST_F(TargetDeviceConnectionBrokerImplTest, StopFastPairAdvertising) {
+  FinishFetchingBluetoothAdapter();
+
   connection_broker_->StartAdvertising(
       nullptr,
       base::BindOnce(
diff --git a/chromeos/crosapi/mojom/network_settings_service.mojom b/chromeos/crosapi/mojom/network_settings_service.mojom
index 43b1067..3730891 100644
--- a/chromeos/crosapi/mojom/network_settings_service.mojom
+++ b/chromeos/crosapi/mojom/network_settings_service.mojom
@@ -9,8 +9,26 @@
 [Stable]
 struct ProxyLocation {
     // Host (or IP address) to use for proxy.
-   string host;
-   int32 port;
+    string host;
+    int32 port;
+
+    [Stable,Extensible]
+    enum Scheme {
+        [Default] kUnknown,
+        kInvalid,
+        kDirect,
+        kHttp,
+        kSocks4,
+        kSocks5,
+        kHttps,
+        kQuic,
+    };
+
+    // Identifies the scheme which is used to connect to the proxy. This is
+    // independent of the type of the transmitted requests, e.g. it does not
+    // have to be kHttps for a proxy which handles https requests. That's why
+    // it has to be transmitted.
+    [MinVersion=1] Scheme scheme;
 };
 
 // Description of the extension in the primary profile which is controlling the
diff --git a/chromeos/profiles/orderfile.newest.txt b/chromeos/profiles/orderfile.newest.txt
index 18e5212..df29ac42 100644
--- a/chromeos/profiles/orderfile.newest.txt
+++ b/chromeos/profiles/orderfile.newest.txt
@@ -1 +1 @@
-chromeos-chrome-orderfile-field-105-5187.0-1658746147-benchmark-105.0.5195.13-r1.orderfile.xz
+chromeos-chrome-orderfile-field-106-5187.0-1658747184-benchmark-106.0.5204.0-r1.orderfile.xz
diff --git a/chromeos/strings/chromeos_strings_am.xtb b/chromeos/strings/chromeos_strings_am.xtb
index cce4bd1..3b90a60 100644
--- a/chromeos/strings/chromeos_strings_am.xtb
+++ b/chromeos/strings/chromeos_strings_am.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">አይነት</translation>
 <translation id="2461822463642141190">የአሁኑ ጊዜ</translation>
 <translation id="2480034874476596812">ራስዎ ያጥፉ</translation>
+<translation id="248546197012830854">መሣሪያ ከመስመር ውጭ ነው። የእገዛ ይዘትን ለመመልከት ከWi-Fi አውታረ መረብ ጋር ይገናኙ።</translation>
 <translation id="2491955442992294626">ሌላ መስኮት ሲጠቀሙ ቁልፎች አይሞከሩም</translation>
 <translation id="2493126929778606526">የእርስዎ ምርጥ ፎቶዎች፣ በራስ-ሰር የተመረጡ</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">ከ<ph name="DEVICE_TYPE" /> ጥገና ውጣ</translation>
 <translation id="6618744767048954150">በማሄድ ላይ</translation>
 <translation id="6620487321149975369">የህትመት ስራዎች በሰው ካልተወገዱ በቀር በታሪክ ውስጥ ይታያሉ</translation>
+<translation id="6624819909909965616">ከ10 ሜባ በላይ ፋይል መስቀል አይቻልም</translation>
 <translation id="6643016212128521049">አጽዳ</translation>
 <translation id="6644568396961840069">ፋይሉን ማስቀመጥ አልቻለም። የተለየ ውጫዊ ማከማቻ ለመሰካት ይሞክሩ ወይም በኋላ ላይ በድጋሚ ይሞክሩ።</translation>
 <translation id="6647510110698214773">የምስጠራ ስልተ-ቀመር</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">እሺ</translation>
 <translation id="6977381486153291903">የጽኑ ትዕዛዝ ክለሳ</translation>
 <translation id="6995564396478647735">ከማየት ውጪ የማይፈቅድ ሁነታ መብራቱን ያረጋግጡ</translation>
+<translation id="7005833343836210400">መሣሪያ ከመስመር ውጭ ነው</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> ይህን መሣሪያ የሚያስተዳድር ሲሆን የተጎበኙ ድረ-ገጾች፣ የይለፍ ቃላት እና ኢሜይል ጨምሮ የሁሉም የተጠቃሚ እንቅስቃሴ መዳረሻ አለው።</translation>
 <translation id="7040230719604914234">ከዋኝ</translation>
 <translation id="7041549558901442110">መሣሪያ አልተገናኘም።</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">የሚቀረው ኃይል መሙላት</translation>
 <translation id="8082366717211101304">ከAndroid መተግበሪያዎች ዲኤንኤስን መፍታት አልተቻለም</translation>
 <translation id="808894953321890993">የይለፍ ቃል ለውጥ</translation>
+<translation id="8094062939584182041">Google ስለዚህ ችግር ኢሜይል እንዲልክልዎ ይፍቀዱለት</translation>
 <translation id="8104083085214006426">ክፍት እና ደህንነቱ ያልተጠበቀ አውታረ መረብ እየተጠቀሙ ነው</translation>
 <translation id="8109786307828817014">ካልተሳኩ ማስተካከሎች ጋር ይቀጥል?</translation>
 <translation id="811820734797650957">(Android) አግባቢ ፍኖት ፒንግ ሊደረግ ይችላል</translation>
diff --git a/chromeos/strings/chromeos_strings_ar.xtb b/chromeos/strings/chromeos_strings_ar.xtb
index e5da7f4..ed039cd1 100644
--- a/chromeos/strings/chromeos_strings_ar.xtb
+++ b/chromeos/strings/chromeos_strings_ar.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">النوع</translation>
 <translation id="2461822463642141190">الاستهلاك الحالي لطاقة البطارية</translation>
 <translation id="2480034874476596812">الإيقاف يدويًا</translation>
+<translation id="248546197012830854">‏الجهاز غير متصل بالإنترنت. عليك الاتصال بشبكة Wi-Fi للاطّلاع على محتوى المساعدة.</translation>
 <translation id="2491955442992294626">لا يمكن اختبار المفاتيح أثناء استخدام نافذة أخرى.</translation>
 <translation id="2493126929778606526">أفضل الصور التي تم اختيارها تلقائيًا</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">إغلاق صفحة إصلاح <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">قيد التشغيل</translation>
 <translation id="6620487321149975369">ستظهر طلبات الطباعة في السجلّ إلّا إذا تمت إزالتها يدويًا.</translation>
+<translation id="6624819909909965616">لا يمكن تحميل ملف أكبر من 10 ميغابايت.</translation>
 <translation id="6643016212128521049">محو</translation>
 <translation id="6644568396961840069">تعذَّر حفظ الملف. يُرجى محاولة توصيل وحدة تخزين خارجية مختلفة أو إعادة المحاولة لاحقًا.</translation>
 <translation id="6647510110698214773">خوارزمية التشفير</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">حسنًا</translation>
 <translation id="6977381486153291903">مراجعة البرامج الثابتة</translation>
 <translation id="6995564396478647735">التأكد من تفعيل ميزة "وضع القراءة فقط"</translation>
+<translation id="7005833343836210400">الجهاز غير متصل بالإنترنت.</translation>
 <translation id="7028979494427204405">يُدير <ph name="MANAGER" /> هذا الجهاز ويمكنه الوصول إلى جميع أنشطة المستخدم، بما في ذلك صفحات الويب التي تمت زيارتها وكلمات المرور والبريد الإلكتروني.</translation>
 <translation id="7040230719604914234">مشغل شبكة الجوّال</translation>
 <translation id="7041549558901442110">الجهاز غير متصل.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">شحن البطارية المتبقي</translation>
 <translation id="8082366717211101304">‏تعذَّر التحويل باستخدام نظام أسماء النطاقات (DNS) من تطبيقات Android.</translation>
 <translation id="808894953321890993">تغيير كلمة المرور</translation>
+<translation id="8094062939584182041">‏السماح بتلقّي رسائل إلكترونية من Google حول هذه المشكلة</translation>
 <translation id="8104083085214006426">أنت تستخدم شبكةً مفتوحة وغير آمنة.</translation>
 <translation id="8109786307828817014">هل تريد المتابعة رغم تعذّر معايرة المكوّنات؟</translation>
 <translation id="811820734797650957">‏(نظام التشغيل Android) اختبار إمكانية فحص اتصال البوابة</translation>
diff --git a/chromeos/strings/chromeos_strings_be.xtb b/chromeos/strings/chromeos_strings_be.xtb
index 500adeb..82b3f249 100644
--- a/chromeos/strings/chromeos_strings_be.xtb
+++ b/chromeos/strings/chromeos_strings_be.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Тып</translation>
 <translation id="2461822463642141190">Цяпер</translation>
 <translation id="2480034874476596812">Выключыць уручную</translation>
+<translation id="248546197012830854">Прылада па-за сеткай. Каб праглядзець даведачнае змесціва, падключыцеся да сеткі Wi-Fi.</translation>
 <translation id="2491955442992294626">Клавішы не правяраюцца, калі вы выкарыстоўваеце іншае акно</translation>
 <translation id="2493126929778606526">Найлепшыя фота, выбраныя аўтаматычна</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149"><ph name="DEVICE_TYPE" />: скасаваць рамонт прылады</translation>
 <translation id="6618744767048954150">Выконваецца</translation>
 <translation id="6620487321149975369">Заданні друку будуць паказвацца ў гісторыі, пакуль яны не будуць выдалены ўручную</translation>
+<translation id="6624819909909965616">Нельга запампаваць файл, большы за 10 МБ</translation>
 <translation id="6643016212128521049">Ачысціць</translation>
 <translation id="6644568396961840069">Не ўдалося захаваць файл. Паспрабуйце падключыць іншае знешняе сховішча або паўтарыце спробу пазней.</translation>
 <translation id="6647510110698214773">Алгарытм шыфравання</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">ОК</translation>
 <translation id="6977381486153291903">Версія ўбудаванага ПЗ</translation>
 <translation id="6995564396478647735">Упэўніцеся, што абарона ад запісу ўключана</translation>
+<translation id="7005833343836210400">Прылада па-за сеткай</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> кіруе гэтай прыладай і мае доступ да ўсіх дзеянняў карыстальніка, у тым ліку да гісторыі наведаных вэб-старонак, да пароляў і электроннай пошты.</translation>
 <translation id="7040230719604914234">Аператар</translation>
 <translation id="7041549558901442110">Прылада не падключана.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Узровень зараду акумулятара</translation>
 <translation id="8082366717211101304">Не ўдалося ажыццявіць DNS-пераўтварэнне з праграм для Android</translation>
 <translation id="808894953321890993">Змяніць пароль</translation>
+<translation id="8094062939584182041">Дазволіць Google апавяшчаць вас па электроннай пошце пра гэту праблему</translation>
 <translation id="8104083085214006426">Вы карыстаецеся адкрытай небяспечнай сеткай</translation>
 <translation id="8109786307828817014">Працягнуць нягледзячы на збой каліброўкі?</translation>
 <translation id="811820734797650957">(Android) Можна выканаць праверку ping для шлюза</translation>
diff --git a/chromeos/strings/chromeos_strings_bg.xtb b/chromeos/strings/chromeos_strings_bg.xtb
index 83ea1cf..c32ef39 100644
--- a/chromeos/strings/chromeos_strings_bg.xtb
+++ b/chromeos/strings/chromeos_strings_bg.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Тип</translation>
 <translation id="2461822463642141190">Ток</translation>
 <translation id="2480034874476596812">Ръчно изключване</translation>
+<translation id="248546197012830854">Устройството е офлайн. Свържете се с Wi-Fi мрежа, за да видите помощното съдържание.</translation>
 <translation id="2491955442992294626">Клавишите не се тестват, когато използвате друг прозорец</translation>
 <translation id="2493126929778606526">Автоматично избиране на най-добрите ви снимки</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Изход от ремонта на <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">В ход</translation>
 <translation id="6620487321149975369">Заданията за отпечатване ще се показват в историята, освен ако не ги премахнете ръчно</translation>
+<translation id="6624819909909965616">Не е възможно качването на файл, по-голям от 10 МБ</translation>
 <translation id="6643016212128521049">Изчистване</translation>
 <translation id="6644568396961840069">Файлът не бе запазен. Включете друго външно хранилище или опитайте отново по-късно.</translation>
 <translation id="6647510110698214773">Алгоритъм за шифроване</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6977381486153291903">Версия на фърмуера</translation>
 <translation id="6995564396478647735">Защитата срещу записване трябва да е включена</translation>
+<translation id="7005833343836210400">Устройството е офлайн</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> управлява това устройство и има достъп до цялата потребителска активност, включително посетените уеб страници, паролите и имейлите.</translation>
 <translation id="7040230719604914234">Оператор</translation>
 <translation id="7041549558901442110">Устройството не е свързано.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Оставащ заряд</translation>
 <translation id="8082366717211101304">Преобразуването от DNS не е възможно от приложения за Android</translation>
 <translation id="808894953321890993">Промяна на паролата</translation>
+<translation id="8094062939584182041">Разрешаване на Google да ви изпраща имейли за този проблем</translation>
 <translation id="8104083085214006426">Използвате отворена и незащитена мрежа</translation>
 <translation id="8109786307828817014">Искате ли да продължите с неуспешно калибриране?</translation>
 <translation id="811820734797650957">(Android) Шлюзът отговаря на команда ping</translation>
diff --git a/chromeos/strings/chromeos_strings_es-419.xtb b/chromeos/strings/chromeos_strings_es-419.xtb
index 4758c6c..35bdac3 100644
--- a/chromeos/strings/chromeos_strings_es-419.xtb
+++ b/chromeos/strings/chromeos_strings_es-419.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Tipo</translation>
 <translation id="2461822463642141190">Actual</translation>
 <translation id="2480034874476596812">Desactivar manualmente</translation>
+<translation id="248546197012830854">El dispositivo está sin conexión. Conéctate a una red Wi-Fi para ver el contenido de ayuda.</translation>
 <translation id="2491955442992294626">Cuando usas otra ventana no se prueban las teclas.</translation>
 <translation id="2493126929778606526">Tus mejores fotos seleccionadas automáticamente</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -519,7 +520,7 @@
 <translation id="5372659122375744710">la red Wi-Fi no es segura</translation>
 <translation id="5376354385557966694">Modo claro automático</translation>
 <translation id="537872351913703572">El dispositivo cambiará de organización o usuario</translation>
-<translation id="5389159777326897627">Estilo y fondo de pantalla</translation>
+<translation id="5389159777326897627">Fondo de pantalla y estilo</translation>
 <translation id="5389224261615877010">Arcoíris</translation>
 <translation id="5395600419410242651">Borrar todos los datos</translation>
 <translation id="5400907029458559844">El dispositivo se está conectando.</translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Salir de la reparación de <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">En ejecución</translation>
 <translation id="6620487321149975369">Los trabajos de impresión aparecerán en el historial, a menos que se quiten manualmente</translation>
+<translation id="6624819909909965616">No se puede subir un archivo de más de 10 MB</translation>
 <translation id="6643016212128521049">Borrar</translation>
 <translation id="6644568396961840069">No se pudo guardar el archivo. Intenta conectar otro almacenamiento externo o vuelve a intentarlo más tarde.</translation>
 <translation id="6647510110698214773">Algoritmo de encriptación</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">Aceptar</translation>
 <translation id="6977381486153291903">Revisión de firmware</translation>
 <translation id="6995564396478647735">Asegúrate de que la protección de escritura esté activada</translation>
+<translation id="7005833343836210400">Dispositivo sin conexión</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> administra este dispositivo y tiene acceso a toda la actividad del usuario, incluso las páginas web que visitó, su correo electrónico y sus contraseñas.</translation>
 <translation id="7040230719604914234">Operador</translation>
 <translation id="7041549558901442110">El dispositivo no está conectado.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Carga restante</translation>
 <translation id="8082366717211101304">No se puede resolver el DNS desde apps para Android</translation>
 <translation id="808894953321890993">Cambiar contraseña</translation>
+<translation id="8094062939584182041">Permitir que Google te envíe un correo electrónico sobre este problema</translation>
 <translation id="8104083085214006426">Estás usando una red abierta y no segura</translation>
 <translation id="8109786307828817014">¿Deseas continuar con las calibraciones erróneas?</translation>
 <translation id="811820734797650957">(Android) se puede hacer ping a la puerta de enlace</translation>
diff --git a/chromeos/strings/chromeos_strings_es.xtb b/chromeos/strings/chromeos_strings_es.xtb
index e58a9a3..eab26a7 100644
--- a/chromeos/strings/chromeos_strings_es.xtb
+++ b/chromeos/strings/chromeos_strings_es.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Tipo</translation>
 <translation id="2461822463642141190">Actual</translation>
 <translation id="2480034874476596812">Desactivar manualmente</translation>
+<translation id="248546197012830854">El dispositivo no tiene conexión. Conéctate a una red Wi‑Fi para ver contenido de ayuda.</translation>
 <translation id="2491955442992294626">Las teclas no se prueban mientras usas otra ventana</translation>
 <translation id="2493126929778606526">Tus mejores fotos, seleccionadas automáticamente</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -660,6 +661,7 @@
 <translation id="6611280807952151149">Salir de la reparación de <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">En curso</translation>
 <translation id="6620487321149975369">Los trabajos de impresión aparecerán en el historial a menos que se quiten de forma manual</translation>
+<translation id="6624819909909965616">No se pueden subir archivos de más de 10 MB</translation>
 <translation id="6643016212128521049">Borrar</translation>
 <translation id="6644568396961840069">No se ha podido guardar el archivo. Prueba a conectar otra memoria externa o vuelve a intentarlo más tarde.</translation>
 <translation id="6647510110698214773">Algoritmo de cifrado</translation>
@@ -695,6 +697,7 @@
 <translation id="6965382102122355670">Aceptar</translation>
 <translation id="6977381486153291903">Revisión del firmware</translation>
 <translation id="6995564396478647735">Asegúrate de que la protección contra escritura esté activada</translation>
+<translation id="7005833343836210400">El dispositivo no tiene conexión</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> gestiona este dispositivo y tiene acceso a toda la actividad del usuario, incluidas las páginas web visitadas, las contraseñas y el correo electrónico.</translation>
 <translation id="7040230719604914234">Operador</translation>
 <translation id="7041549558901442110">El dispositivo no está conectado.</translation>
@@ -808,6 +811,7 @@
 <translation id="8075838845814659848">Carga restante</translation>
 <translation id="8082366717211101304">No se puede resolver el DNS desde aplicaciones Android</translation>
 <translation id="808894953321890993">Cambiar contraseña</translation>
+<translation id="8094062939584182041">Permitir que Google te envíe correos electrónicos sobre este problema</translation>
 <translation id="8104083085214006426">Estás usando una red abierta que no es segura</translation>
 <translation id="8109786307828817014">¿Continuar con las calibraciones fallidas?</translation>
 <translation id="811820734797650957">(Android) Se puede hacer ping a la pasarela</translation>
diff --git a/chromeos/strings/chromeos_strings_fi.xtb b/chromeos/strings/chromeos_strings_fi.xtb
index 546690f..8cda7d0 100644
--- a/chromeos/strings/chromeos_strings_fi.xtb
+++ b/chromeos/strings/chromeos_strings_fi.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Tyyppi</translation>
 <translation id="2461822463642141190">Nykyinen</translation>
 <translation id="2480034874476596812">Laita pois päältä manuaalisesti</translation>
+<translation id="248546197012830854">Laite on offline-tilassa. Muodosta yhteys Wi-Fi-verkkoon, niin näet ohjesisältöä.</translation>
 <translation id="2491955442992294626">Näppäimiä ei testata, kun käytät toista ikkunaa</translation>
 <translation id="2493126929778606526">Parhaat kuvasi, valittu automaattisesti</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Poistu <ph name="DEVICE_TYPE" />-korjauksesta</translation>
 <translation id="6618744767048954150">Käynnissä</translation>
 <translation id="6620487321149975369">Tulostustyöt näkyvät historiassa, ellei niitä poisteta manuaalisesti</translation>
+<translation id="6624819909909965616">Ladattavan tiedoston koko voi olla enintään 10 Mt.</translation>
 <translation id="6643016212128521049">Tyhjennä</translation>
 <translation id="6644568396961840069">Tiedostoa ei voitu tallentaa. Yritä liittää toinen ulkoinen tallennustila tai yritä myöhemmin uudelleen.</translation>
 <translation id="6647510110698214773">Salausalgoritmi</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6977381486153291903">Laiteohjelmiston versio</translation>
 <translation id="6995564396478647735">Varmista, että Write Protect on päällä.</translation>
+<translation id="7005833343836210400">Laite on offline-tilassa</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> ylläpitää tätä laitetta ja pääsee näkemään kaiken käyttäjätoiminnan, esim. avatut verkkosivustot, salasanat ja sähköpostit.</translation>
 <translation id="7040230719604914234">Operaattori</translation>
 <translation id="7041549558901442110">Laitetta ei ole yhdistetty.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Virtaa jäljellä</translation>
 <translation id="8082366717211101304">DNS:n selvitys ei onnistu Android-sovelluksilla</translation>
 <translation id="808894953321890993">Vaihda salasana</translation>
+<translation id="8094062939584182041">Salli Googlen lähettää sinulle sähköpostia tästä ongelmasta</translation>
 <translation id="8104083085214006426">Käytät avointa ja suojaamatonta verkkoa</translation>
 <translation id="8109786307828817014">Jatketaanko epäonnistuneella kalibroinnilla?</translation>
 <translation id="811820734797650957">(Android) Yhdyskäytävää voidaan pingata</translation>
diff --git a/chromeos/strings/chromeos_strings_fr-CA.xtb b/chromeos/strings/chromeos_strings_fr-CA.xtb
index 2e2de0a..66abc3b 100644
--- a/chromeos/strings/chromeos_strings_fr-CA.xtb
+++ b/chromeos/strings/chromeos_strings_fr-CA.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Type</translation>
 <translation id="2461822463642141190">Actuelle</translation>
 <translation id="2480034874476596812">Désactiver manuellement</translation>
+<translation id="248546197012830854">L'appareil est hors ligne. Connectez-vous au réseau Wi-Fi pour afficher le contenu d'aide.</translation>
 <translation id="2491955442992294626">Les touches ne sont pas testées lorsque vous utilisez une autre fenêtre</translation>
 <translation id="2493126929778606526">Vos meilleures photos, sélectionnées automatiquement</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" />   <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Quitter la réparation de l'appareil <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">En cours…</translation>
 <translation id="6620487321149975369">Les tâches d'impression s'afficheront dans l'historique, sauf si vous les retirez manuellement</translation>
+<translation id="6624819909909965616">Impossible de télécharger un fichier de plus de 10 Mo</translation>
 <translation id="6643016212128521049">Effacer</translation>
 <translation id="6644568396961840069">Impossible d'enregistrer le fichier. Essayez d'utiliser un autre appareil de stockage externe ou réessayez plus tard.</translation>
 <translation id="6647510110698214773">Algorithme de chiffrement</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6977381486153291903">Version du micrologiciel</translation>
 <translation id="6995564396478647735">Assurez-vous que la protection en écriture est activée</translation>
+<translation id="7005833343836210400">L'appareil est hors ligne</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> gère cet appareil et a accès à toutes les activités, y compris les pages Web que vous visitez, vos mots de passe et vos courriels.</translation>
 <translation id="7040230719604914234">Opérateur</translation>
 <translation id="7041549558901442110">L'appareil n'est pas connecté.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Charge restante</translation>
 <translation id="8082366717211101304">Impossible de résoudre le DNS à partir d'applications Android</translation>
 <translation id="808894953321890993">Changer le mot de passe</translation>
+<translation id="8094062939584182041">Autoriser Google à vous envoyer un courriel à propos de ce problème</translation>
 <translation id="8104083085214006426">Vous utilisez un réseau ouvert et non sécurisé</translation>
 <translation id="8109786307828817014">Continuer malgré l'échec des calibrations?</translation>
 <translation id="811820734797650957">La passerelle peut faire l'objet d'un ping (Android)</translation>
diff --git a/chromeos/strings/chromeos_strings_fr.xtb b/chromeos/strings/chromeos_strings_fr.xtb
index 7ce05a05..9de4a1d 100644
--- a/chromeos/strings/chromeos_strings_fr.xtb
+++ b/chromeos/strings/chromeos_strings_fr.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Type</translation>
 <translation id="2461822463642141190">Consommation actuelle</translation>
 <translation id="2480034874476596812">Manuellement</translation>
+<translation id="248546197012830854">L'appareil est hors connexion. Connectez-vous au réseau Wi-Fi pour afficher le contenu d'aide.</translation>
 <translation id="2491955442992294626">Les touches ne sont pas testées lorsque vous utilisez une autre fenêtre</translation>
 <translation id="2493126929778606526">Vos plus belles photos sélectionnées automatiquement</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Quitter la réparation du <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">En cours</translation>
 <translation id="6620487321149975369">Les tâches d'impression seront incluses dans l'historique, sauf si vous les supprimez manuellement</translation>
+<translation id="6624819909909965616">Impossible d'importer un fichier de plus de 10 Mo</translation>
 <translation id="6643016212128521049">Effacer</translation>
 <translation id="6644568396961840069">Impossible d'enregistrer le fichier. Essayez de brancher un autre périphérique de stockage externe ou réessayez plus tard.</translation>
 <translation id="6647510110698214773">Algorithme de chiffrement</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6977381486153291903">Version du micrologiciel</translation>
 <translation id="6995564396478647735">Vérifier que la protection en écriture est activée</translation>
+<translation id="7005833343836210400">L'appareil est hors connexion</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> gère cet appareil et a accès à toutes les activités des utilisateurs, y compris les pages Web consultées, les mots de passe et la messagerie.</translation>
 <translation id="7040230719604914234">Opérateur</translation>
 <translation id="7041549558901442110">L'appareil n'est pas connecté.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Niveau de charge</translation>
 <translation id="8082366717211101304">Impossible de résoudre le DNS depuis les applis Android</translation>
 <translation id="808894953321890993">Modifier le mot de passe</translation>
+<translation id="8094062939584182041">Autoriser Google à vous informer de ce problème par e-mail</translation>
 <translation id="8104083085214006426">Vous utilisez un réseau ouvert et non sécurisé</translation>
 <translation id="8109786307828817014">Continuer malgré les échecs de calibrage ?</translation>
 <translation id="811820734797650957">(Android) Pinguer la passerelle</translation>
diff --git a/chromeos/strings/chromeos_strings_gl.xtb b/chromeos/strings/chromeos_strings_gl.xtb
index b27a537..f84fcdc2 100644
--- a/chromeos/strings/chromeos_strings_gl.xtb
+++ b/chromeos/strings/chromeos_strings_gl.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Tipo</translation>
 <translation id="2461822463642141190">Actual</translation>
 <translation id="2480034874476596812">Desactivar manualmente</translation>
+<translation id="248546197012830854">O dispositivo non ten conexión. Conéctao á rede wifi para ver o contido de axuda.</translation>
 <translation id="2491955442992294626">As teclas non se someten a probas se estás usando outra ventá</translation>
 <translation id="2493126929778606526">As túas mellores fotos, seleccionadas automaticamente</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Saír da reparación do dispositivo <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">En execución</translation>
 <translation id="6620487321149975369">Os traballos de impresión aparecerán no historial a menos que os quites de xeito manual</translation>
+<translation id="6624819909909965616">Non se poden subir ficheiros cun tamaño superior a 10 MB</translation>
 <translation id="6643016212128521049">Borrar</translation>
 <translation id="6644568396961840069">Non se puido gardar o ficheiro. Proba a enchufar outro dispositivo de almacenamento externo ou téntao de novo máis tarde.</translation>
 <translation id="6647510110698214773">Algoritmo de encriptación</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">Aceptar</translation>
 <translation id="6977381486153291903">Revisión do firmware</translation>
 <translation id="6995564396478647735">Asegúrate de que a protección contra a escritura estea activada</translation>
+<translation id="7005833343836210400">O dispositivo non ten conexión</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> xestiona este dispositivo e ten acceso a toda a actividade dos usuarios, como as páxinas web visitadas, os contrasinais e o correo electrónico.</translation>
 <translation id="7040230719604914234">Operador</translation>
 <translation id="7041549558901442110">O dispositivo non está conectado.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Carga restante</translation>
 <translation id="8082366717211101304">Non se puido resolver o DNS desde aplicacións para Android</translation>
 <translation id="808894953321890993">Cambiar contrasinal</translation>
+<translation id="8094062939584182041">Permitir que Google che envíe correos electrónicos sobre este tema</translation>
 <translation id="8104083085214006426">Estás usando unha rede aberta e non segura</translation>
 <translation id="8109786307828817014">Queres continuar a pesar dos erros de calibración?</translation>
 <translation id="811820734797650957">(Android) pódeselle facer ping á pasarela</translation>
diff --git a/chromeos/strings/chromeos_strings_hi.xtb b/chromeos/strings/chromeos_strings_hi.xtb
index 000208b..60417c7 100644
--- a/chromeos/strings/chromeos_strings_hi.xtb
+++ b/chromeos/strings/chromeos_strings_hi.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">प्रकार</translation>
 <translation id="2461822463642141190">मौजूदा</translation>
 <translation id="2480034874476596812">मैन्युअल तरीके से बंद करें</translation>
+<translation id="248546197012830854">डिवाइस ऑफ़लाइन है. सहायता कॉन्टेंट देखने के लिए, वाई-फ़ाई नेटवर्क से कनेक्ट करें.</translation>
 <translation id="2491955442992294626">दूसरी विंडो इस्तेमाल करने पर बटनों की जांच नहीं की जाती है</translation>
 <translation id="2493126929778606526">आपकी सबसे अच्छी फ़ोटो, अपने-आप चुन ली गईं</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149"><ph name="DEVICE_TYPE" /> को रिपेयर करने की प्रोसेस से बाहर निकलें</translation>
 <translation id="6618744767048954150">जांच चल रही है</translation>
 <translation id="6620487321149975369">प्रिंट की गई फ़ाइलें तब तक इतिहास में दिखेंगी, जब तक इन्हें मैन्युअल तरीके से हटा नहीं दिया जाता</translation>
+<translation id="6624819909909965616">10 एमबी से बड़ी फ़ाइल अपलोड नहीं की जा सकती</translation>
 <translation id="6643016212128521049">साफ़ करें</translation>
 <translation id="6644568396961840069">फ़ाइल सेव नहीं की जा सकी. दूसरी तरह के बाहरी स्टोरेज को प्लग इन करके देखें या बाद में कोशिश करें.</translation>
 <translation id="6647510110698214773">एन्क्रिप्शन का एल्गोरिदम</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">ठीक है</translation>
 <translation id="6977381486153291903">फ़र्मवेयर पुनरीक्षण</translation>
 <translation id="6995564396478647735">पक्का करें कि 'राइट प्रोटेक्ट' चालू हो</translation>
+<translation id="7005833343836210400">डिवाइस ऑफ़लाइन है</translation>
 <translation id="7028979494427204405">इस डिवाइस को <ph name="MANAGER" /> प्रबंधित करता है और इसके पास उपयोगकर्ता की सभी गतिविधियों का ऐक्सेस है. इन गतिविधियों में उपयोगकर्ता के पासवर्ड, ईमेल, और उन पेजों की जानकारी होती है जिन पर वह जाता है.</translation>
 <translation id="7040230719604914234">ऑपरेटर</translation>
 <translation id="7041549558901442110">डिवाइस कनेक्ट नहीं है.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">इतने प्रतिशत चार्ज होना बाकी है</translation>
 <translation id="8082366717211101304">Android ऐप्लिकेशन से डीएनएस की समस्या ठीक नहीं की जा सकती</translation>
 <translation id="808894953321890993">पासवर्ड बदलें</translation>
+<translation id="8094062939584182041">Google को इस समस्या के बारे में ईमेल भेजने की अनुमति दें</translation>
 <translation id="8104083085214006426">आप एक ओपन नेटवर्क का इस्तेमाल कर रहे हैं जो सुरक्षित नहीं है</translation>
 <translation id="8109786307828817014">क्या आपको कॉम्पोनेंट को कैलिब्रेट किए बिना आगे बढ़ना है?</translation>
 <translation id="811820734797650957">(Android) गेटवे को पिंग किया जा सकता है</translation>
diff --git a/chromeos/strings/chromeos_strings_hy.xtb b/chromeos/strings/chromeos_strings_hy.xtb
index c2ebf65..0bbbdce 100644
--- a/chromeos/strings/chromeos_strings_hy.xtb
+++ b/chromeos/strings/chromeos_strings_hy.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Տեսակ</translation>
 <translation id="2461822463642141190">Ընթացիկ</translation>
 <translation id="2480034874476596812">Անջատել ձեռքով</translation>
+<translation id="248546197012830854">Սարքը միացած չէ ինտերնետին։ Միացեք Wi-Fi ցանցին՝ տեղեկատվական բովանդակություն տեսնելու համար։</translation>
 <translation id="2491955442992294626">Ստեղները չեն փորձարկվում, երբ օգտագործում եք մեկ այլ պատուհան։</translation>
 <translation id="2493126929778606526">Ավտոմատ ընտրված լավագույն լուսանկարները</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Դուրս գալ <ph name="DEVICE_TYPE" /> սարքի նորոգման էջից</translation>
 <translation id="6618744767048954150">Ստուգումն ընթացքում է</translation>
 <translation id="6620487321149975369">Տպելու առաջադրանքները կցուցադրվեն պատմության մեջ, եթե դրանք ձեռքով չեն հեռացվել</translation>
+<translation id="6624819909909965616">Հնարավոր չէ վերբեռնել 10 ՄԲ-ից մեծ ֆայլ։</translation>
 <translation id="6643016212128521049">Մաքրել</translation>
 <translation id="6644568396961840069">Չհաջողվեց պահել ֆայլը։ Փորձեք այլ արտաքին հիշողություն միացնել կամ կրկնեք ավելի ուշ։</translation>
 <translation id="6647510110698214773">Գաղտնագրման ալգորիթմ</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">Եղավ</translation>
 <translation id="6977381486153291903">Ներկառուցված ծրագրակազմի տարբերակը</translation>
 <translation id="6995564396478647735">Համոզվեք, որ Write Protect-ը միացված է</translation>
+<translation id="7005833343836210400">Սարքը միացած չէ ինտերնետին</translation>
 <translation id="7028979494427204405">Այս սարքը կառավարվում է <ph name="MANAGER" />-ի կողմից, և վերջինիս տեսանելի են օգտատիրոջ բոլոր գործողությունները, այդ թվում՝ այցելած կայքերը, գաղտնաբառերը և նամակները:</translation>
 <translation id="7040230719604914234">Օպերատոր</translation>
 <translation id="7041549558901442110">Սարքը միացված չէ։</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Մարտկոցի լիցքը</translation>
 <translation id="8082366717211101304">Չհաջողվեց փոխակերպել DNS-ը Android հավելվածներից</translation>
 <translation id="808894953321890993">Փոխել գաղտնաբառը</translation>
+<translation id="8094062939584182041">Թույլ տվեք Google-ին տեղեկացնել ձեզ էլփոստով այս խնդրի մասին</translation>
 <translation id="8104083085214006426">Դուք օգտագործում եք բաց և ոչ անվտանգ ցանց</translation>
 <translation id="8109786307828817014">Շարունակե՞լ՝ չնայած որոշ չափաբերումների ձախողմանը</translation>
 <translation id="811820734797650957">Անցախուցը պատասխանում է փինգ հարցմանը (Android)</translation>
diff --git a/chromeos/strings/chromeos_strings_is.xtb b/chromeos/strings/chromeos_strings_is.xtb
index 83eeae5..7342c85 100644
--- a/chromeos/strings/chromeos_strings_is.xtb
+++ b/chromeos/strings/chromeos_strings_is.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Gerð</translation>
 <translation id="2461822463642141190">Núna</translation>
 <translation id="2480034874476596812">Slökkva handvirkt</translation>
+<translation id="248546197012830854">Tækið er ekki nettengt. Tengstu Wi-Fi neti til að sjá hjálparefni.</translation>
 <translation id="2491955442992294626">Lyklar eru ekki prófaðir þegar þú notar annan glugga</translation>
 <translation id="2493126929778606526">Bestu myndirnar þínar, valdar sjálfkrafa</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Hætta viðgerð á <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">Í gangi</translation>
 <translation id="6620487321149975369">Prentverk birtast í ferli nema þau séu fjarlægð handvirkt</translation>
+<translation id="6624819909909965616">Ekki hægt að hlaða upp skrá sem er stærri en 10 MB</translation>
 <translation id="6643016212128521049">Hreinsa</translation>
 <translation id="6644568396961840069">Ekki var hægt að vista skrána. Prófaðu að tengjast við aðra ytri geymslu eða reyndu aftur síðar.</translation>
 <translation id="6647510110698214773">Dulkóðunarreiknirit</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">Í lagi</translation>
 <translation id="6977381486153291903">Útgáfa fastbúnaðar</translation>
 <translation id="6995564396478647735">Gakktu úr skugga um að kveikt sé á skrifvörn</translation>
+<translation id="7005833343836210400">Tækið er án nettengingar</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> hefur umsjón með þessu tæki og hefur aðgang að allri notendavirkni, þ.m.t. heimsóttum vefsíðum, aðgangsorðum og tölvupósti.</translation>
 <translation id="7040230719604914234">Símafyrirtæki</translation>
 <translation id="7041549558901442110">Tækið er ekki tengt.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Hleðsla eftir</translation>
 <translation id="8082366717211101304">Ekki er hægt að leysa úr DNS frá Android forritum</translation>
 <translation id="808894953321890993">Breyta aðgangsorði</translation>
+<translation id="8094062939584182041">Leyfa Google að senda þér tölvupóst vegna vandamálsins</translation>
 <translation id="8104083085214006426">Þú ert að nota opið og ótraust netkerfi</translation>
 <translation id="8109786307828817014">Halda áfram þrátt fyrir að kvörðun vanti?</translation>
 <translation id="811820734797650957">(Android) Hægt er að ping-prófa gátt</translation>
diff --git a/chromeos/strings/chromeos_strings_iw.xtb b/chromeos/strings/chromeos_strings_iw.xtb
index d927e00..f906729c 100644
--- a/chromeos/strings/chromeos_strings_iw.xtb
+++ b/chromeos/strings/chromeos_strings_iw.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">סוג</translation>
 <translation id="2461822463642141190">כרגע</translation>
 <translation id="2480034874476596812">כיבוי ידני</translation>
+<translation id="248546197012830854">‏המכשיר במצב אופליין. צריך להתחבר לרשת Wi-Fi כדי לראות את תוכן העזרה.</translation>
 <translation id="2491955442992294626">המקשים לא נבדקים כשמשתמשים בחלון אחר</translation>
 <translation id="2493126929778606526">התמונות הטובות ביותר שלך שנבחרו באופן אוטומטי</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">יציאה מתהליך התיקון של <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">הבדיקה מתבצעת עכשיו</translation>
 <translation id="6620487321149975369">משימות הדפסה יופיעו תחת היסטוריה אלא אם הן הוסרו ידנית</translation>
+<translation id="6624819909909965616">‏אי אפשר להעלות קובץ שגדול מ-10MB</translation>
 <translation id="6643016212128521049">ניקוי</translation>
 <translation id="6644568396961840069">לא ניתן היה לשמור את הקובץ. אפשר לחבר התקן אחסון חיצוני אחר או לנסות שוב מאוחר יותר.</translation>
 <translation id="6647510110698214773">האלגוריתם להצפנה</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">אישור</translation>
 <translation id="6977381486153291903">שכתוב קושחה</translation>
 <translation id="6995564396478647735">צריך לוודא שהתכונה 'הגנה מכתיבה' פועלת</translation>
+<translation id="7005833343836210400">המכשיר במצב אופליין</translation>
 <translation id="7028979494427204405">הניהול של המכשיר הזה מתבצע מהדומיין <ph name="MANAGER" /> ואפשר לגשת ממנו אל כל המידע על הפעילות של המשתמשים, כולל דפי אינטרנט שנכנסת אליהם, סיסמאות ואימייל.</translation>
 <translation id="7040230719604914234">ספק</translation>
 <translation id="7041549558901442110">המכשיר לא מחובר.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">אחוז הסוללה שנותר לטעון</translation>
 <translation id="8082366717211101304">‏לא ניתן ליצור רזולוציית DNS לאפליקציות ל-Android</translation>
 <translation id="808894953321890993">שינוי הסיסמה</translation>
+<translation id="8094062939584182041">‏מתן הרשאה ל-Google לשלוח לך אימייל בנוגע לבעיה הזו</translation>
 <translation id="8104083085214006426">הרשת שאליה התחברת פתוחה ואינה מאובטחת</translation>
 <translation id="8109786307828817014">להמשיך עם הכיול שנכשל?</translation>
 <translation id="811820734797650957">‏אפשר לבדוק אם יש חיבור לשער באמצעות פינג (Android)</translation>
diff --git a/chromeos/strings/chromeos_strings_lo.xtb b/chromeos/strings/chromeos_strings_lo.xtb
index ff768ac..69b0e99 100644
--- a/chromeos/strings/chromeos_strings_lo.xtb
+++ b/chromeos/strings/chromeos_strings_lo.xtb
@@ -27,6 +27,7 @@
 <translation id="1199355487114804640">ຫຼິ້ນ/ຢຸດຊົ່ວຄາວ</translation>
 <translation id="1201402288615127009">ຕໍ່ໄປ</translation>
 <translation id="1204296502688602597">ການຕອບສະໜອງຂອງ DNS</translation>
+<translation id="1207734034680156868">ການແນະນຳອ້າງອີງມາຈາກຄຳອະທິບາຍຂອງທ່ານ</translation>
 <translation id="123124571410524056">ສົງໄສວ່າເປັນໜ້າເວັບ</translation>
 <translation id="1236400083787698183">ກ່ອນການຣີສະຕາດ, ໃຫ້ດຳເນີນການ Powerwash ອຸປະກອນຂອງທ່ານກ່ອນ. ຫາກອຸປະກອນຂອງທ່ານມີຝາປິດ, ໃຫ້ລໍຖ້າຈົນກວ່າຂັ້ນຕອນ Powerwash ຈະສຳເລັດກ່ອນການປິດຝາ. ຂັ້ນຕອນ Powerwash ອາດໃຊ້ເວລາຮອດໜຶ່ງນາທີຈຶ່ງຈະສຳເລັດ.</translation>
 <translation id="1238612778414822719">ເວລາແຝງ HTTPS</translation>
@@ -197,6 +198,7 @@
 <translation id="2448312741937722512">ປະ​ເພດ</translation>
 <translation id="2461822463642141190">ປັດຈຸບັນ</translation>
 <translation id="2480034874476596812">ປິດໄວ້ດ້ວຍຕົວເອງ</translation>
+<translation id="248546197012830854">ອຸປະກອນອອບລາຍຢູ່. ເຊື່ອມຕໍ່ຫາເຄືອຂ່າຍ Wi-Fi ເພື່ອເບິ່ງເນື້ອຫາຊ່ວຍເຫຼືອ.</translation>
 <translation id="2491955442992294626">ປຸ່ມຕ່າງໆຈະບໍ່ໄດ້ຮັບການທົດສອບເມື່ອໃຊ້ໜ້າຈໍອື່ນ</translation>
 <translation id="2493126929778606526">ຮູບພາບທີ່ດີສຸດຂອງທ່ານ, ເລືອກໂດຍອັດຕະໂນມັດ</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -662,6 +664,7 @@
 <translation id="6611280807952151149">ອອກຈາກການສ້ອມແປງ <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">ກຳລັງເປີດ</translation>
 <translation id="6620487321149975369">ວຽກພິມຈະປາກົດໃນປະຫວັດ ເວັ້ນເສຍແຕ່ຜູ້ໃຊ້ຈະລຶບພວກມັນອອກດ້ວຍຕົນເອງ</translation>
+<translation id="6624819909909965616">ບໍ່ສາມາດອັບໂຫຼດໄຟລ໌ທີ່ໃຫຍ່ກວ່າ 10 MB ໄດ້</translation>
 <translation id="6643016212128521049">ລຶບ</translation>
 <translation id="6644568396961840069">ບໍ່ສາມາດບັນທຶກໄຟລ໌ໄດ້. ລອງປລັກອິນບ່ອນຈັດເກັບຂໍ້ມູນພາຍນອກອື່ນ ຫຼື ລອງໃໝ່ພາຍຫຼັງ.</translation>
 <translation id="6647510110698214773">ອະກໍຣິທຶມການເຂົ້າລະຫັດ</translation>
@@ -697,6 +700,7 @@
 <translation id="6965382102122355670">ຕົກລົງ</translation>
 <translation id="6977381486153291903">ການດັດແກ້ເຟີມແວ</translation>
 <translation id="6995564396478647735">ກວດສອບວ່າເປີດໃຊ້ Write Protect ແລ້ວ</translation>
+<translation id="7005833343836210400">ອຸປະກອນອອບລາຍຢູ່</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> ຈັດການອຸປະກອນນີ້ ແລະ ເຂົ້າເຖິງການເຄື່ອນໄຫວຜູ້ໃຊ້ທັງໝົດ, ຮວມທັງໜ້າເວັບທີ່ເຂົ້າເບິ່ງ, ລະຫັດຜ່ານ ແລະ ອີເມວ.</translation>
 <translation id="7040230719604914234">ຜູ້ໃຫ້ບໍລິການ</translation>
 <translation id="7041549558901442110">ອຸປະກອນບໍ່ໄດ້ເຊື່ອມຕໍ່.</translation>
@@ -811,6 +815,7 @@
 <translation id="8075838845814659848">ການສາກທີ່ເຫຼືອ</translation>
 <translation id="8082366717211101304">ບໍ່ສາມາດລະບຸ DNS ຈາກແອັບ Android ໄດ້</translation>
 <translation id="808894953321890993">ປ່ຽນລະຫັດຜ່ານ</translation>
+<translation id="8094062939584182041">ອະນຸຍາດໃຫ້ Google ສົ່ງອີເມວຫາທ່ານກ່ຽວກັບບັນຫານີ້</translation>
 <translation id="8104083085214006426">ທ່ານກຳລັງໃຊ້ເຄືອຂ່າຍເປີດ ແລະ ບໍ່ປອດໄພຢູ່</translation>
 <translation id="8109786307828817014">ສືບຕໍ່ໂດຍມີການປັບທຽບທີ່ບໍ່ສຳເລັດບໍ?</translation>
 <translation id="811820734797650957">(Android) ສາມາດ Ping ເກດເວໄດ້</translation>
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb
index d6d0c7f..af31207a 100644
--- a/chromeos/strings/chromeos_strings_lt.xtb
+++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Tipas</translation>
 <translation id="2461822463642141190">Dabartinė</translation>
 <translation id="2480034874476596812">Išjungti neautomatiškai</translation>
+<translation id="248546197012830854">Įrenginys neprijungtas prie interneto. Prisijunkite prie „Wi-Fi“ tinklo, kad galėtumėte peržiūrėti pagalbos turinį.</translation>
 <translation id="2491955442992294626">Klavišai nėra testuojami, kai naudojate kitą langą</translation>
 <translation id="2493126929778606526">Geriausios nuotraukos, parinktos automatiškai</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Nutraukti „<ph name="DEVICE_TYPE" />“ taisymą</translation>
 <translation id="6618744767048954150">Vykdoma</translation>
 <translation id="6620487321149975369">Spausdinimo užduotys bus rodomos istorijoje, nebent bus pašalintos neautomatiškai</translation>
+<translation id="6624819909909965616">Negalima įkelti didesnio nei dešimties megabaitų failo</translation>
 <translation id="6643016212128521049">Išvalyti</translation>
 <translation id="6644568396961840069">Failo nepavyko išsaugoti. Pabandykite prijungti kitą išorinę saugyklą arba vėliau bandykite dar kartą.</translation>
 <translation id="6647510110698214773">Šifruotės algoritmas</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">Gerai</translation>
 <translation id="6977381486153291903">Programinės aparatinės įrangos taisymas</translation>
 <translation id="6995564396478647735">Įsitikinkite, kad įjungta įrašymo apsauga</translation>
+<translation id="7005833343836210400">Įrenginys neprijungtas prie interneto</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> tvarko šį įrenginį ir gali pasiekti visus naudotojo veiklos duomenis, įskaitant tinklalapius, kuriuose lankėsi, slaptažodžius ir el. paštą.</translation>
 <translation id="7040230719604914234">Operatorius</translation>
 <translation id="7041549558901442110">Įrenginys neprijungtas.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Likusio įkrovimo rodiklis</translation>
 <translation id="8082366717211101304">Nepavyko pateikti DNS iš „Android“ programų</translation>
 <translation id="808894953321890993">Keisti slaptažodį</translation>
+<translation id="8094062939584182041">Leisti „Google“ siųsti jums el. laišką apie šią problemą</translation>
 <translation id="8104083085214006426">Naudojate atvirąjį ir nesaugų tinklą</translation>
 <translation id="8109786307828817014">Tęsti naudojant nesukalibruotus komponentus?</translation>
 <translation id="811820734797650957">(„Android“) Galima patikrinti tinklų sietuvo ryšį</translation>
diff --git a/chromeos/strings/chromeos_strings_lv.xtb b/chromeos/strings/chromeos_strings_lv.xtb
index ee1449c..ada4aff 100644
--- a/chromeos/strings/chromeos_strings_lv.xtb
+++ b/chromeos/strings/chromeos_strings_lv.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Tips</translation>
 <translation id="2461822463642141190">Šobrīd</translation>
 <translation id="2480034874476596812">Manuāla izslēgšana</translation>
+<translation id="248546197012830854">Ierīce ir bezsaistē. Izveidojiet savienojumu ar Wi-Fi tīklu, lai skatītu palīdzības saturu.</translation>
 <translation id="2491955442992294626">Taustiņi netiek pārbaudīti, ja ir fokusēts cits logs.</translation>
 <translation id="2493126929778606526">Jūsu labākie fotoattēli (atlasīti automātiski)</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> — <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Iziet no ierīces (<ph name="DEVICE_TYPE" />) labošanas plūsmas</translation>
 <translation id="6618744767048954150">Notiek pārbaude</translation>
 <translation id="6620487321149975369">Drukas uzdevumi būs redzami vēsturē, ja vien tie netiks noņemti manuāli</translation>
+<translation id="6624819909909965616">Nevar augšupielādēt failu, kura lielums pārsniedz 10 MB.</translation>
 <translation id="6643016212128521049">Notīrīt</translation>
 <translation id="6644568396961840069">Nevarēja saglabāt failu. Pievienojiet citu ārējo atmiņu vai vēlāk mēģiniet vēlreiz.</translation>
 <translation id="6647510110698214773">Šifrēšanas algoritms</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">Labi</translation>
 <translation id="6977381486153291903">Aparātprogrammatūras pārskatīšana</translation>
 <translation id="6995564396478647735">Ieslēdziet aizsardzību pret rakstīšanu</translation>
+<translation id="7005833343836210400">Ierīce ir bezsaistē</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> pārvalda šo ierīci un var piekļūt visām lietotāja darbībām, tostarp apmeklētajām tīmekļa lapām, parolēm un e-pastam.</translation>
 <translation id="7040230719604914234">Mobilo sakaru operators</translation>
 <translation id="7041549558901442110">Ierīce nav pievienota.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Atlikusī akumulatora enerģija</translation>
 <translation id="8082366717211101304">Nevar atrast DNS no Android lietotnēm</translation>
 <translation id="808894953321890993">Mainīt paroli</translation>
+<translation id="8094062939584182041">Atļaut Google nosūtīt jums e-pasta ziņojumu par šo problēmu</translation>
 <translation id="8104083085214006426">Jūs izmantojat atvērtu un nedrošu tīklu</translation>
 <translation id="8109786307828817014">Vai turpināt, neņemot vērā kalibrēšanas kļūmes?</translation>
 <translation id="811820734797650957">(Android) Vārteju var ehotestēt</translation>
diff --git a/chromeos/strings/chromeos_strings_no.xtb b/chromeos/strings/chromeos_strings_no.xtb
index d7b471e..bdc416f 100644
--- a/chromeos/strings/chromeos_strings_no.xtb
+++ b/chromeos/strings/chromeos_strings_no.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Type</translation>
 <translation id="2461822463642141190">Nåværende</translation>
 <translation id="2480034874476596812">Slå av manuelt</translation>
+<translation id="248546197012830854">Enheten er uten nett. Koble til et wifi-nettverk for å se hjelpeinnhold.</translation>
 <translation id="2491955442992294626">Taster blir ikke testet når du bruker andre vinduer</translation>
 <translation id="2493126929778606526">De beste bildene dine, valgt automatisk</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Avslutt <ph name="DEVICE_TYPE" />-reparasjonen</translation>
 <translation id="6618744767048954150">Kjører</translation>
 <translation id="6620487321149975369">Utskriftsjobber vises i loggen med mindre de fjernes manuelt</translation>
+<translation id="6624819909909965616">Kan ikke laste opp filer som er større enn 10 MB</translation>
 <translation id="6643016212128521049">Tøm</translation>
 <translation id="6644568396961840069">Filen kunne ikke lagres. Prøv å koble til en annen ekstern lagringsenhet, eller prøv igjen senere.</translation>
 <translation id="6647510110698214773">Algoritme for kryptering</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6977381486153291903">Fastvareversjon</translation>
 <translation id="6995564396478647735">Sørg for at skrivebeskyttelse er på</translation>
+<translation id="7005833343836210400">Enheten er uten nett</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> administrerer denne enheten og har tilgang til all brukeraktivitet, blant annet nettsteder som besøkes, passord og e-post.</translation>
 <translation id="7040230719604914234">Operatør</translation>
 <translation id="7041549558901442110">Enheten er ikke tilkoblet.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Gjenværende batteri</translation>
 <translation id="8082366717211101304">Kan ikke foreta DNS-oppslag fra Android-apper</translation>
 <translation id="808894953321890993">Endre passord</translation>
+<translation id="8094062939584182041">La Google sende deg e-post om dette problemet</translation>
 <translation id="8104083085214006426">Du bruker et åpent og usikret nettverk</translation>
 <translation id="8109786307828817014">Vil du gå videre med de mislykkede kalibreringene?</translation>
 <translation id="811820734797650957">(Android) Gatewayen kan pinges</translation>
diff --git a/chromeos/strings/chromeos_strings_pl.xtb b/chromeos/strings/chromeos_strings_pl.xtb
index ee58775..330d8f1 100644
--- a/chromeos/strings/chromeos_strings_pl.xtb
+++ b/chromeos/strings/chromeos_strings_pl.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Typ</translation>
 <translation id="2461822463642141190">Aktualnie</translation>
 <translation id="2480034874476596812">Wyłącz ręcznie</translation>
+<translation id="248546197012830854">Urządzenie jest offline. Aby wyświetlić materiały pomocy, połącz się z siecią Wi-Fi.</translation>
 <translation id="2491955442992294626">Gdy używasz innego okna, klucze nie są testowane</translation>
 <translation id="2493126929778606526">Twoje najlepsze zdjęcia wybrane automatycznie</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Zamknij naprawę urządzenia <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">W toku</translation>
 <translation id="6620487321149975369">Zadania drukowania będą widoczne w historii, dopóki ich nie usuniesz</translation>
+<translation id="6624819909909965616">Nie możesz przesłać pliku większego niż 10 MB</translation>
 <translation id="6643016212128521049">Wyczyść</translation>
 <translation id="6644568396961840069">Nie udało się zapisać pliku. Podłącz inną pamięć zewnętrzną lub spróbuj jeszcze raz później.</translation>
 <translation id="6647510110698214773">Algorytm szyfrowania</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6977381486153291903">Wersja oprogramowania</translation>
 <translation id="6995564396478647735">Włącz zabezpieczenie przed zapisem</translation>
+<translation id="7005833343836210400">Urządzenie jest offline</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> zarządza tym urządzeniem i ma dostęp do wszelkiej aktywności użytkownika, w tym odwiedzanych stron internetowych, haseł i e-maili.</translation>
 <translation id="7040230719604914234">Operator</translation>
 <translation id="7041549558901442110">Urządzenie nie ma połączenia.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Stan naładowania</translation>
 <translation id="8082366717211101304">Nie udało się znaleźć DNS w aplikacjach na Androida</translation>
 <translation id="808894953321890993">Zmień hasło</translation>
+<translation id="8094062939584182041">Zezwalaj Google na wysyłanie e-maili dotyczących tego problemu</translation>
 <translation id="8104083085214006426">Używasz niezabezpieczonej sieci otwartej</translation>
 <translation id="8109786307828817014">Kontynuować mimo braku kalibracji?</translation>
 <translation id="811820734797650957">(Android) Brama reaguje na ping</translation>
diff --git a/chromeos/strings/chromeos_strings_ro.xtb b/chromeos/strings/chromeos_strings_ro.xtb
index 89dc9e7..1eda6de 100644
--- a/chromeos/strings/chromeos_strings_ro.xtb
+++ b/chromeos/strings/chromeos_strings_ro.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Tipul</translation>
 <translation id="2461822463642141190">Actual</translation>
 <translation id="2480034874476596812">Dezactivează manual</translation>
+<translation id="248546197012830854">Dispozitivul este offline. Conectează-te la rețeaua Wi-Fi pentru a vedea conținutul de ajutor.</translation>
 <translation id="2491955442992294626">Tastele nu sunt testate când folosești altă fereastră</translation>
 <translation id="2493126929778606526">Cele mai bune fotografii, selectate automat</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Ieși din repararea dispozitivului <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">Rulează</translation>
 <translation id="6620487321149975369">Sarcinile de printare vor apărea în istoric dacă nu sunt eliminate manual</translation>
+<translation id="6624819909909965616">Nu se poate încărca un fișier mai mare de 10 MB</translation>
 <translation id="6643016212128521049">Șterge</translation>
 <translation id="6644568396961840069">Fișierul nu a putut fi salvat. Conectează-te la altă stocare externă sau încearcă din nou mai târziu.</translation>
 <translation id="6647510110698214773">Algoritm de criptare</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6977381486153291903">Versiune firmware</translation>
 <translation id="6995564396478647735">Asigură-te că protecția la scriere este activată</translation>
+<translation id="7005833343836210400">Dispozitivul este offline</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> gestionează acest dispozitiv și are acces la toată activitatea utilizatorului, inclusiv la paginile web accesate, parole și e-mail.</translation>
 <translation id="7040230719604914234">Operator</translation>
 <translation id="7041549558901442110">Dispozitivul nu este conectat.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Nivel de încărcare rămas</translation>
 <translation id="8082366717211101304">Nu se poate rezolva solicitarea DNS din aplicații pentru Android</translation>
 <translation id="808894953321890993">Schimbă parola</translation>
+<translation id="8094062939584182041">Permite ca Google să-ți trimită e-mail despre această problemă</translation>
 <translation id="8104083085214006426">Folosești o rețea deschisă și nesigură</translation>
 <translation id="8109786307828817014">Continui cu calibrările nereușite?</translation>
 <translation id="811820734797650957">(Android) Gateway-ul acceptă testul de ping</translation>
diff --git a/chromeos/strings/chromeos_strings_ru.xtb b/chromeos/strings/chromeos_strings_ru.xtb
index 0b687af..f4ad7a4 100644
--- a/chromeos/strings/chromeos_strings_ru.xtb
+++ b/chromeos/strings/chromeos_strings_ru.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Тип</translation>
 <translation id="2461822463642141190">Расход энергии</translation>
 <translation id="2480034874476596812">Отключить вручную</translation>
+<translation id="248546197012830854">Устройство не подключено к интернету. Подключитесь к сети Wi-Fi, чтобы посмотреть справочный контент.</translation>
 <translation id="2491955442992294626">Пока активно другое окно, проверка клавиатуры не выполняется</translation>
 <translation id="2493126929778606526">Ваши лучшие фото, отобранные автоматически</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Отменить ремонт устройства <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">Выполняется</translation>
 <translation id="6620487321149975369">Задания печати показываются в истории до тех пор, пока вы их не удалите</translation>
+<translation id="6624819909909965616">Невозможно загрузить файл размером больше 10 МБ.</translation>
 <translation id="6643016212128521049">Удалить</translation>
 <translation id="6644568396961840069">Не удалось сохранить файл. Подключите другой внешний накопитель или повторите попытку позже.</translation>
 <translation id="6647510110698214773">Алгоритм шифрования</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">ОК</translation>
 <translation id="6977381486153291903">Версия встроенного ПО</translation>
 <translation id="6995564396478647735">Убедитесь, что защита от записи включена</translation>
+<translation id="7005833343836210400">Устройство не подключено к интернету</translation>
 <translation id="7028979494427204405">Этим устройством управляет <ph name="MANAGER" />. Администратору доступна информация обо всех действиях пользователя, в том числе о посещенных веб-страницах, а также адрес электронной почты и пароли.</translation>
 <translation id="7040230719604914234">Оператор</translation>
 <translation id="7041549558901442110">Устройство не подключено.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Уровень заряда</translation>
 <translation id="8082366717211101304">Не удается выполнить DNS-преобразование в приложениях для Android.</translation>
 <translation id="808894953321890993">Сменить пароль</translation>
+<translation id="8094062939584182041">Разрешить Google отправлять вам сообщения об этой проблеме по электронной почте</translation>
 <translation id="8104083085214006426">Вы используете открытую небезопасную сеть.</translation>
 <translation id="8109786307828817014">Некоторые компоненты не откалиброваны. Продолжить?</translation>
 <translation id="811820734797650957">Запрос ping к шлюзу (Android)</translation>
diff --git a/chromeos/strings/chromeos_strings_si.xtb b/chromeos/strings/chromeos_strings_si.xtb
index 4bf819e..a20067e 100644
--- a/chromeos/strings/chromeos_strings_si.xtb
+++ b/chromeos/strings/chromeos_strings_si.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">වර්ගය</translation>
 <translation id="2461822463642141190">වත්මන්</translation>
 <translation id="2480034874476596812">හස්තීයව ක්‍රියාවිරහිත කරන්න</translation>
+<translation id="248546197012830854">උපාංගය නොබැඳි වේ. උදවු අන්තර්ගතය බැලීමට Wi-Fi ජාලයට සම්බන්ධ වන්න.</translation>
 <translation id="2491955442992294626">ඔබ වෙනත් කවුළුවක් භාවිත කරන විට යතුරු පරීක්ෂා නොකෙරේ</translation>
 <translation id="2493126929778606526">ස්වයංක්‍රියව තෝරන ලද, ඔබගේ හොඳම ඡායාරූප</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149"><ph name="DEVICE_TYPE" /> අලුත්වැඩියාවෙන් ඉවත් වන්න</translation>
 <translation id="6618744767048954150">ධාවන වේ</translation>
 <translation id="6620487321149975369">මුද්‍රණ කාර්ය අතින් ඉවත් නොකළහොත් ඉතිහාසයේ දිස්වනු ඇත</translation>
+<translation id="6624819909909965616">10 MBට වඩා විශාල ගොනු උඩුගත කළ නොහැක</translation>
 <translation id="6643016212128521049">මකන්න</translation>
 <translation id="6644568396961840069">ගොනුව සුරැකිය නොහැකි විය. වෙනත් බාහිර ආචයනයක් පේනුගත කිරීමට උත්සාහ කරන්න, නැතහොත් පසුව නැවත උත්සාහ කරන්න.</translation>
 <translation id="6647510110698214773">සංකේතන ඇල්ගොරිතමය</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">හරි</translation>
 <translation id="6977381486153291903">නිත්‍ය මෘදුකාංග සංශෝධනය</translation>
 <translation id="6995564396478647735">ලිවීම් ආරක්ෂාව ක්‍රියාත්මක බව සහතික කර ගන්න</translation>
+<translation id="7005833343836210400">උපාංගය නොබැඳි වේ</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> මෙම උපාංගය කළමනාකරණය කරන අතර, එයට පිවිසි වෙබ් පිටු, මුරපද සහ ඉ-තැපෑල ඇතුළුව සියලු පරිශීලක ක්‍රියාකාරකම් වෙත ප්‍රවේශය තිබේ.</translation>
 <translation id="7040230719604914234">මෙහෙයවනය</translation>
 <translation id="7041549558901442110">උපාංගය සම්බන්ධ කර නැත.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">ඉතිරි ආරෝපණය</translation>
 <translation id="8082366717211101304">Android යෙදුම් වෙතින් DNS විසඳිය නොහැකිය</translation>
 <translation id="808894953321890993">මුරපදය වෙනස් කරන්න</translation>
+<translation id="8094062939584182041">මෙම ගැටලුව පිළිබඳව ඔබට ඉ-තැපැල් කිරීමට Google හට ඉඩ දෙන්න</translation>
 <translation id="8104083085214006426">ඔබ විවෘත සහ අනාරක්ෂිත ජාලයක් භාවිත කරමින් සිටියි</translation>
 <translation id="8109786307828817014">අසාර්ථක ක්‍රමාංකන සමඟ ඉදිරියට යන්නද?</translation>
 <translation id="811820734797650957">(Android) වාහල පින් කළ හැකිය</translation>
diff --git a/chromeos/strings/chromeos_strings_sq.xtb b/chromeos/strings/chromeos_strings_sq.xtb
index c0331dad..287b866 100644
--- a/chromeos/strings/chromeos_strings_sq.xtb
+++ b/chromeos/strings/chromeos_strings_sq.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Shkruaj</translation>
 <translation id="2461822463642141190">Rryma</translation>
 <translation id="2480034874476596812">Çaktivizo manualisht</translation>
+<translation id="248546197012830854">Pajisja është jashtë linje. Lidhu me rrjetin Wi-Fi për të parë përmbajtjen ndihmëse.</translation>
 <translation id="2491955442992294626">Çelësat nuk testohen kur ti je duke përdorur një dritare tjetër</translation>
 <translation id="2493126929778606526">Fotografitë e tua më të mira, të zgjedhura automatikisht</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -660,6 +661,7 @@
 <translation id="6611280807952151149">Dil nga riparimi i pajisjes <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">Në ekzekutim</translation>
 <translation id="6620487321149975369">Printimet do të shfaqen te historiku, përveçse kur hiqen manualisht</translation>
+<translation id="6624819909909965616">Nuk mund të ngarkohen skedarë më të mëdhenj se 10 MB</translation>
 <translation id="6643016212128521049">Pastro</translation>
 <translation id="6644568396961840069">Skedari nuk mund të ruhej. Provo të lidhësh një tjetër hapësirë ruajtëse të jashtme ose provo përsëri më vonë.</translation>
 <translation id="6647510110698214773">Algoritmi i enkriptimit</translation>
@@ -695,6 +697,7 @@
 <translation id="6965382102122355670">Në rregull</translation>
 <translation id="6977381486153291903">Rishikimi i firmuerit</translation>
 <translation id="6995564396478647735">Sigurohu që "Mbrojtja nga shkrimi" është aktive</translation>
+<translation id="7005833343836210400">Pajisja është jashtë linje</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> menaxhon këtë pajisje dhe ka qasje te i gjithë aktiviteti i përdoruesit, duke përfshirë faqet e uebit të vizituara, fjalëkalimet dhe email-i.</translation>
 <translation id="7040230719604914234">Operatori</translation>
 <translation id="7041549558901442110">Pajisja nuk është lidhur.</translation>
@@ -808,6 +811,7 @@
 <translation id="8075838845814659848">Karikimi i mbetur</translation>
 <translation id="8082366717211101304">DNS-ja nuk mund të zgjidhet nga aplikacionet për Android</translation>
 <translation id="808894953321890993">Ndrysho fjalëkalimin</translation>
+<translation id="8094062939584182041">Lejo që Google të të dërgojë email-e për këtë problem</translation>
 <translation id="8104083085214006426">Po përdor një rrjet të hapur dhe të pasigurt</translation>
 <translation id="8109786307828817014">Të vazhdohet me kalibrimet e dështuara?</translation>
 <translation id="811820734797650957">(Android) Portëkalimi mund të marrë ping</translation>
diff --git a/chromeos/strings/chromeos_strings_sv.xtb b/chromeos/strings/chromeos_strings_sv.xtb
index fb128606b..5b72a49 100644
--- a/chromeos/strings/chromeos_strings_sv.xtb
+++ b/chromeos/strings/chromeos_strings_sv.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Typ</translation>
 <translation id="2461822463642141190">Nuvarande</translation>
 <translation id="2480034874476596812">Stäng av manuellt</translation>
+<translation id="248546197012830854">Enheten är offline. Anslut till ett wifi-nätverk för att se hjälpinnehåll.</translation>
 <translation id="2491955442992294626">Inga tangenter testas när du använder ett annat fönster</translation>
 <translation id="2493126929778606526">Dina bästa bilder, utvalda automatiskt</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">Avsluta reparationen av <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">Körs</translation>
 <translation id="6620487321149975369">Utskriftsjobb visas i historiken såvida de inte tas bort manuellt</translation>
+<translation id="6624819909909965616">Det går inte att ladda upp en fil som är större än 10 MB</translation>
 <translation id="6643016212128521049">Rensa</translation>
 <translation id="6644568396961840069">Det gick inte att spara filen. Testa att ansluta ett annat externt lagringsutrymme eller försök igen senare.</translation>
 <translation id="6647510110698214773">Krypteringsalgoritm</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6977381486153291903">Revision av firmware</translation>
 <translation id="6995564396478647735">Kontrollera att skrivskyddet är aktiverat</translation>
+<translation id="7005833343836210400">Enheten är offline</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> hanterar den här enheten och har tillgång till all användaraktivitet, inklusive besökta webbsidor, lösenord och e-post.</translation>
 <translation id="7040230719604914234">Operatör</translation>
 <translation id="7041549558901442110">Enheten är inte ansluten.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Batteritid som återstår</translation>
 <translation id="8082366717211101304">Det gick inte att matcha DNS från Android-appar</translation>
 <translation id="808894953321890993">Ändra lösenord</translation>
+<translation id="8094062939584182041">Tillåt att Google skickar e-post till dig om det här problemet</translation>
 <translation id="8104083085214006426">Du använder ett öppet och osäkert nätverk</translation>
 <translation id="8109786307828817014">Vill du fortsätta med misslyckade kalibreringar?</translation>
 <translation id="811820734797650957">(Android) Gateway går att pinga</translation>
diff --git a/chromeos/strings/chromeos_strings_sw.xtb b/chromeos/strings/chromeos_strings_sw.xtb
index dee7d296..04871bd 100644
--- a/chromeos/strings/chromeos_strings_sw.xtb
+++ b/chromeos/strings/chromeos_strings_sw.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Aina</translation>
 <translation id="2461822463642141190">Ya sasa</translation>
 <translation id="2480034874476596812">Zima wewe mwenyewe</translation>
+<translation id="248546197012830854">Kifaa hakipo mtandaoni. Unganisha kwenye mtandao wa Wi-Fi ili uone maudhui ya usaidizi.</translation>
 <translation id="2491955442992294626">Funguo hazijaribiwi unapotumia dirisha lingine</translation>
 <translation id="2493126929778606526">Picha zako bora zaidi, zilizochaguliwa kiotomatiki</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -660,6 +661,7 @@
 <translation id="6611280807952151149">Funga marekebisho ya <ph name="DEVICE_TYPE" /></translation>
 <translation id="6618744767048954150">Inakagua</translation>
 <translation id="6620487321149975369">Kazi za kuchapisha zitaonekana katika historia usipoziondoa mwenyewe</translation>
+<translation id="6624819909909965616">Haiwezi kupakia faili lenye ukubwa unaozidi MB 10</translation>
 <translation id="6643016212128521049">Futa</translation>
 <translation id="6644568396961840069">Faili imeshindwa kuhifadhiwa. Jaribu kuunganisha hifadhi nyingine ya nje au jaribu tena baadaye.</translation>
 <translation id="6647510110698214773">Algoriti ya usimbaji fiche</translation>
@@ -695,6 +697,7 @@
 <translation id="6965382102122355670">Sawa</translation>
 <translation id="6977381486153291903">Sahihisho la programu dhibiti</translation>
 <translation id="6995564396478647735">Hakikisha kipengele cha Write Protect kimewashwa</translation>
+<translation id="7005833343836210400">Kifaa hakipo mtandaoni</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> hudhibiti kifaa hiki na ina idhini ya kufikia shughuli zote za mtumiaji, zikiwemo kurasa za wavuti alizotembelea, manenosiri na anwani za barua pepe.</translation>
 <translation id="7040230719604914234">Mtoa huduma</translation>
 <translation id="7041549558901442110">Kifaa hakijaunganishwa.</translation>
@@ -808,6 +811,7 @@
 <translation id="8075838845814659848">Chaji iliyosalia</translation>
 <translation id="8082366717211101304">Imeshindwa kusuluhisha DNS kutoka kwenye programu za Android</translation>
 <translation id="808894953321890993">Badilisha nenosiri</translation>
+<translation id="8094062939584182041">Ruhusu Google ikutumie barua pepe kuhusu hitilafu hii</translation>
 <translation id="8104083085214006426">Unatumia mtandao usio salama unaoweza kutumiwa na mtu yeyote</translation>
 <translation id="8109786307828817014">Ungependa kuendelea bila marekebisho ya vipengele?</translation>
 <translation id="811820734797650957">Lango linaweza Kuitwa (Android)</translation>
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb
index 6fba70c..7705aada7 100644
--- a/chromeos/strings/chromeos_strings_tr.xtb
+++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">Tür</translation>
 <translation id="2461822463642141190">Mevcut güç tüketimi</translation>
 <translation id="2480034874476596812">Manuel olarak devre dışı bırakın</translation>
+<translation id="248546197012830854">Cihaz internete bağlı değil. Yardım içeriğini görmek için kablosuz ağa bağlanın.</translation>
 <translation id="2491955442992294626">Başka bir pencere kullanılırken tuşlar test edilmez</translation>
 <translation id="2493126929778606526">Otomatik olarak seçilen en iyi fotoğraflarınız</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" />, <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149"><ph name="DEVICE_TYPE" /> onarımından çık</translation>
 <translation id="6618744767048954150">Çalışıyor</translation>
 <translation id="6620487321149975369">Yazdırma işleri, manuel olarak kaldırılmadığı sürece geçmişte görünür</translation>
+<translation id="6624819909909965616">10 MB'tan büyük dosyalar yüklenemez</translation>
 <translation id="6643016212128521049">Temizle</translation>
 <translation id="6644568396961840069">Dosya kaydedilemedi. Farklı bir harici depolama cihazı takmayı deneyin veya daha sonra tekrar deneyin.</translation>
 <translation id="6647510110698214773">Şifreleme algoritması</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">Tamam</translation>
 <translation id="6977381486153291903">Donanım yazılımı düzeltmesi</translation>
 <translation id="6995564396478647735">Yazma korumasının etkin olduğundan emin olun</translation>
+<translation id="7005833343836210400">Cihaz çevrimdışı</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> bu cihazı yönetir ve ziyaret edilen web sayfaları, şifreler ve e-posta dahil tüm kullanıcı etkinliğine erişebilir.</translation>
 <translation id="7040230719604914234">Operatör</translation>
 <translation id="7041549558901442110">Cihaz bağlı değil.</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">Kalan şarj seviyesi</translation>
 <translation id="8082366717211101304">Android uygulamalarından DNS çözümlenemiyor</translation>
 <translation id="808894953321890993">Şifreyi değiştir</translation>
+<translation id="8094062939584182041">Google'ın bu sorunla ilgili olarak size e-posta göndermesine izin verin</translation>
 <translation id="8104083085214006426">Açık ve güvenli olmayan bir ağ kullanıyorsunuz</translation>
 <translation id="8109786307828817014">Başarısız kalibrasyonlarla devam edilsin mi?</translation>
 <translation id="811820734797650957">(Android) Ağ geçidi pinglenebilir</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-CN.xtb b/chromeos/strings/chromeos_strings_zh-CN.xtb
index 55197cc..f8937cf 100644
--- a/chromeos/strings/chromeos_strings_zh-CN.xtb
+++ b/chromeos/strings/chromeos_strings_zh-CN.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">类型</translation>
 <translation id="2461822463642141190">电流</translation>
 <translation id="2480034874476596812">手动关闭</translation>
+<translation id="248546197012830854">设备处于离线状态。您需要连接到 Wi-Fi 网络才能查看相关的帮助内容。</translation>
 <translation id="2491955442992294626">不再测试按键,因为您正在使用另一个窗口</translation>
 <translation id="2493126929778606526">您的最佳照片,由系统自动挑选</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">退出 <ph name="DEVICE_TYPE" /> 修复流程</translation>
 <translation id="6618744767048954150">正在运行</translation>
 <translation id="6620487321149975369">打印任务如未被手动移除,将会显示在历史记录中,</translation>
+<translation id="6624819909909965616">无法上传大于 10 MB 的文件</translation>
 <translation id="6643016212128521049">清除</translation>
 <translation id="6644568396961840069">无法保存文件。请尝试插接一部不同的外部存储设备,或稍后重试。</translation>
 <translation id="6647510110698214773">加密算法</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">确定</translation>
 <translation id="6977381486153291903">固件版本</translation>
 <translation id="6995564396478647735">请确保已开启写保护</translation>
+<translation id="7005833343836210400">设备处于离线状态</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> 负责管理此设备,而且有权查看所有用户活动(包括访问过的网页、密码和电子邮件)。</translation>
 <translation id="7040230719604914234">运营商</translation>
 <translation id="7041549558901442110">设备未连接。</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">剩余电量</translation>
 <translation id="8082366717211101304">无法从 Android 应用解析 DNS</translation>
 <translation id="808894953321890993">更改密码</translation>
+<translation id="8094062939584182041">允许 Google 就此问题向您发送电子邮件</translation>
 <translation id="8104083085214006426">您正在使用不安全的开放网络</translation>
 <translation id="8109786307828817014">继续处理未能成功校准的组件?</translation>
 <translation id="811820734797650957">(Android) 可对网关执行 ping 操作</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-HK.xtb b/chromeos/strings/chromeos_strings_zh-HK.xtb
index 77dae813..b0bd4850 100644
--- a/chromeos/strings/chromeos_strings_zh-HK.xtb
+++ b/chromeos/strings/chromeos_strings_zh-HK.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">類型</translation>
 <translation id="2461822463642141190">電流</translation>
 <translation id="2480034874476596812">手動關閉</translation>
+<translation id="248546197012830854">裝置處於離線狀態。連線至 Wi-Fi 網路即可查看說明內容。</translation>
 <translation id="2491955442992294626">使用其他視窗時,系統不會測試按鍵</translation>
 <translation id="2493126929778606526">自動選取的最佳相片</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">結束 <ph name="DEVICE_TYPE" /> 維修程序</translation>
 <translation id="6618744767048954150">正在執行</translation>
 <translation id="6620487321149975369">除非您手動移除列印工作,否則列印工作會顯示在記錄中</translation>
+<translation id="6624819909909965616">無法上傳超過 10 MB 的檔案</translation>
 <translation id="6643016212128521049">清除</translation>
 <translation id="6644568396961840069">無法儲存檔案。請插入其他外部儲存空間,或稍後再試。</translation>
 <translation id="6647510110698214773">加密演算法</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">確定</translation>
 <translation id="6977381486153291903">韌體版本</translation>
 <translation id="6995564396478647735">確認已開啟「寫入保護」功能</translation>
+<translation id="7005833343836210400">裝置處於離線狀態</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> 會管理此裝置並可存取所有使用者活動,包括網頁瀏覽記錄、密碼和電郵。</translation>
 <translation id="7040230719604914234">流動網絡供應商</translation>
 <translation id="7041549558901442110">未連接裝置。</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">剩餘電量</translation>
 <translation id="8082366717211101304">無法從 Android 應用程式解析 DNS</translation>
 <translation id="808894953321890993">變更密碼</translation>
+<translation id="8094062939584182041">允許 Google 透過電子郵件通知你這個問題的相關資訊</translation>
 <translation id="8104083085214006426">您正在使用開放且不安全的網絡</translation>
 <translation id="8109786307828817014">要使用無法校正的組件繼續操作嗎?</translation>
 <translation id="811820734797650957">(Android) 可連線偵測到閘道</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-TW.xtb b/chromeos/strings/chromeos_strings_zh-TW.xtb
index 14f1a5e4..076fbe3 100644
--- a/chromeos/strings/chromeos_strings_zh-TW.xtb
+++ b/chromeos/strings/chromeos_strings_zh-TW.xtb
@@ -197,6 +197,7 @@
 <translation id="2448312741937722512">類型</translation>
 <translation id="2461822463642141190">電流</translation>
 <translation id="2480034874476596812">手動關閉</translation>
+<translation id="248546197012830854">裝置處於離線狀態。連線至 Wi-Fi 網路即可查看說明內容。</translation>
 <translation id="2491955442992294626">使用其他視窗時,系統不會測試按鍵</translation>
 <translation id="2493126929778606526">自動精選最佳相片</translation>
 <translation id="249323605434939166"><ph name="QUERY_TEXT" /> · <ph name="SOURCE_LANGUAGE_NAME" /></translation>
@@ -661,6 +662,7 @@
 <translation id="6611280807952151149">結束 <ph name="DEVICE_TYPE" /> 維修程序</translation>
 <translation id="6618744767048954150">檢查中</translation>
 <translation id="6620487321149975369">除非手動移除列印工作,否則這項資料會顯示在歷史記錄中</translation>
+<translation id="6624819909909965616">無法上傳超過 10 MB 的檔案</translation>
 <translation id="6643016212128521049">清除</translation>
 <translation id="6644568396961840069">無法儲存檔案,請接上其他外部儲存裝置,或稍後再試。</translation>
 <translation id="6647510110698214773">加密演算法</translation>
@@ -696,6 +698,7 @@
 <translation id="6965382102122355670">確定</translation>
 <translation id="6977381486153291903">韌體版本</translation>
 <translation id="6995564396478647735">確認已開啟寫入保護功能</translation>
+<translation id="7005833343836210400">裝置處於離線狀態</translation>
 <translation id="7028979494427204405"><ph name="MANAGER" /> 管理這個裝置,且可存取所有使用者活動,包括網頁造訪記錄、密碼和電子郵件。</translation>
 <translation id="7040230719604914234">電信業者</translation>
 <translation id="7041549558901442110">未連接裝置。</translation>
@@ -809,6 +812,7 @@
 <translation id="8075838845814659848">剩餘電量</translation>
 <translation id="8082366717211101304">無法從 Android 應用程式解析 DNS</translation>
 <translation id="808894953321890993">變更密碼</translation>
+<translation id="8094062939584182041">允許 Google 透過電子郵件通知你這個問題的相關資訊</translation>
 <translation id="8104083085214006426">你目前使用的是未受保護的開放式網路</translation>
 <translation id="8109786307828817014">要繼續使用無法校正的元件執行作業嗎?</translation>
 <translation id="811820734797650957">(Android) 可連線偵測到閘道</translation>
diff --git a/components/autofill/core/browser/BUILD.gn b/components/autofill/core/browser/BUILD.gn
index 81ddc12..75b89917 100644
--- a/components/autofill/core/browser/BUILD.gn
+++ b/components/autofill/core/browser/BUILD.gn
@@ -255,6 +255,8 @@
     "metrics/form_events/form_events.h",
     "metrics/form_interactions_counter.cc",
     "metrics/form_interactions_counter.h",
+    "metrics/payments/local_card_migration_metrics.cc",
+    "metrics/payments/local_card_migration_metrics.h",
     "metrics/payments/manage_cards_prompt_metrics.cc",
     "metrics/payments/manage_cards_prompt_metrics.h",
     "metrics/payments/offers_metrics.cc",
diff --git a/components/autofill/core/browser/metrics/autofill_metrics.cc b/components/autofill/core/browser/metrics/autofill_metrics.cc
index 4b84f1f..3ff9abc7 100644
--- a/components/autofill/core/browser/metrics/autofill_metrics.cc
+++ b/components/autofill/core/browser/metrics/autofill_metrics.cc
@@ -834,14 +834,6 @@
 }
 
 // static
-void AutofillMetrics::LogLocalCardMigrationNotOfferedDueToMaxStrikesMetric(
-    SaveTypeMetric metric) {
-  UMA_HISTOGRAM_ENUMERATION(
-      "Autofill.StrikeDatabase.LocalCardMigrationNotOfferedDueToMaxStrikes",
-      metric);
-}
-
-// static
 void AutofillMetrics::LogUploadOfferedCardOriginMetric(
     UploadOfferedCardOriginMetric metric) {
   DCHECK_LT(metric, NUM_UPLOAD_OFFERED_CARD_ORIGIN_METRICS);
@@ -1094,108 +1086,6 @@
 }
 
 // static
-void AutofillMetrics::LogLocalCardMigrationDecisionMetric(
-    LocalCardMigrationDecisionMetric metric) {
-  UMA_HISTOGRAM_ENUMERATION("Autofill.LocalCardMigrationDecision", metric);
-}
-
-// static
-void AutofillMetrics::LogLocalCardMigrationBubbleOfferMetric(
-    LocalCardMigrationBubbleOfferMetric metric,
-    bool is_reshow) {
-  DCHECK_LT(metric, NUM_LOCAL_CARD_MIGRATION_BUBBLE_OFFER_METRICS);
-  std::string histogram_name = "Autofill.LocalCardMigrationBubbleOffer.";
-  histogram_name += is_reshow ? "Reshows" : "FirstShow";
-  base::UmaHistogramEnumeration(histogram_name, metric,
-                                NUM_LOCAL_CARD_MIGRATION_BUBBLE_OFFER_METRICS);
-}
-
-// static
-void AutofillMetrics::LogLocalCardMigrationBubbleResultMetric(
-    LocalCardMigrationBubbleResultMetric metric,
-    bool is_reshow) {
-  DCHECK_LT(metric, NUM_LOCAL_CARD_MIGRATION_BUBBLE_RESULT_METRICS);
-  std::string suffix = is_reshow ? ".Reshows" : ".FirstShow";
-  base::UmaHistogramEnumeration(
-      "Autofill.LocalCardMigrationBubbleResult" + suffix, metric,
-      NUM_LOCAL_CARD_MIGRATION_BUBBLE_RESULT_METRICS);
-}
-
-// static
-void AutofillMetrics::LogLocalCardMigrationDialogOfferMetric(
-    LocalCardMigrationDialogOfferMetric metric) {
-  DCHECK_LT(metric, NUM_LOCAL_CARD_MIGRATION_DIALOG_OFFER_METRICS);
-  std::string histogram_name = "Autofill.LocalCardMigrationDialogOffer";
-  base::UmaHistogramEnumeration(histogram_name, metric,
-                                NUM_LOCAL_CARD_MIGRATION_DIALOG_OFFER_METRICS);
-}
-
-// static
-void AutofillMetrics::LogLocalCardMigrationDialogUserInteractionMetric(
-    const base::TimeDelta& duration,
-    LocalCardMigrationDialogUserInteractionMetric metric) {
-  DCHECK_LT(metric, NUM_LOCAL_CARD_MIGRATION_DIALOG_USER_INTERACTION_METRICS);
-  base::UmaHistogramEnumeration(
-      "Autofill.LocalCardMigrationDialogUserInteraction", metric,
-      NUM_LOCAL_CARD_MIGRATION_DIALOG_USER_INTERACTION_METRICS);
-
-  // Do not log duration metrics for
-  // LOCAL_CARD_MIGRATION_DIALOG_DELETE_CARD_ICON_CLICKED, as it can happen
-  // multiple times in one dialog.
-  std::string suffix;
-  switch (metric) {
-    case LOCAL_CARD_MIGRATION_DIALOG_CLOSED_SAVE_BUTTON_CLICKED:
-      suffix = "Accepted";
-      break;
-    case LOCAL_CARD_MIGRATION_DIALOG_CLOSED_CANCEL_BUTTON_CLICKED:
-      suffix = "Denied";
-      break;
-    case LOCAL_CARD_MIGRATION_DIALOG_CLOSED_VIEW_CARDS_BUTTON_CLICKED:
-    case LOCAL_CARD_MIGRATION_DIALOG_CLOSED_DONE_BUTTON_CLICKED:
-      suffix = "Closed";
-      break;
-    default:
-      return;
-  }
-
-  base::UmaHistogramLongTimes(
-      "Autofill.LocalCardMigrationDialogActiveDuration." + suffix, duration);
-}
-
-// static
-void AutofillMetrics::LogLocalCardMigrationDialogUserSelectionPercentageMetric(
-    int selected,
-    int total) {
-  UMA_HISTOGRAM_PERCENTAGE(
-      "Autofill.LocalCardMigrationDialogUserSelectionPercentage",
-      100 * selected / total);
-}
-
-// static
-void AutofillMetrics::LogLocalCardMigrationPromptMetric(
-    LocalCardMigrationOrigin local_card_migration_origin,
-    LocalCardMigrationPromptMetric metric) {
-  DCHECK_LT(metric, NUM_LOCAL_CARD_MIGRATION_PROMPT_METRICS);
-  std::string histogram_name = "Autofill.LocalCardMigrationOrigin.";
-  // Switch to different sub-histogram depending on local card migration origin.
-  switch (local_card_migration_origin) {
-    case LocalCardMigrationOrigin::UseOfLocalCard:
-      histogram_name += "UseOfLocalCard";
-      break;
-    case LocalCardMigrationOrigin::UseOfServerCard:
-      histogram_name += "UseOfServerCard";
-      break;
-    case LocalCardMigrationOrigin::SettingsPage:
-      histogram_name += "SettingsPage";
-      break;
-    default:
-      NOTREACHED();
-      return;
-  }
-  base::UmaHistogramEnumeration(histogram_name, metric,
-                                NUM_LOCAL_CARD_MIGRATION_PROMPT_METRICS);
-}
-
 void AutofillMetrics::LogProgressDialogResultMetric(
     bool is_canceled_by_user,
     AutofillProgressDialogType autofill_progress_dialog_type) {
diff --git a/components/autofill/core/browser/metrics/autofill_metrics.h b/components/autofill/core/browser/metrics/autofill_metrics.h
index c059cc8..891ea1e 100644
--- a/components/autofill/core/browser/metrics/autofill_metrics.h
+++ b/components/autofill/core/browser/metrics/autofill_metrics.h
@@ -515,116 +515,6 @@
     NUM_SCAN_CREDIT_CARD_PROMPT_METRICS,
   };
 
-  // Metrics to record the decision on whether to offer local card migration.
-  enum class LocalCardMigrationDecisionMetric {
-    // All the required conditions are satisfied and main prompt is shown.
-    OFFERED = 0,
-    // Migration not offered because user uses new card.
-    NOT_OFFERED_USE_NEW_CARD = 1,
-    // Migration not offered because failed migration prerequisites.
-    NOT_OFFERED_FAILED_PREREQUISITES = 2,
-    // The Autofill StrikeDatabase decided not to allow offering migration
-    // because max strike count was reached.
-    NOT_OFFERED_REACHED_MAX_STRIKE_COUNT = 3,
-    // Migration not offered because no migratable cards.
-    NOT_OFFERED_NO_MIGRATABLE_CARDS = 4,
-    // Met the migration requirements but the request to Payments for upload
-    // details failed.
-    NOT_OFFERED_GET_UPLOAD_DETAILS_FAILED = 5,
-    // Abandoned the migration because no supported local cards were left after
-    // filtering out unsupported cards.
-    NOT_OFFERED_NO_SUPPORTED_CARDS = 6,
-    // User used a local card and they only have a single migratable local card
-    // on file, we will offer Upstream instead.
-    NOT_OFFERED_SINGLE_LOCAL_CARD = 7,
-    // User used an unsupported local card, we will abort the migration.
-    NOT_OFFERED_USE_UNSUPPORTED_LOCAL_CARD = 8,
-    // Legal message was invalid, we will abort the migration.
-    NOT_OFFERED_INVALID_LEGAL_MESSAGE = 9,
-    kMaxValue = NOT_OFFERED_INVALID_LEGAL_MESSAGE,
-  };
-
-  // Metrics to track events when local credit card migration is offered.
-  enum LocalCardMigrationBubbleOfferMetric {
-    // The bubble is requested due to a credit card being used or
-    // local card migration icon in the omnibox being clicked.
-    LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED = 0,
-    // The bubble is actually shown to the user.
-    LOCAL_CARD_MIGRATION_BUBBLE_SHOWN = 1,
-    NUM_LOCAL_CARD_MIGRATION_BUBBLE_OFFER_METRICS,
-  };
-
-  // Metrics to track user action result of the bubble when the bubble is
-  // closed.
-  enum LocalCardMigrationBubbleResultMetric {
-    // The user explicitly accepted the offer.
-    LOCAL_CARD_MIGRATION_BUBBLE_ACCEPTED = 0,
-    // The user explicitly closed the bubble with the close button or ESC.
-    LOCAL_CARD_MIGRATION_BUBBLE_CLOSED = 1,
-    // The user did not interact with the bubble.
-    LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED = 2,
-    // The bubble lost its focus and was deactivated.
-    LOCAL_CARD_MIGRATION_BUBBLE_LOST_FOCUS = 3,
-    // The reason why the prompt is closed is not clear. Possible reason is the
-    // logging function is invoked before the closed reason is correctly set.
-    LOCAL_CARD_MIGRATION_BUBBLE_RESULT_UNKNOWN = 4,
-    NUM_LOCAL_CARD_MIGRATION_BUBBLE_RESULT_METRICS,
-  };
-
-  // Metrics to track events when local card migration dialog is offered.
-  enum LocalCardMigrationDialogOfferMetric {
-    // The dialog is shown to the user.
-    LOCAL_CARD_MIGRATION_DIALOG_SHOWN = 0,
-    // The dialog is not shown due to legal message being invalid.
-    LOCAL_CARD_MIGRATION_DIALOG_NOT_SHOWN_INVALID_LEGAL_MESSAGE = 1,
-    // The dialog is shown when migration feedback is available.
-    LOCAL_CARD_MIGRATION_DIALOG_FEEDBACK_SHOWN = 2,
-    // The dialog is shown when migration fails due to server error.
-    LOCAL_CARD_MIGRATION_DIALOG_FEEDBACK_SERVER_ERROR_SHOWN = 3,
-    NUM_LOCAL_CARD_MIGRATION_DIALOG_OFFER_METRICS,
-  };
-
-  // Metrics to track user interactions with the dialog.
-  enum LocalCardMigrationDialogUserInteractionMetric {
-    // The user explicitly accepts the offer by clicking the save button.
-    LOCAL_CARD_MIGRATION_DIALOG_CLOSED_SAVE_BUTTON_CLICKED = 0,
-    // The user explicitly denies the offer by clicking the cancel button.
-    LOCAL_CARD_MIGRATION_DIALOG_CLOSED_CANCEL_BUTTON_CLICKED = 1,
-    // The user clicks the legal message.
-    LOCAL_CARD_MIGRATION_DIALOG_LEGAL_MESSAGE_CLICKED = 2,
-    // The user clicks the view card button after successfully migrated cards.
-    LOCAL_CARD_MIGRATION_DIALOG_CLOSED_VIEW_CARDS_BUTTON_CLICKED = 3,
-    // The user clicks the done button to close dialog after migration.
-    LOCAL_CARD_MIGRATION_DIALOG_CLOSED_DONE_BUTTON_CLICKED = 4,
-    // The user clicks the trash icon to delete invalid card.
-    LOCAL_CARD_MIGRATION_DIALOG_DELETE_CARD_ICON_CLICKED = 5,
-    NUM_LOCAL_CARD_MIGRATION_DIALOG_USER_INTERACTION_METRICS,
-  };
-
-  // These metrics are logged for each local card migration origin. These are
-  // used to derive the conversion rate for each triggering source.
-  enum LocalCardMigrationPromptMetric {
-    // The intermediate bubble is shown to the user.
-    INTERMEDIATE_BUBBLE_SHOWN = 0,
-    // The intermediate bubble is accepted by the user.
-    INTERMEDIATE_BUBBLE_ACCEPTED = 1,
-    // The main dialog is shown to the user.
-    MAIN_DIALOG_SHOWN = 2,
-    // The main dialog is accepted by the user.
-    MAIN_DIALOG_ACCEPTED = 3,
-    NUM_LOCAL_CARD_MIGRATION_PROMPT_METRICS,
-  };
-
-  // Local card migration origin denotes from where the migration is triggered.
-  enum LocalCardMigrationOrigin {
-    // Trigger when user submitted a form using local card.
-    UseOfLocalCard,
-    // Trigger when user submitted a form using server card.
-    UseOfServerCard,
-    // Trigger from settings page.
-    SettingsPage,
-  };
-
   // Each of these metrics is logged only for potentially autofillable forms,
   // i.e. forms with at least three fields, etc.
   // These are used to derive certain "user happiness" metrics.  For example, we
@@ -1349,11 +1239,6 @@
   static void LogCreditCardSaveNotOfferedDueToMaxStrikesMetric(
       SaveTypeMetric metric);
 
-  // When local card migration is not offered due to max strike limit reached,
-  // logs the occurrence.
-  static void LogLocalCardMigrationNotOfferedDueToMaxStrikesMetric(
-      SaveTypeMetric metric);
-
   // When credit card upload is offered, logs whether the card being offered is
   // already a local card on the device or not.
   static void LogUploadOfferedCardOriginMetric(
@@ -1409,25 +1294,6 @@
   static void LogCreditCardUploadFeedbackMetric(
       CreditCardUploadFeedbackMetric metric);
   static void LogScanCreditCardPromptMetric(ScanCreditCardPromptMetric metric);
-  static void LogLocalCardMigrationDecisionMetric(
-      LocalCardMigrationDecisionMetric metric);
-  static void LogLocalCardMigrationBubbleOfferMetric(
-      LocalCardMigrationBubbleOfferMetric metric,
-      bool is_reshow);
-  static void LogLocalCardMigrationBubbleResultMetric(
-      LocalCardMigrationBubbleResultMetric metric,
-      bool is_reshow);
-  static void LogLocalCardMigrationDialogOfferMetric(
-      LocalCardMigrationDialogOfferMetric metric);
-  static void LogLocalCardMigrationDialogUserInteractionMetric(
-      const base::TimeDelta& duration,
-      LocalCardMigrationDialogUserInteractionMetric metric);
-  static void LogLocalCardMigrationDialogUserSelectionPercentageMetric(
-      int selected,
-      int total);
-  static void LogLocalCardMigrationPromptMetric(
-      LocalCardMigrationOrigin local_card_migration_origin,
-      LocalCardMigrationPromptMetric metric);
   static void LogProgressDialogResultMetric(
       bool is_canceled_by_user,
       AutofillProgressDialogType autofill_progress_dialog_type);
diff --git a/components/autofill/core/browser/metrics/payments/local_card_migration_metrics.cc b/components/autofill/core/browser/metrics/payments/local_card_migration_metrics.cc
new file mode 100644
index 0000000..f506255
--- /dev/null
+++ b/components/autofill/core/browser/metrics/payments/local_card_migration_metrics.cc
@@ -0,0 +1,114 @@
+// Copyright 2022 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 "components/autofill/core/browser/metrics/payments/local_card_migration_metrics.h"
+
+#include "base/metrics/histogram_functions.h"
+#include "base/metrics/histogram_macros.h"
+
+namespace autofill::autofill_metrics {
+
+void LogLocalCardMigrationBubbleOfferMetric(
+    LocalCardMigrationBubbleOfferMetric metric,
+    bool is_reshow) {
+  DCHECK_LT(metric, NUM_LOCAL_CARD_MIGRATION_BUBBLE_OFFER_METRICS);
+  std::string histogram_name = "Autofill.LocalCardMigrationBubbleOffer.";
+  histogram_name += is_reshow ? "Reshows" : "FirstShow";
+  base::UmaHistogramEnumeration(histogram_name, metric,
+                                NUM_LOCAL_CARD_MIGRATION_BUBBLE_OFFER_METRICS);
+}
+
+void LogLocalCardMigrationBubbleResultMetric(
+    LocalCardMigrationBubbleResultMetric metric,
+    bool is_reshow) {
+  DCHECK_LT(metric, NUM_LOCAL_CARD_MIGRATION_BUBBLE_RESULT_METRICS);
+  std::string suffix = is_reshow ? ".Reshows" : ".FirstShow";
+  base::UmaHistogramEnumeration(
+      "Autofill.LocalCardMigrationBubbleResult" + suffix, metric,
+      NUM_LOCAL_CARD_MIGRATION_BUBBLE_RESULT_METRICS);
+}
+
+void LogLocalCardMigrationDecisionMetric(
+    LocalCardMigrationDecisionMetric metric) {
+  UMA_HISTOGRAM_ENUMERATION("Autofill.LocalCardMigrationDecision", metric);
+}
+
+void LogLocalCardMigrationDialogOfferMetric(
+    LocalCardMigrationDialogOfferMetric metric) {
+  DCHECK_LT(metric, NUM_LOCAL_CARD_MIGRATION_DIALOG_OFFER_METRICS);
+  std::string histogram_name = "Autofill.LocalCardMigrationDialogOffer";
+  base::UmaHistogramEnumeration(histogram_name, metric,
+                                NUM_LOCAL_CARD_MIGRATION_DIALOG_OFFER_METRICS);
+}
+
+void LogLocalCardMigrationDialogUserInteractionMetric(
+    const base::TimeDelta& duration,
+    LocalCardMigrationDialogUserInteractionMetric metric) {
+  DCHECK_LT(metric, NUM_LOCAL_CARD_MIGRATION_DIALOG_USER_INTERACTION_METRICS);
+  base::UmaHistogramEnumeration(
+      "Autofill.LocalCardMigrationDialogUserInteraction", metric,
+      NUM_LOCAL_CARD_MIGRATION_DIALOG_USER_INTERACTION_METRICS);
+
+  // Do not log duration metrics for
+  // LOCAL_CARD_MIGRATION_DIALOG_DELETE_CARD_ICON_CLICKED, as it can happen
+  // multiple times in one dialog.
+  std::string suffix;
+  switch (metric) {
+    case LOCAL_CARD_MIGRATION_DIALOG_CLOSED_SAVE_BUTTON_CLICKED:
+      suffix = "Accepted";
+      break;
+    case LOCAL_CARD_MIGRATION_DIALOG_CLOSED_CANCEL_BUTTON_CLICKED:
+      suffix = "Denied";
+      break;
+    case LOCAL_CARD_MIGRATION_DIALOG_CLOSED_VIEW_CARDS_BUTTON_CLICKED:
+    case LOCAL_CARD_MIGRATION_DIALOG_CLOSED_DONE_BUTTON_CLICKED:
+      suffix = "Closed";
+      break;
+    default:
+      return;
+  }
+
+  base::UmaHistogramLongTimes(
+      "Autofill.LocalCardMigrationDialogActiveDuration." + suffix, duration);
+}
+
+void LogLocalCardMigrationDialogUserSelectionPercentageMetric(int selected,
+                                                              int total) {
+  UMA_HISTOGRAM_PERCENTAGE(
+      "Autofill.LocalCardMigrationDialogUserSelectionPercentage",
+      100 * selected / total);
+}
+
+void LogLocalCardMigrationNotOfferedDueToMaxStrikesMetric(
+    AutofillMetrics::SaveTypeMetric metric) {
+  UMA_HISTOGRAM_ENUMERATION(
+      "Autofill.StrikeDatabase.LocalCardMigrationNotOfferedDueToMaxStrikes",
+      metric);
+}
+
+void LogLocalCardMigrationPromptMetric(
+    LocalCardMigrationOrigin local_card_migration_origin,
+    LocalCardMigrationPromptMetric metric) {
+  DCHECK_LT(metric, NUM_LOCAL_CARD_MIGRATION_PROMPT_METRICS);
+  std::string histogram_name = "Autofill.LocalCardMigrationOrigin.";
+  // Switch to different sub-histogram depending on local card migration origin.
+  switch (local_card_migration_origin) {
+    case LocalCardMigrationOrigin::UseOfLocalCard:
+      histogram_name += "UseOfLocalCard";
+      break;
+    case LocalCardMigrationOrigin::UseOfServerCard:
+      histogram_name += "UseOfServerCard";
+      break;
+    case LocalCardMigrationOrigin::SettingsPage:
+      histogram_name += "SettingsPage";
+      break;
+    default:
+      NOTREACHED();
+      return;
+  }
+  base::UmaHistogramEnumeration(histogram_name, metric,
+                                NUM_LOCAL_CARD_MIGRATION_PROMPT_METRICS);
+}
+
+}  // namespace autofill::autofill_metrics
diff --git a/components/autofill/core/browser/metrics/payments/local_card_migration_metrics.h b/components/autofill/core/browser/metrics/payments/local_card_migration_metrics.h
new file mode 100644
index 0000000..0126c05
--- /dev/null
+++ b/components/autofill/core/browser/metrics/payments/local_card_migration_metrics.h
@@ -0,0 +1,176 @@
+// Copyright 2022 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 COMPONENTS_AUTOFILL_CORE_BROWSER_METRICS_PAYMENTS_LOCAL_CARD_MIGRATION_METRICS_H_
+#define COMPONENTS_AUTOFILL_CORE_BROWSER_METRICS_PAYMENTS_LOCAL_CARD_MIGRATION_METRICS_H_
+
+#include "base/time/time.h"
+#include "components/autofill/core/browser/metrics/autofill_metrics.h"
+
+namespace autofill::autofill_metrics {
+
+// Metrics to track events when local credit card migration is offered.
+enum LocalCardMigrationBubbleOfferMetric {
+  // These values are persisted to logs. Entries should not be renumbered and
+  // numeric values should never be reused.
+
+  // The bubble is requested due to a credit card being used or
+  // local card migration icon in the omnibox being clicked.
+  LOCAL_CARD_MIGRATION_BUBBLE_REQUESTED = 0,
+  // The bubble is actually shown to the user.
+  LOCAL_CARD_MIGRATION_BUBBLE_SHOWN = 1,
+  NUM_LOCAL_CARD_MIGRATION_BUBBLE_OFFER_METRICS,
+};
+
+// Metrics to track user action result of the bubble when the bubble is
+// closed.
+enum LocalCardMigrationBubbleResultMetric {
+  // These values are persisted to logs. Entries should not be renumbered and
+  // numeric values should never be reused.
+
+  // The user explicitly accepted the offer.
+  LOCAL_CARD_MIGRATION_BUBBLE_ACCEPTED = 0,
+  // The user explicitly closed the bubble with the close button or ESC.
+  LOCAL_CARD_MIGRATION_BUBBLE_CLOSED = 1,
+  // The user did not interact with the bubble.
+  LOCAL_CARD_MIGRATION_BUBBLE_NOT_INTERACTED = 2,
+  // The bubble lost its focus and was deactivated.
+  LOCAL_CARD_MIGRATION_BUBBLE_LOST_FOCUS = 3,
+  // The reason why the prompt is closed is not clear. Possible reason is the
+  // logging function is invoked before the closed reason is correctly set.
+  LOCAL_CARD_MIGRATION_BUBBLE_RESULT_UNKNOWN = 4,
+  NUM_LOCAL_CARD_MIGRATION_BUBBLE_RESULT_METRICS,
+};
+
+// Metrics to record the decision on whether to offer local card migration.
+enum class LocalCardMigrationDecisionMetric {
+  // These values are persisted to logs. Entries should not be renumbered and
+  // numeric values should never be reused.
+
+  // All the required conditions are satisfied and main prompt is shown.
+  OFFERED = 0,
+  // Migration not offered because user uses new card.
+  NOT_OFFERED_USE_NEW_CARD = 1,
+  // Migration not offered because failed migration prerequisites.
+  NOT_OFFERED_FAILED_PREREQUISITES = 2,
+  // The Autofill StrikeDatabase decided not to allow offering migration
+  // because max strike count was reached.
+  NOT_OFFERED_REACHED_MAX_STRIKE_COUNT = 3,
+  // Migration not offered because no migratable cards.
+  NOT_OFFERED_NO_MIGRATABLE_CARDS = 4,
+  // Met the migration requirements but the request to Payments for upload
+  // details failed.
+  NOT_OFFERED_GET_UPLOAD_DETAILS_FAILED = 5,
+  // Abandoned the migration because no supported local cards were left after
+  // filtering out unsupported cards.
+  NOT_OFFERED_NO_SUPPORTED_CARDS = 6,
+  // User used a local card and they only have a single migratable local card
+  // on file, we will offer Upstream instead.
+  NOT_OFFERED_SINGLE_LOCAL_CARD = 7,
+  // User used an unsupported local card, we will abort the migration.
+  NOT_OFFERED_USE_UNSUPPORTED_LOCAL_CARD = 8,
+  // Legal message was invalid, we will abort the migration.
+  NOT_OFFERED_INVALID_LEGAL_MESSAGE = 9,
+  kMaxValue = NOT_OFFERED_INVALID_LEGAL_MESSAGE,
+};
+
+// Metrics to track events when local card migration dialog is offered.
+enum LocalCardMigrationDialogOfferMetric {
+  // These values are persisted to logs. Entries should not be renumbered and
+  // numeric values should never be reused.
+
+  // The dialog is shown to the user.
+  LOCAL_CARD_MIGRATION_DIALOG_SHOWN = 0,
+  // The dialog is not shown due to legal message being invalid.
+  LOCAL_CARD_MIGRATION_DIALOG_NOT_SHOWN_INVALID_LEGAL_MESSAGE = 1,
+  // The dialog is shown when migration feedback is available.
+  LOCAL_CARD_MIGRATION_DIALOG_FEEDBACK_SHOWN = 2,
+  // The dialog is shown when migration fails due to server error.
+  LOCAL_CARD_MIGRATION_DIALOG_FEEDBACK_SERVER_ERROR_SHOWN = 3,
+  NUM_LOCAL_CARD_MIGRATION_DIALOG_OFFER_METRICS,
+};
+
+// Metrics to track user interactions with the dialog.
+enum LocalCardMigrationDialogUserInteractionMetric {
+  // These values are persisted to logs. Entries should not be renumbered and
+  // numeric values should never be reused.
+
+  // The user explicitly accepts the offer by clicking the save button.
+  LOCAL_CARD_MIGRATION_DIALOG_CLOSED_SAVE_BUTTON_CLICKED = 0,
+  // The user explicitly denies the offer by clicking the cancel button.
+  LOCAL_CARD_MIGRATION_DIALOG_CLOSED_CANCEL_BUTTON_CLICKED = 1,
+  // The user clicks the legal message.
+  LOCAL_CARD_MIGRATION_DIALOG_LEGAL_MESSAGE_CLICKED = 2,
+  // The user clicks the view card button after successfully migrated cards.
+  LOCAL_CARD_MIGRATION_DIALOG_CLOSED_VIEW_CARDS_BUTTON_CLICKED = 3,
+  // The user clicks the done button to close dialog after migration.
+  LOCAL_CARD_MIGRATION_DIALOG_CLOSED_DONE_BUTTON_CLICKED = 4,
+  // The user clicks the trash icon to delete invalid card.
+  LOCAL_CARD_MIGRATION_DIALOG_DELETE_CARD_ICON_CLICKED = 5,
+  NUM_LOCAL_CARD_MIGRATION_DIALOG_USER_INTERACTION_METRICS,
+};
+
+// These metrics are logged for each local card migration origin. These are
+// used to derive the conversion rate for each triggering source.
+enum LocalCardMigrationPromptMetric {
+  // These values are persisted to logs. Entries should not be renumbered and
+  // numeric values should never be reused.
+
+  // The intermediate bubble is shown to the user.
+  INTERMEDIATE_BUBBLE_SHOWN = 0,
+  // The intermediate bubble is accepted by the user.
+  INTERMEDIATE_BUBBLE_ACCEPTED = 1,
+  // The main dialog is shown to the user.
+  MAIN_DIALOG_SHOWN = 2,
+  // The main dialog is accepted by the user.
+  MAIN_DIALOG_ACCEPTED = 3,
+  NUM_LOCAL_CARD_MIGRATION_PROMPT_METRICS,
+};
+
+// Local card migration origin denotes from where the migration is triggered.
+enum LocalCardMigrationOrigin {
+  // These values are persisted to logs. Entries should not be renumbered and
+  // numeric values should never be reused.
+
+  // Trigger when user submitted a form using local card.
+  UseOfLocalCard,
+  // Trigger when user submitted a form using server card.
+  UseOfServerCard,
+  // Trigger from settings page.
+  SettingsPage,
+};
+
+void LogLocalCardMigrationBubbleOfferMetric(
+    LocalCardMigrationBubbleOfferMetric metric,
+    bool is_reshow);
+
+void LogLocalCardMigrationBubbleResultMetric(
+    LocalCardMigrationBubbleResultMetric metric,
+    bool is_reshow);
+
+void LogLocalCardMigrationDecisionMetric(
+    LocalCardMigrationDecisionMetric metric);
+
+void LogLocalCardMigrationDialogOfferMetric(
+    LocalCardMigrationDialogOfferMetric metric);
+
+void LogLocalCardMigrationDialogUserInteractionMetric(
+    const base::TimeDelta& duration,
+    LocalCardMigrationDialogUserInteractionMetric metric);
+
+void LogLocalCardMigrationDialogUserSelectionPercentageMetric(int selected,
+                                                              int total);
+
+// When local card migration is not offered due to max strike limit reached,
+// logs the occurrence.
+void LogLocalCardMigrationNotOfferedDueToMaxStrikesMetric(
+    AutofillMetrics::SaveTypeMetric metric);
+
+void LogLocalCardMigrationPromptMetric(
+    LocalCardMigrationOrigin local_card_migration_origin,
+    LocalCardMigrationPromptMetric metric);
+
+}  // namespace autofill::autofill_metrics
+
+#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_METRICS_PAYMENTS_LOCAL_CARD_MIGRATION_METRICS_H_
diff --git a/components/autofill/core/browser/payments/local_card_migration_manager.cc b/components/autofill/core/browser/payments/local_card_migration_manager.cc
index 4909a677..9566ce3 100644
--- a/components/autofill/core/browser/payments/local_card_migration_manager.cc
+++ b/components/autofill/core/browser/payments/local_card_migration_manager.cc
@@ -19,6 +19,7 @@
 #include "components/autofill/core/browser/data_model/credit_card.h"
 #include "components/autofill/core/browser/form_data_importer.h"
 #include "components/autofill/core/browser/metrics/autofill_metrics.h"
+#include "components/autofill/core/browser/metrics/payments/local_card_migration_metrics.h"
 #include "components/autofill/core/browser/payments/payments_client.h"
 #include "components/autofill/core/browser/payments/payments_util.h"
 #include "components/autofill/core/browser/personal_data_manager.h"
@@ -59,22 +60,22 @@
   switch (imported_credit_card_record_type_) {
     case FormDataImporter::ImportedCreditCardRecordType::LOCAL_CARD:
       local_card_migration_origin_ =
-          AutofillMetrics::LocalCardMigrationOrigin::UseOfLocalCard;
+          autofill_metrics::LocalCardMigrationOrigin::UseOfLocalCard;
       break;
     case FormDataImporter::ImportedCreditCardRecordType::SERVER_CARD:
       local_card_migration_origin_ =
-          AutofillMetrics::LocalCardMigrationOrigin::UseOfServerCard;
+          autofill_metrics::LocalCardMigrationOrigin::UseOfServerCard;
       break;
     default:
-      AutofillMetrics::LogLocalCardMigrationDecisionMetric(
-          AutofillMetrics::LocalCardMigrationDecisionMetric::
+      autofill_metrics::LogLocalCardMigrationDecisionMetric(
+          autofill_metrics::LocalCardMigrationDecisionMetric::
               NOT_OFFERED_USE_NEW_CARD);
       return false;
   }
 
   if (!IsCreditCardMigrationEnabled()) {
-    AutofillMetrics::LogLocalCardMigrationDecisionMetric(
-        AutofillMetrics::LocalCardMigrationDecisionMetric::
+    autofill_metrics::LogLocalCardMigrationDecisionMetric(
+        autofill_metrics::LocalCardMigrationDecisionMetric::
             NOT_OFFERED_FAILED_PREREQUISITES);
     return false;
   }
@@ -83,16 +84,16 @@
   if (GetLocalCardMigrationStrikeDatabase()->ShouldBlockFeature()) {
     switch (imported_credit_card_record_type_) {
       case FormDataImporter::ImportedCreditCardRecordType::LOCAL_CARD:
-        AutofillMetrics::LogLocalCardMigrationNotOfferedDueToMaxStrikesMetric(
+        autofill_metrics::LogLocalCardMigrationNotOfferedDueToMaxStrikesMetric(
             AutofillMetrics::SaveTypeMetric::LOCAL);
         break;
       case FormDataImporter::ImportedCreditCardRecordType::SERVER_CARD:
-        AutofillMetrics::LogLocalCardMigrationNotOfferedDueToMaxStrikesMetric(
+        autofill_metrics::LogLocalCardMigrationNotOfferedDueToMaxStrikesMetric(
             AutofillMetrics::SaveTypeMetric::SERVER);
         break;
     }
-    AutofillMetrics::LogLocalCardMigrationDecisionMetric(
-        AutofillMetrics::LocalCardMigrationDecisionMetric::
+    autofill_metrics::LogLocalCardMigrationDecisionMetric(
+        autofill_metrics::LocalCardMigrationDecisionMetric::
             NOT_OFFERED_REACHED_MAX_STRIKE_COUNT);
     return false;
   }
@@ -114,13 +115,13 @@
   } else if (imported_credit_card_record_type_ ==
                  FormDataImporter::ImportedCreditCardRecordType::LOCAL_CARD &&
              migratable_credit_cards_.size() == 1) {
-    AutofillMetrics::LogLocalCardMigrationDecisionMetric(
-        AutofillMetrics::LocalCardMigrationDecisionMetric::
+    autofill_metrics::LogLocalCardMigrationDecisionMetric(
+        autofill_metrics::LocalCardMigrationDecisionMetric::
             NOT_OFFERED_SINGLE_LOCAL_CARD);
     return false;
   } else {
-    AutofillMetrics::LogLocalCardMigrationDecisionMetric(
-        AutofillMetrics::LocalCardMigrationDecisionMetric::
+    autofill_metrics::LogLocalCardMigrationDecisionMetric(
+        autofill_metrics::LocalCardMigrationDecisionMetric::
             NOT_OFFERED_NO_MIGRATABLE_CARDS);
     return false;
   }
@@ -153,9 +154,9 @@
 // Call ShowMainMigrationDialog() to pop up a larger, modal dialog showing the
 // local cards to be uploaded.
 void LocalCardMigrationManager::OnUserAcceptedIntermediateMigrationDialog() {
-  AutofillMetrics::LogLocalCardMigrationPromptMetric(
+  autofill_metrics::LogLocalCardMigrationPromptMetric(
       local_card_migration_origin_,
-      AutofillMetrics::INTERMEDIATE_BUBBLE_ACCEPTED);
+      autofill_metrics::INTERMEDIATE_BUBBLE_ACCEPTED);
   ShowMainMigrationDialog();
 }
 
@@ -163,8 +164,8 @@
 void LocalCardMigrationManager::OnUserAcceptedMainMigrationDialog(
     const std::vector<std::string>& selected_card_guids) {
   user_accepted_main_migration_dialog_ = true;
-  AutofillMetrics::LogLocalCardMigrationPromptMetric(
-      local_card_migration_origin_, AutofillMetrics::MAIN_DIALOG_ACCEPTED);
+  autofill_metrics::LogLocalCardMigrationPromptMetric(
+      local_card_migration_origin_, autofill_metrics::MAIN_DIALOG_ACCEPTED);
 
   // Log number of LocalCardMigration strikes when migration was accepted.
   base::UmaHistogramCounts1000(
@@ -211,8 +212,8 @@
                             /*escape_apostrophes=*/true);
 
     if (legal_message_lines_.empty()) {
-      AutofillMetrics::LogLocalCardMigrationDecisionMetric(
-          AutofillMetrics::LocalCardMigrationDecisionMetric::
+      autofill_metrics::LogLocalCardMigrationDecisionMetric(
+          autofill_metrics::LocalCardMigrationDecisionMetric::
               NOT_OFFERED_INVALID_LEGAL_MESSAGE);
       return;
     }
@@ -226,7 +227,7 @@
     if (is_from_settings_page) {
       // Set the origin to SettingsPage.
       local_card_migration_origin_ =
-          AutofillMetrics::LocalCardMigrationOrigin::SettingsPage;
+          autofill_metrics::LocalCardMigrationOrigin::SettingsPage;
       // Pops up a larger, modal dialog showing the local cards to be uploaded.
       ShowMainMigrationDialog();
     } else {
@@ -240,8 +241,8 @@
           !payments::IsCreditCardNumberSupported(
               imported_credit_card_number_.value(),
               supported_card_bin_ranges)) {
-        AutofillMetrics::LogLocalCardMigrationDecisionMetric(
-            AutofillMetrics::LocalCardMigrationDecisionMetric::
+        autofill_metrics::LogLocalCardMigrationDecisionMetric(
+            autofill_metrics::LocalCardMigrationDecisionMetric::
                 NOT_OFFERED_USE_UNSUPPORTED_LOCAL_CARD);
         return;
       }
@@ -249,17 +250,17 @@
       FilterOutUnsupportedLocalCards(supported_card_bin_ranges);
       // Abandon the migration if no supported card left.
       if (migratable_credit_cards_.empty()) {
-        AutofillMetrics::LogLocalCardMigrationDecisionMetric(
-            AutofillMetrics::LocalCardMigrationDecisionMetric::
+        autofill_metrics::LogLocalCardMigrationDecisionMetric(
+            autofill_metrics::LocalCardMigrationDecisionMetric::
                 NOT_OFFERED_NO_SUPPORTED_CARDS);
         return;
       }
       client_->ShowLocalCardMigrationDialog(base::BindOnce(
           &LocalCardMigrationManager::OnUserAcceptedIntermediateMigrationDialog,
           weak_ptr_factory_.GetWeakPtr()));
-      AutofillMetrics::LogLocalCardMigrationPromptMetric(
+      autofill_metrics::LogLocalCardMigrationPromptMetric(
           local_card_migration_origin_,
-          AutofillMetrics::INTERMEDIATE_BUBBLE_SHOWN);
+          autofill_metrics::INTERMEDIATE_BUBBLE_SHOWN);
     }
 
     // TODO(crbug.com/876895): Clean up the LoadRiskData Bind/BindRepeating
@@ -267,11 +268,11 @@
     client_->LoadRiskData(base::BindRepeating(
         &LocalCardMigrationManager::OnDidGetMigrationRiskData,
         weak_ptr_factory_.GetWeakPtr()));
-    AutofillMetrics::LogLocalCardMigrationDecisionMetric(
-        AutofillMetrics::LocalCardMigrationDecisionMetric::OFFERED);
+    autofill_metrics::LogLocalCardMigrationDecisionMetric(
+        autofill_metrics::LocalCardMigrationDecisionMetric::OFFERED);
   } else {
-    AutofillMetrics::LogLocalCardMigrationDecisionMetric(
-        AutofillMetrics::LocalCardMigrationDecisionMetric::
+    autofill_metrics::LogLocalCardMigrationDecisionMetric(
+        autofill_metrics::LocalCardMigrationDecisionMetric::
             NOT_OFFERED_GET_UPLOAD_DETAILS_FAILED);
   }
 }
@@ -378,8 +379,8 @@
 // OnUserAcceptedMainMigrationDialog(). Can be called when user agrees to
 // migration on the intermediate dialog or directly from settings page.
 void LocalCardMigrationManager::ShowMainMigrationDialog() {
-  AutofillMetrics::LogLocalCardMigrationPromptMetric(
-      local_card_migration_origin_, AutofillMetrics::MAIN_DIALOG_SHOWN);
+  autofill_metrics::LogLocalCardMigrationPromptMetric(
+      local_card_migration_origin_, autofill_metrics::MAIN_DIALOG_SHOWN);
   // Pops up a larger, modal dialog showing the local cards to be uploaded.
   client_->ConfirmMigrateLocalCardToCloud(
       legal_message_lines_,
diff --git a/components/autofill/core/browser/payments/local_card_migration_manager.h b/components/autofill/core/browser/payments/local_card_migration_manager.h
index 24d6855..defdf46 100644
--- a/components/autofill/core/browser/payments/local_card_migration_manager.h
+++ b/components/autofill/core/browser/payments/local_card_migration_manager.h
@@ -15,6 +15,7 @@
 #include "base/memory/raw_ptr.h"
 #include "components/autofill/core/browser/autofill_client.h"
 #include "components/autofill/core/browser/metrics/autofill_metrics.h"
+#include "components/autofill/core/browser/metrics/payments/local_card_migration_metrics.h"
 #include "components/autofill/core/browser/payments/legal_message_line.h"
 #include "components/autofill/core/browser/payments/local_card_migration_strike_database.h"
 #include "components/autofill/core/browser/payments/payments_client.h"
@@ -249,7 +250,7 @@
   bool user_accepted_main_migration_dialog_ = false;
 
   // Record the triggering source of the local card migration.
-  AutofillMetrics::LocalCardMigrationOrigin local_card_migration_origin_;
+  autofill_metrics::LocalCardMigrationOrigin local_card_migration_origin_;
 
   // Initialized only during tests.
   raw_ptr<ObserverForTest> observer_for_testing_ = nullptr;
diff --git a/components/autofill/core/browser/payments/local_card_migration_manager_unittest.cc b/components/autofill/core/browser/payments/local_card_migration_manager_unittest.cc
index bdb96560..612b8ff 100644
--- a/components/autofill/core/browser/payments/local_card_migration_manager_unittest.cc
+++ b/components/autofill/core/browser/payments/local_card_migration_manager_unittest.cc
@@ -28,6 +28,7 @@
 #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/metrics/autofill_metrics.h"
+#include "components/autofill/core/browser/metrics/payments/local_card_migration_metrics.h"
 #include "components/autofill/core/browser/payments/payments_customer_data.h"
 #include "components/autofill/core/browser/payments/payments_util.h"
 #include "components/autofill/core/browser/payments/test_credit_card_save_manager.h"
@@ -162,7 +163,7 @@
   // Verify that the correct histogram entry (and only that) was logged.
   void ExpectUniqueLocalCardMigrationDecision(
       const base::HistogramTester& histogram_tester,
-      AutofillMetrics::LocalCardMigrationDecisionMetric metric) {
+      autofill_metrics::LocalCardMigrationDecisionMetric metric) {
     histogram_tester.ExpectUniqueSample("Autofill.LocalCardMigrationDecision",
                                         metric, 1);
   }
@@ -1139,16 +1140,16 @@
   // sub-histogram.
   histogram_tester.ExpectBucketCount(
       "Autofill.LocalCardMigrationOrigin.UseOfLocalCard",
-      AutofillMetrics::INTERMEDIATE_BUBBLE_SHOWN, 1);
+      autofill_metrics::INTERMEDIATE_BUBBLE_SHOWN, 1);
   histogram_tester.ExpectBucketCount(
       "Autofill.LocalCardMigrationOrigin.UseOfLocalCard",
-      AutofillMetrics::INTERMEDIATE_BUBBLE_ACCEPTED, 1);
+      autofill_metrics::INTERMEDIATE_BUBBLE_ACCEPTED, 1);
   histogram_tester.ExpectBucketCount(
       "Autofill.LocalCardMigrationOrigin.UseOfLocalCard",
-      AutofillMetrics::MAIN_DIALOG_SHOWN, 1);
+      autofill_metrics::MAIN_DIALOG_SHOWN, 1);
   histogram_tester.ExpectBucketCount(
       "Autofill.LocalCardMigrationOrigin.UseOfLocalCard",
-      AutofillMetrics::MAIN_DIALOG_ACCEPTED, 1);
+      autofill_metrics::MAIN_DIALOG_ACCEPTED, 1);
 }
 
 // Using a server card when any number of local cards are eligible for migration
@@ -1163,16 +1164,16 @@
   // sub-histogram.
   histogram_tester.ExpectBucketCount(
       "Autofill.LocalCardMigrationOrigin.UseOfServerCard",
-      AutofillMetrics::INTERMEDIATE_BUBBLE_SHOWN, 1);
+      autofill_metrics::INTERMEDIATE_BUBBLE_SHOWN, 1);
   histogram_tester.ExpectBucketCount(
       "Autofill.LocalCardMigrationOrigin.UseOfServerCard",
-      AutofillMetrics::INTERMEDIATE_BUBBLE_ACCEPTED, 1);
+      autofill_metrics::INTERMEDIATE_BUBBLE_ACCEPTED, 1);
   histogram_tester.ExpectBucketCount(
       "Autofill.LocalCardMigrationOrigin.UseOfServerCard",
-      AutofillMetrics::MAIN_DIALOG_SHOWN, 1);
+      autofill_metrics::MAIN_DIALOG_SHOWN, 1);
   histogram_tester.ExpectBucketCount(
       "Autofill.LocalCardMigrationOrigin.UseOfServerCard",
-      AutofillMetrics::MAIN_DIALOG_ACCEPTED, 1);
+      autofill_metrics::MAIN_DIALOG_ACCEPTED, 1);
 }
 
 // Using a server card will not trigger migration even if there are other local
@@ -1213,16 +1214,16 @@
   // Triggering from settings page won't show intermediate bubble.
   histogram_tester.ExpectBucketCount(
       "Autofill.LocalCardMigrationOrigin.SettingsPage",
-      AutofillMetrics::INTERMEDIATE_BUBBLE_SHOWN, 0);
+      autofill_metrics::INTERMEDIATE_BUBBLE_SHOWN, 0);
   histogram_tester.ExpectBucketCount(
       "Autofill.LocalCardMigrationOrigin.SettingsPage",
-      AutofillMetrics::INTERMEDIATE_BUBBLE_ACCEPTED, 0);
+      autofill_metrics::INTERMEDIATE_BUBBLE_ACCEPTED, 0);
   histogram_tester.ExpectBucketCount(
       "Autofill.LocalCardMigrationOrigin.SettingsPage",
-      AutofillMetrics::MAIN_DIALOG_SHOWN, 1);
+      autofill_metrics::MAIN_DIALOG_SHOWN, 1);
   histogram_tester.ExpectBucketCount(
       "Autofill.LocalCardMigrationOrigin.SettingsPage",
-      AutofillMetrics::MAIN_DIALOG_ACCEPTED, 1);
+      autofill_metrics::MAIN_DIALOG_ACCEPTED, 1);
 }
 
 // Use new card when submit so migration was not offered. Verify the migration
@@ -1232,7 +1233,7 @@
   UseNewCardWithLocalCardsOnFile();
 
   ExpectUniqueLocalCardMigrationDecision(
-      histogram_tester, AutofillMetrics::LocalCardMigrationDecisionMetric::
+      histogram_tester, autofill_metrics::LocalCardMigrationDecisionMetric::
                             NOT_OFFERED_USE_NEW_CARD);
 }
 
@@ -1263,7 +1264,7 @@
   FormSubmitted(credit_card_form);
 
   ExpectUniqueLocalCardMigrationDecision(
-      histogram_tester, AutofillMetrics::LocalCardMigrationDecisionMetric::
+      histogram_tester, autofill_metrics::LocalCardMigrationDecisionMetric::
                             NOT_OFFERED_FAILED_PREREQUISITES);
 }
 
@@ -1283,7 +1284,7 @@
   UseLocalCardWithOtherLocalCardsOnFile();
 
   ExpectUniqueLocalCardMigrationDecision(
-      histogram_tester, AutofillMetrics::LocalCardMigrationDecisionMetric::
+      histogram_tester, autofill_metrics::LocalCardMigrationDecisionMetric::
                             NOT_OFFERED_REACHED_MAX_STRIKE_COUNT);
 }
 
@@ -1296,7 +1297,7 @@
   UseLocalCardWithInvalidLocalCardsOnFile();
 
   ExpectUniqueLocalCardMigrationDecision(
-      histogram_tester, AutofillMetrics::LocalCardMigrationDecisionMetric::
+      histogram_tester, autofill_metrics::LocalCardMigrationDecisionMetric::
                             NOT_OFFERED_SINGLE_LOCAL_CARD);
 }
 
@@ -1308,7 +1309,7 @@
   UseServerCardWithInvalidLocalCardsOnFile();
 
   ExpectUniqueLocalCardMigrationDecision(
-      histogram_tester, AutofillMetrics::LocalCardMigrationDecisionMetric::
+      histogram_tester, autofill_metrics::LocalCardMigrationDecisionMetric::
                             NOT_OFFERED_NO_MIGRATABLE_CARDS);
 }
 
@@ -1324,7 +1325,7 @@
   UseLocalCardWithOtherLocalCardsOnFile();
 
   ExpectUniqueLocalCardMigrationDecision(
-      histogram_tester, AutofillMetrics::LocalCardMigrationDecisionMetric::
+      histogram_tester, autofill_metrics::LocalCardMigrationDecisionMetric::
                             NOT_OFFERED_GET_UPLOAD_DETAILS_FAILED);
 }
 
@@ -1366,7 +1367,7 @@
   FormSubmitted(credit_card_form);
 
   ExpectUniqueLocalCardMigrationDecision(
-      histogram_tester, AutofillMetrics::LocalCardMigrationDecisionMetric::
+      histogram_tester, autofill_metrics::LocalCardMigrationDecisionMetric::
                             NOT_OFFERED_USE_UNSUPPORTED_LOCAL_CARD);
 }
 
@@ -1410,7 +1411,7 @@
   FormSubmitted(credit_card_form);
 
   ExpectUniqueLocalCardMigrationDecision(
-      histogram_tester, AutofillMetrics::LocalCardMigrationDecisionMetric::
+      histogram_tester, autofill_metrics::LocalCardMigrationDecisionMetric::
                             NOT_OFFERED_NO_SUPPORTED_CARDS);
 }
 
@@ -1454,7 +1455,7 @@
   FormSubmitted(credit_card_form);
 
   ExpectUniqueLocalCardMigrationDecision(
-      histogram_tester, AutofillMetrics::LocalCardMigrationDecisionMetric::
+      histogram_tester, autofill_metrics::LocalCardMigrationDecisionMetric::
                             NOT_OFFERED_NO_SUPPORTED_CARDS);
 }
 
@@ -1467,7 +1468,7 @@
 
   ExpectUniqueLocalCardMigrationDecision(
       histogram_tester,
-      AutofillMetrics::LocalCardMigrationDecisionMetric::OFFERED);
+      autofill_metrics::LocalCardMigrationDecisionMetric::OFFERED);
 }
 
 // Tests that if payment client returns an invalid legal message migration
@@ -1481,7 +1482,7 @@
 
   // Verify that the correct histogram entries were logged.
   ExpectUniqueLocalCardMigrationDecision(
-      histogram_tester, AutofillMetrics::LocalCardMigrationDecisionMetric::
+      histogram_tester, autofill_metrics::LocalCardMigrationDecisionMetric::
                             NOT_OFFERED_INVALID_LEGAL_MESSAGE);
 }
 
diff --git a/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc b/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc
index 6114f6e..5837c62 100644
--- a/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc
+++ b/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc
@@ -10,6 +10,7 @@
 
 #include "base/bind.h"
 #include "base/containers/adapters.h"
+#include "base/debug/alias.h"
 #include "base/files/file_util.h"
 #include "base/files/memory_mapped_file.h"
 #include "base/strings/string_split.h"
@@ -17,6 +18,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "base/task/sequenced_task_runner.h"
 #include "base/task/thread_pool.h"
+#include "build/build_config.h"
 #include "components/breadcrumbs/core/breadcrumb_manager.h"
 #include "components/breadcrumbs/core/breadcrumb_manager_keyed_service.h"
 #include "components/breadcrumbs/core/breadcrumb_persistent_storage_util.h"
@@ -49,10 +51,18 @@
                       base::MemoryMappedFile::READ_WRITE_EXTEND);
 
   if (file_valid) {
-    // TODO(crbug.com/1327267):  Writing past the end of the memory-mapped file
-    // is suspected to cause a crash. Remove CHECK once the crash is understood.
     const size_t remaining_length = kPersistedFilesizeInBytes - position;
-    CHECK(events.length() < remaining_length);
+
+#if BUILDFLAG(IS_CHROMEOS)
+    // TODO(crbug.com/1327267): Remove this once crashes in this function on
+    // CrOS are understood. The first and last values are delimiters to aid in
+    // finding this array on the stack, as CrOS crashes are hard to debug.
+    size_t debug_data[] = {
+        0x1234beef,      reinterpret_cast<size_t>(file.data()),
+        file.length(),   position,
+        events.length(), 0x5678beef};
+    base::debug::Alias(&debug_data);
+#endif  // BUILDFLAG(IS_CHROMEOS)
 
     char* data = reinterpret_cast<char*>(file.data());
     base::strlcpy(&data[position], events.c_str(), remaining_length);
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb
index d373715..2002b496 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Om <ph name="APP_NAME" /> AR te laat gebruik, moet jy kamera ook in <ph name="BEGIN_LINK" />Android-instellings<ph name="END_LINK" /> aanskakel.</translation>
 <translation id="1864927262126810325">Vanaf <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Liggingtoegang is af vir hierdie toestel. Skakel dit in <ph name="BEGIN_LINK" />Android-instellings<ph name="END_LINK" /> aan.</translation>
+<translation id="1915307458270490472">Sit neer</translation>
 <translation id="1919345977826869612">Advertensies</translation>
 <translation id="1919950603503897840">Kies kontakte</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> van <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Gaan uit</translation>
 <translation id="2687403674020088961">Blokkeer alle webkoekies (nie aanbeveel nie)</translation>
 <translation id="2704606927547763573">Gekopieer</translation>
+<translation id="2713106313042589954">Skakel kamera af</translation>
 <translation id="2717722538473713889">E-posadresse</translation>
 <translation id="2750481671343847896">Werwe kan vir jou aanmeldporboodskappe van identiteitsdienste af wys.</translation>
 <translation id="2785051990912111074">Hierdie keuse sal webkoekies uitvee vir <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Vra eers voordat werwe toegelaat word om jou kamera te gebruik (aanbeveel)</translation>
 <translation id="4505788138578415521">URL is uitgevou</translation>
 <translation id="4534723447064627427">Om <ph name="APP_NAME" /> toegang tot jou mikrofoon te gee, moet jy mikrofoon ook in <ph name="BEGIN_LINK" />Android-instellings<ph name="END_LINK" /> aanskakel.</translation>
+<translation id="4566417217121906555">Demp mikrofoon</translation>
 <translation id="4570913071927164677">Besonderhede</translation>
 <translation id="4645575059429386691">Deur jou ouer bestuur</translation>
 <translation id="4670064810192446073">Virtuele realiteit</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opsie is naby die bokant van die skerm beskikbaar</translation>
 <translation id="5197729504361054390">Die kontakte wat jy kies, sal gedeel word met <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Laas vandag besoek</translation>
+<translation id="5225463052809312700">Skakel kamera aan</translation>
 <translation id="5264323282659631142">Verwyder "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Sleep van bo af en raak die terugknoppie om volskerm te verlaat.</translation>
 <translation id="5300589172476337783">Wys</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Blokkeer aanmelding deur derde partye vir ’n spesifieke werf.</translation>
 <translation id="6388207532828177975">Vee uit en stel terug</translation>
 <translation id="6398765197997659313">Gaan by volskerm uit</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Keer werwe om jou virtuelerealiteittoestel en -data te gebruik</translation>
 <translation id="6447842834002726250">Webkoekies</translation>
 <translation id="6527303717912515753">Deel</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 webkoekie word tans gebruik}other{# webkoekies word tans gebruik}}</translation>
 <translation id="8487700953926739672">Vanlyn beskikbaar</translation>
 <translation id="848952951823693243">Versoek altyd mobiele werf</translation>
+<translation id="8499083585497694743">Ontdemp mikrofoon</translation>
 <translation id="851751545965956758">Keer dat werwe aan toestelle koppel</translation>
 <translation id="8525306231823319788">Volskerm</translation>
 <translation id="857943718398505171">Toegelaat (aanbeveel)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb
index b66a914..f84d6fc 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> ኤአር እንዲጠቀም ለማስቻል፣ በ <ph name="BEGIN_LINK" />Android ቅንብሮች<ph name="END_LINK" /> ውስጥ ካሜራን በተጨማሪ ያብሩ።</translation>
 <translation id="1864927262126810325">ከ<ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">የአካባቢ መዳረሻ ለዚህ መሣሪያ ጠፍቷል። በ<ph name="BEGIN_LINK" />Android ቅንብሮች<ph name="END_LINK" /> ውስጥ ያብሩት።</translation>
+<translation id="1915307458270490472">ዝጋ</translation>
 <translation id="1919345977826869612">ማስታወቂያዎች</translation>
 <translation id="1919950603503897840">ዕውቂያዎችን ምረጥ</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">ለቅቀህ ውጣ</translation>
 <translation id="2687403674020088961">ሁሉንም ኩኪዎች አግድ (አይመከርም)</translation>
 <translation id="2704606927547763573">ተቀድቷል</translation>
+<translation id="2713106313042589954">ካሜራ አጥፋ</translation>
 <translation id="2717722538473713889">ኢሜይል አድራሻዎች</translation>
 <translation id="2750481671343847896">ጣቢያዎች ከማንነት አገልግሎቶች የመግቢያ ጥያቄዎችን ማሳየት ይችላሉ።</translation>
 <translation id="2785051990912111074">ይህ ምርጫ ኩኪዎችን ለ<ph name="WEBSITE" /> ያጸዳል</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">ጣቢያዎች ካሜራዎን እንዲጠቀሙ ከመፍቀድዎ በፊት ይጠይቅ (የሚመከር)</translation>
 <translation id="4505788138578415521">ዩአርኤል ተዘርግቷል</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> የእርስዎን ማይክራፎን እንዲደርስ ለማድረግ፣ በ <ph name="BEGIN_LINK" />Android ቅንብሮች<ph name="END_LINK" /> ውስጥ ማይክራፎንን በተጨማሪ ያብሩ።</translation>
+<translation id="4566417217121906555">የማይክሮፎን ድምፀ-ከል አድርግ</translation>
 <translation id="4570913071927164677">ዝርዝሮች</translation>
 <translation id="4645575059429386691">በእርስዎ ወላጅ የሚቀናበር</translation>
 <translation id="4670064810192446073">ምናባዊ እውነታ</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">አማራጮች ከማያ ገጹ አናት አጠገብ ይገኛሉ</translation>
 <translation id="5197729504361054390">የመረጧቸው እውቂያዎች ለ<ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> ይጋራሉ።</translation>
 <translation id="5216942107514965959">መጨረሻ የተጎበኘው ዛሬ</translation>
+<translation id="5225463052809312700">ካሜራን አብራ</translation>
 <translation id="5264323282659631142">«<ph name="CHIP_LABEL" />»ን ያስወግዱ</translation>
 <translation id="528192093759286357">ከሙሉ ማያ ገጽ ለመውጣት ከላይ ይጎትቱ እና የተመለስ አዝራሩን ይንኩ።</translation>
 <translation id="5300589172476337783">አሳይ</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{በጥቅም ላይ ያለ 1 ኩኪ}one{# ጥቅም ላይ የዋሉ ኩኪዎች}other{# ጥቅም ላይ የዋሉ ኩኪዎች}}</translation>
 <translation id="8487700953926739672">ከመስመር ውጪ ይገኛል</translation>
 <translation id="848952951823693243">ሁልጊዜ የሞባይል ጣቢያን ጠይቅ</translation>
+<translation id="8499083585497694743">የማይክሮፎን ድምፀ-ከል አንሳ</translation>
 <translation id="851751545965956758">ጣቢያዎች ከመሣሪያዎች ጋር እንዳይገናኙ አግድ</translation>
 <translation id="8525306231823319788">ሙሉ ማያ ገጽ</translation>
 <translation id="857943718398505171">ተፈቅዷል (የሚመከር)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb
index eee7b437..5ca2ab8 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">‏للسماح لتطبيق <ph name="APP_NAME" /> باستخدام ميزة الواقع المعزَّز، يُرجى أيضًا تفعيل الكاميرا في <ph name="BEGIN_LINK" />إعدادات Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">من <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">‏الوصول إلى الموقع الجغرافي متوقف لهذا الجهاز. يمكنك تفعليه في <ph name="BEGIN_LINK" />إعدادات Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">قطع الاتصال</translation>
 <translation id="1919345977826869612">الإعلانات</translation>
 <translation id="1919950603503897840">اختيار جهات الاتصال</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">الخروج</translation>
 <translation id="2687403674020088961">حظر كل ملفات تعريف الارتباط (غير مُستحسَن)</translation>
 <translation id="2704606927547763573">تم النسخ</translation>
+<translation id="2713106313042589954">إيقاف الكاميرا</translation>
 <translation id="2717722538473713889">عنوان البريد الإلكتروني</translation>
 <translation id="2750481671343847896">بإمكان المواقع الإلكترونية حظر رسائل المطالبة بتسجيل الدخول من خدمات تقديم الهويات.</translation>
 <translation id="2785051990912111074">سيؤدي هذا الخيار إلى محو ملفات تعريف الارتباط للموقع الإلكتروني <ph name="WEBSITE" />.</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">السؤال أولاً قبل السماح للمواقع الإلكترونية باستخدام الكاميرا (موصى به)</translation>
 <translation id="4505788138578415521">‏تم توسيع عنوان URL.</translation>
 <translation id="4534723447064627427">‏للسماح لتطبيق <ph name="APP_NAME" /> بالوصول إلى الميكروفون، يُرجى أيضًا تفعيل الميكروفون في <ph name="BEGIN_LINK" />إعدادات Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">كتم صوت الميكروفون</translation>
 <translation id="4570913071927164677">التفاصيل</translation>
 <translation id="4645575059429386691">يديره والداك</translation>
 <translation id="4670064810192446073">الواقع الافتراضي</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">يمكنك العثور على خيار حفظ كلمة المرور بالقرب من أعلى الشاشة.</translation>
 <translation id="5197729504361054390">ستتم مشاركة جهات الاتصال التي تختارها مع الموقع الإلكتروني <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">تمّت زيارة الموقع الإلكتروني آخر مرّة اليوم.</translation>
+<translation id="5225463052809312700">تفعيل الكاميرا</translation>
 <translation id="5264323282659631142">إزالة شريحة "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">اسحب من الجزء العلوي والمس زر الرجوع للخروج من وضع ملء الشاشة.</translation>
 <translation id="5300589172476337783">عرض</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{ملف تعريف ارتباط واحد قيد الاستخدام}zero{# ملف تعريف ارتباط قيد الاستخدام}two{ملفا تعريف ارتباط قيد الاستخدام}few{# ملفات تعريف ارتباط قيد الاستخدام}many{# ملف تعريف ارتباط قيد الاستخدام}other{# ملف تعريف ارتباط قيد الاستخدام}}</translation>
 <translation id="8487700953926739672">التوفر بلا إنترنت</translation>
 <translation id="848952951823693243">طلب موقع إلكتروني متوافق مع الأجهزة الجوّالة دومًا</translation>
+<translation id="8499083585497694743">إعادة صوت الميكروفون</translation>
 <translation id="851751545965956758">حظر المواقع الإلكترونية من الاتصال بأجهزة</translation>
 <translation id="8525306231823319788">ملء الشاشة</translation>
 <translation id="857943718398505171">مسموح بها (موصى بها)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb
index 12322fe..ec2d159 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" />ক AR ব্যৱহাৰ কৰিবলৈ দিবলৈ <ph name="BEGIN_LINK" />Android ছেটিংসমূহ<ph name="END_LINK" />তো কেমেৰা অন কৰক।</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" />ৰ পৰা</translation>
 <translation id="1887786770086287077">এই ডিভাইচটোত অৱস্থান এক্সেছ বন্ধ কৰা আছে। ইয়াক <ph name="BEGIN_LINK" />Android ছেটিংসমূহ<ph name="END_LINK" />লৈ গৈ অন কৰক।</translation>
+<translation id="1915307458270490472">কল শেষ কৰক</translation>
 <translation id="1919345977826869612">বিজ্ঞাপনসমূহ</translation>
 <translation id="1919950603503897840">সম্পৰ্কসমূহ বাছনি কৰক</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">ত্যাগ কৰক</translation>
 <translation id="2687403674020088961">সকলো কুকি অৱৰোধ কৰক (চুপাৰিছ কৰা নহয়)</translation>
 <translation id="2704606927547763573">প্ৰতিলিপি কৰা হ'ল</translation>
+<translation id="2713106313042589954">কেমেৰা অফ কৰক</translation>
 <translation id="2717722538473713889">ইমেইল ঠিকনাবোৰ</translation>
 <translation id="2750481671343847896">ছাইটবিলাকে পৰিচয় সেৱাসমূহৰ পৰা ছাইন-ইনৰ প্ৰম্প্‌ট দেখুৱাব পাৰে।</translation>
 <translation id="2785051990912111074">এই বাছনিটোৱে <ph name="WEBSITE" />ৰ কুকি মচিব</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">আপোনাৰ কেমেৰা ছাইটসমূহক ব্যৱহাৰ কৰিবলৈ দিয়াৰ পূর্বে অনুমতি ল'বলৈ দিয়ক(চুপাৰিছ কৰা)</translation>
 <translation id="4505788138578415521">URL বিস্তাৰ কৰা হৈছে</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" />ক আপোনাৰ মাইক্ৰ’ফ’ন এক্সেছ কৰিবলৈ দিবলৈ <ph name="BEGIN_LINK" />Android ছেটিংসমূহ<ph name="END_LINK" />তো মাইক্ৰ’ফ’ন অন কৰক।</translation>
+<translation id="4566417217121906555">মাইক্ৰ’ফ’ন মিউট কৰক</translation>
 <translation id="4570913071927164677">সবিশেষ</translation>
 <translation id="4645575059429386691">আপোনাৰ অভিভাৱকৰ দ্বাৰা পৰিচালিত</translation>
 <translation id="4670064810192446073">ভাৰ্চুৱেল ৰিয়েলিটি</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">স্ক্ৰীনৰ ওপৰৰ অংশৰ ওচৰত বিকল্পটো উপলব্ধ</translation>
 <translation id="5197729504361054390">আপুনি বাছনি কৰা সম্পৰ্কবোৰ <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />ৰ সৈতে শ্বেয়াৰ কৰা হ’ব।</translation>
 <translation id="5216942107514965959">শেষবাৰ আজি চাইছে</translation>
+<translation id="5225463052809312700">কেমেৰা অন কৰক</translation>
 <translation id="5264323282659631142">‘<ph name="CHIP_LABEL" />’ আঁতৰাওক</translation>
 <translation id="528192093759286357">সম্পূৰ্ণ স্ক্ৰীণৰ পৰা প্ৰস্থান কৰিবলৈ ওপৰৰ পৰা টানি আনক আৰু বেক বুটামটো টিপক।</translation>
 <translation id="5300589172476337783">দেখুৱাওক</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">নিৰ্দিষ্ট কোনো ছাইটৰ বাবে তৃতীয় পক্ষৰ ছাইন ইন অৱৰোধ কৰক।</translation>
 <translation id="6388207532828177975">মচক আৰু ৰিছেট কৰক</translation>
 <translation id="6398765197997659313">সম্পূর্ণ স্ক্ৰীণ ম’ডৰ পৰা বাহিৰ হওক</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">ছাইটসমূহে আপোনাৰ ভাৰ্চুৱেল ৰিয়েলিটি ডিভাইচ আৰু ডেটা এক্সেছ কৰাটো অৱৰোধ কৰক</translation>
 <translation id="6447842834002726250">কুকীসমূহ</translation>
 <translation id="6527303717912515753">শ্বেয়াৰ কৰক</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{১ টা কুকি ব্যৱহাৰ হৈ আছে}one{# টা কুকি ব্যৱহাৰ হৈ আছে}other{# টা কুকি ব্যৱহাৰ হৈ আছে}}</translation>
 <translation id="8487700953926739672">অফলাইনত উপলব্ধ</translation>
 <translation id="848952951823693243">সদায়েই ম’বাইল ছাইট অনুৰোধ কৰিব</translation>
+<translation id="8499083585497694743">মাইক্ৰ’ফ’ন আনমিউট কৰক</translation>
 <translation id="851751545965956758">ডিভাইচৰ সৈতে সংযোগ কৰাৰ পৰা ছাইটসমূহক অৱৰোধ কৰক</translation>
 <translation id="8525306231823319788">সম্পূর্ণ স্ক্ৰীণ</translation>
 <translation id="857943718398505171">অনুমোদিত (চুপাৰিছ কৰা)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb
index 656b7473..f711af0 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> tətbiqinə AR-dan istifadə icazəsi vermək üçün <ph name="BEGIN_LINK" />Android Ayarlarında<ph name="END_LINK" /> kameranı da aktiv edin.</translation>
 <translation id="1864927262126810325">Mənbə: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Bu cihazda məkan girişi də deaktivdir. <ph name="BEGIN_LINK" />Android Ayarlarında<ph name="END_LINK" /> girişi aktiv edin.</translation>
+<translation id="1915307458270490472">Dəstəyi qoyun</translation>
 <translation id="1919345977826869612">Reklamlar</translation>
 <translation id="1919950603503897840">Kontaktları seçin</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Tərk edin</translation>
 <translation id="2687403674020088961">Bütün kukiləri bloklayın (tövsiyə edilmir)</translation>
 <translation id="2704606927547763573">Kopyalandı</translation>
+<translation id="2713106313042589954">Kameranı deaktiv edin</translation>
 <translation id="2717722538473713889">E-poçt ünvanları</translation>
 <translation id="2750481671343847896">Saytlar kimlik xidmətlərindən daxil olma sorğularını göstərə bilər.</translation>
 <translation id="2785051990912111074">Bu seçim <ph name="WEBSITE" /> üçün kukiləri siləcək</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Saytlara kameranızı istifadə etmək icazəsi verməmişdən əvvəl soruşun (tövsiyə olunur)</translation>
 <translation id="4505788138578415521">URL genişləndirilib</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> tətbiqinə mikrofonunuza giriş icazəsi vermək üçün <ph name="BEGIN_LINK" />Android Ayarlarında<ph name="END_LINK" /> mikrofonu da aktiv edin.</translation>
+<translation id="4566417217121906555">Mikrofonu susdurun</translation>
 <translation id="4570913071927164677">Ətraflı</translation>
 <translation id="4645575059429386691">Valideyniniz tərəfindən idarə olunur</translation>
 <translation id="4670064810192446073">Virtual reallıq</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Seçim ekranın yuxarısına yaxın yerdə əlçatandır</translation>
 <translation id="5197729504361054390">Seçdiyiniz kontaktlar <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> ilə paylaşılacaq.</translation>
 <translation id="5216942107514965959">Son ziyarət bu gün olub</translation>
+<translation id="5225463052809312700">Kameranı aktiv edin</translation>
 <translation id="5264323282659631142">"<ph name="CHIP_LABEL" />" daxiletməsini silin</translation>
 <translation id="528192093759286357">Yuxarıdan sürüşdürün və tam ekrandan çıxmaq üçün geri düyməsinə basın.</translation>
 <translation id="5300589172476337783">Göstərin</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Müəyyən bir sayt üçün üçüncü tərəfin girişini bloklayın.</translation>
 <translation id="6388207532828177975">Təmizləyin və sıfırlayın</translation>
 <translation id="6398765197997659313">Tam ekrandan çıxın</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Saytların virtual reallıq cihazınızı və datanızı istifadə etməsinin qarşısını alın</translation>
 <translation id="6447842834002726250">Kukilər</translation>
 <translation id="6527303717912515753">Paylaşın</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 kuki istifadə olunur}other{# kuki istifadə olunur}}</translation>
 <translation id="8487700953926739672">Oflayn olaraq əlçatan</translation>
 <translation id="848952951823693243">Həmişə mobil sayt tələb edin</translation>
+<translation id="8499083585497694743">Mikrofonu səssiz rejimdən çıxarın</translation>
 <translation id="851751545965956758">Saytların cihazlara qoşulmasını blok edin</translation>
 <translation id="8525306231823319788">Tam ekran</translation>
 <translation id="857943718398505171">İcazə verilib (tövsiyə olunur)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb
index a8d3e8e..c05ccde 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Каб праграма "<ph name="APP_NAME" />" магла выкарыстоўваць дапоўненую рэальнасць, уключыце таксама камеру ў <ph name="BEGIN_LINK" />Наладах Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Крыніца: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Доступ да месцазнаходжання для гэтай прылады выключаны. Уключыце яго ў <ph name="BEGIN_LINK" />Наладах Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Закрыць</translation>
 <translation id="1919345977826869612">Рэклама</translation>
 <translation id="1919950603503897840">Выберыце кантакты</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Выйсці</translation>
 <translation id="2687403674020088961">Блакіраваць усе файлы cookie (не рэкамендуецца)</translation>
 <translation id="2704606927547763573">Скапіравана</translation>
+<translation id="2713106313042589954">Выключыць камеру</translation>
 <translation id="2717722538473713889">Адрасы электроннай пошты</translation>
 <translation id="2750481671343847896">Сайты могуць паказваць запыты на ўваход ад сэрвісаў ідэнтыфікацыі.</translation>
 <translation id="2785051990912111074">Будуць выдалены файлы cookie для вэб-сайта <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Пытацца, перш чым дазволіць сайтам выкарыстоўваць камеру (рэкамендуецца)</translation>
 <translation id="4505788138578415521">URL-адрас разгорнуты</translation>
 <translation id="4534723447064627427">Каб даць праграме "<ph name="APP_NAME" />" доступ да мікрафона, уключыце апошні ў <ph name="BEGIN_LINK" />Наладах Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Выключыць мікрафон</translation>
 <translation id="4570913071927164677">Падрабязныя звесткі</translation>
 <translation id="4645575059429386691">Пад кіраваннем бацькоў</translation>
 <translation id="4670064810192446073">Віртуальная рэальнасць</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Гэты выбар можна зрабіць уверсе экрана</translation>
 <translation id="5197729504361054390">Выбраныя вамі кантакты будуць абагулены з сайтам <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Апошняе наведванне: сёння</translation>
+<translation id="5225463052809312700">Уключыць камеру</translation>
 <translation id="5264323282659631142">Выдаліць чып "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Каб выйсці з поўнаэкраннага рэжыму, правядзіце зверху ўніз і націсніце кнопку "Назад".</translation>
 <translation id="5300589172476337783">Паказаць</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Выкарыстоўваецца 1 файл cookie}one{Выкарыстоўваецца # файл cookie}few{Выкарыстоўваюцца # файлы cookie}many{Выкарыстоўваюцца # файлаў cookie}other{Выкарыстоўваюцца # файла cookie}}</translation>
 <translation id="8487700953926739672">Даступна па-за сеткай</translation>
 <translation id="848952951823693243">Заўсёды запытваць версію сайта для мабільных прылад</translation>
+<translation id="8499083585497694743">Уключыць мікрафон</translation>
 <translation id="851751545965956758">Блакіраваць сайтам падключэнне да прылад</translation>
 <translation id="8525306231823319788">Поўнаэкранны рэжым</translation>
 <translation id="857943718398505171">Дазволена (рэкамендуецца)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb
index 3f189a1..91e4cbc 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">За да разрешите на <ph name="APP_NAME" /> да използва AR, камерата трябва да бъде включена от <ph name="BEGIN_LINK" />настройките на Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">От <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Достъпът до местоположението е изключен за това устройство. Включете го от <ph name="BEGIN_LINK" />настройките на Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Затваряне</translation>
 <translation id="1919345977826869612">Реклами</translation>
 <translation id="1919950603503897840">Избор на контакти</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> от <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Излизане</translation>
 <translation id="2687403674020088961">Блокиране на всички „бисквитки“ (не се препоръчва)</translation>
 <translation id="2704606927547763573">Копирано</translation>
+<translation id="2713106313042589954">Изключване на камерата</translation>
 <translation id="2717722538473713889">Имейл адреси</translation>
 <translation id="2750481671343847896">Сайтовете могат да показват подкани за вход от услуги за идентифициране.</translation>
 <translation id="2785051990912111074">Така ще се изчистят „бисквитките“ за <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Извеждане на запитване, преди да се разреши на сайтовете да използват камерата (препоръчително)</translation>
 <translation id="4505788138578415521">URL адресът е разгънат</translation>
 <translation id="4534723447064627427">За да разрешите на <ph name="APP_NAME" /> да осъществява достъп до микрофона ви, той трябва да бъде включен и от <ph name="BEGIN_LINK" />настройките на Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Заглушаване на микрофона</translation>
 <translation id="4570913071927164677">Подробности</translation>
 <translation id="4645575059429386691">Управлява се от ваш родител</translation>
 <translation id="4670064810192446073">Виртуална реалност</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Опцията е в горната част на екрана</translation>
 <translation id="5197729504361054390">Избраните от вас контакти ще бъдат споделени със сайта <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Последно посещение: днес</translation>
+<translation id="5225463052809312700">Включване на камерата</translation>
 <translation id="5264323282659631142">Премахване на „<ph name="CHIP_LABEL" />“</translation>
 <translation id="528192093759286357">Плъзнете пръст от горната част на екрана и докоснете бутона за връщане назад, за да излезете от режима на цял екран.</translation>
 <translation id="5300589172476337783">Показване</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Използва се 1 „бисквитка“}other{Използват се # „бисквитки“}}</translation>
 <translation id="8487700953926739672">Налице офлайн</translation>
 <translation id="848952951823693243">Винаги да се заявява мобилният сайт</translation>
+<translation id="8499083585497694743">Включване на микрофона</translation>
 <translation id="851751545965956758">Блокиране на сайтовете, така че да не се свързват с устройства</translation>
 <translation id="8525306231823319788">На цял екран</translation>
 <translation id="857943718398505171">Разрешено (препоръчително)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb
index f4e1739..c2ab001 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">তাছাড়া, যাতে <ph name="APP_NAME" /> এ আর (AR) ব্যবহার করতে পারে, তার জন্য <ph name="BEGIN_LINK" />Android সেটিংসে<ph name="END_LINK" /> গিয়েও ক্যামেরা চালু করে দিন।</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> থেকে</translation>
 <translation id="1887786770086287077">এই ডিভাইসে লোকেশন অ্যাক্সেস বন্ধ আছে। চালু করতে <ph name="BEGIN_LINK" />Android সেটিংসে<ph name="END_LINK" /> যান।</translation>
+<translation id="1915307458270490472">কল নামিয়ে রাখুন</translation>
 <translation id="1919345977826869612">বিজ্ঞাপন</translation>
 <translation id="1919950603503897840">পরিচিতিগুলি বেছে নিন</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">ছেড়ে চলে যান</translation>
 <translation id="2687403674020088961">সব কুকি ব্লক করুন (সাজেস্ট করা হচ্ছে না)</translation>
 <translation id="2704606927547763573">প্রতিলিপি করা হয়েছে</translation>
+<translation id="2713106313042589954">ক্যামেরা বন্ধ করুন</translation>
 <translation id="2717722538473713889">ইমেল আইডি</translation>
 <translation id="2750481671343847896">সাইটগুলি পরিচয় পরিষেবা প্রদানকারী থেকে সাইন-ইন প্রম্পট দেখাতে পারে।</translation>
 <translation id="2785051990912111074">এটি পছন্দ করলে <ph name="WEBSITE" /> থেকে সব কুকি সাফ হয়ে যাবে</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">সাইটগুলিকে আপনার ক্যামেরা ব্যবহার করতে দিতে মঞ্জুরি দেওয়ার আগে প্রথমে জিজ্ঞাসা করুন (প্রস্তাবিত)</translation>
 <translation id="4505788138578415521">ইউআরএল বড় করা হয়েছে</translation>
 <translation id="4534723447064627427">তাছাড়া, যাতে <ph name="APP_NAME" /> আপনার মাইক্রোফোন অ্যাক্সেস করতে পারে, তার জন্য <ph name="BEGIN_LINK" />Android সেটিংসে<ph name="END_LINK" /> গিয়েও মাইক্রোফোন চালু করে দিন।</translation>
+<translation id="4566417217121906555">মাইক্রোফোন মিউট করুন</translation>
 <translation id="4570913071927164677">বিবরণ</translation>
 <translation id="4645575059429386691">আপনার পিতামাতার দ্বারা পরিচালিত</translation>
 <translation id="4670064810192446073">ভার্চুয়াল রিয়ালিটি</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">স্ক্রিনের উপরের দিকে বিকল্পগুলি দেখানো হয়েছে</translation>
 <translation id="5197729504361054390">আপনার বেছে নেওয়া পরিচিতি <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />-এর সাথে শেয়ার করা হবে।</translation>
 <translation id="5216942107514965959">আজ শেষবার দেখা হয়েছে</translation>
+<translation id="5225463052809312700">ক্যামেরা চালু করুন</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />' সরান</translation>
 <translation id="528192093759286357">উপর থেকে টেনে আনুন এবং পূর্ণ স্ক্রিন থেকে বেরিয়ে যেতে পিছনে ফেরার বোতাম স্পর্শ করুন।</translation>
 <translation id="5300589172476337783">দেখান</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">কোনও নির্দিষ্ট সাইটের জন্য থার্ড-পার্টি সাইন-ইন ব্লক করুন।</translation>
 <translation id="6388207532828177975">পরিষ্কার এবং রিসেট করুন</translation>
 <translation id="6398765197997659313">পূর্ণ স্ক্রীণ বন্ধ করুন</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">সাইটগুলিকে আপনার ভার্চুয়াল রিয়েলিটি ডিভাইস ও ডেটা ব্যবহার করতে দেবেন না</translation>
 <translation id="6447842834002726250">কুকিজ</translation>
 <translation id="6527303717912515753">শেয়ার করুন</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{১টি কুকি ব্যবহার করা হচ্ছে}one{#টি কুকি ব্যবহার করা হচ্ছে}other{#টি কুকি ব্যবহার করা হচ্ছে}}</translation>
 <translation id="8487700953926739672">অফলাইনে উপলব্ধ</translation>
 <translation id="848952951823693243">সবসময় মোবাইল সাইটের অনুরোধ করুন</translation>
+<translation id="8499083585497694743">মাইক্রোফোন আনমিউট করুন</translation>
 <translation id="851751545965956758">সাইটকে ডিভাইসের সাথে কানেক্ট করা থেকে ব্লক করুন</translation>
 <translation id="8525306231823319788">পূর্ণ স্ক্রীণ</translation>
 <translation id="857943718398505171">অনুমোদিত (প্রস্তাবিত)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb
index 8f2455f..c7b1be27 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Da aplikaciji <ph name="APP_NAME" /> dozvolite korištenje AR-a, također uključite kameru u <ph name="BEGIN_LINK" />Postavkama Androida<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Izvor: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Pristup lokaciji je isključen za ovaj uređaj. Uključite ga u <ph name="BEGIN_LINK" />Postavkama Androida<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Prekini vezu</translation>
 <translation id="1919345977826869612">Oglasi</translation>
 <translation id="1919950603503897840">Odaberite kontakte</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Napusti</translation>
 <translation id="2687403674020088961">Blokiraj sve kolačiće (ne preporučuje se)</translation>
 <translation id="2704606927547763573">Kopirano</translation>
+<translation id="2713106313042589954">Isključi kameru</translation>
 <translation id="2717722538473713889">Adrese e-pošte</translation>
 <translation id="2750481671343847896">Web lokacije vam mogu prikazati upite za prijavu koji potiču od usluga identiteta.</translation>
 <translation id="2785051990912111074">Ovim odabirom će se obrisati kolačići za web lokaciju <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Web-lokacije moraju tražiti dopuštenje za pristup kameri (preporučeno)</translation>
 <translation id="4505788138578415521">URL je proširen</translation>
 <translation id="4534723447064627427">Da aplikaciji <ph name="APP_NAME" /> dozvolite pristup mikrofonu, također uključite mikrofon u <ph name="BEGIN_LINK" />Postavkama Androida<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Isključi mikrofon</translation>
 <translation id="4570913071927164677">Detalji</translation>
 <translation id="4645575059429386691">Upravlja roditelj</translation>
 <translation id="4670064810192446073">Virtuelna realnost</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opcije su dostupne pri vrhu ekrana</translation>
 <translation id="5197729504361054390">Kontakti koje odaberete će se podijeliti s web lokacijom <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Posljednji put je posjećeno danas</translation>
+<translation id="5225463052809312700">Uključi kameru</translation>
 <translation id="5264323282659631142">Uklanjanje stavke "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Povucite s vrha i dodirnite dugme za nazad da napustite prikaz preko cijelog ekrana.</translation>
 <translation id="5300589172476337783">Prikaži</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Koristi se 1 kolačić}one{Koristi se # kolačić}few{Koriste se # kolačića}other{Koristi se # kolačića}}</translation>
 <translation id="8487700953926739672">Dostupno van mreže</translation>
 <translation id="848952951823693243">Uvijek zatraži verziju web lokacije za mobilni uređaj</translation>
+<translation id="8499083585497694743">Uključi mikrofon</translation>
 <translation id="851751545965956758">Blokiraj povezivanje web-lokacija s uređajima</translation>
 <translation id="8525306231823319788">Cijeli ekran</translation>
 <translation id="857943718398505171">Dozvoljeno (preporučeno)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb
index 1ad1dea..89f99178 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Per permetre que <ph name="APP_NAME" /> utilitzi RA, activa també la càmera a la <ph name="BEGIN_LINK" />configuració d'Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">De: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">L'accés a la ubicació està desactivat en aquest dispositiu. Activa'l a la <ph name="BEGIN_LINK" />configuració d'Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Penja</translation>
 <translation id="1919345977826869612">Anuncis</translation>
 <translation id="1919950603503897840">Selecciona contactes</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Surt</translation>
 <translation id="2687403674020088961">Bloqueja totes les galetes (opció no recomanada)</translation>
 <translation id="2704606927547763573">Copiada</translation>
+<translation id="2713106313042589954">Desactiva la càmera</translation>
 <translation id="2717722538473713889">Adreces electròniques</translation>
 <translation id="2750481671343847896">Els llocs web poden mostrar sol·licituds d'inici de sessió procedents de serveis d'identitat.</translation>
 <translation id="2785051990912111074">Amb aquesta opció, s'esborraran les galetes per a <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Pregunta abans de permetre que els llocs web utilitzin la càmera (opció recomanada)</translation>
 <translation id="4505788138578415521">L'URL s'ha ampliat</translation>
 <translation id="4534723447064627427">Perquè <ph name="APP_NAME" /> pugui accedir al micròfon, també has d'activar-lo a la <ph name="BEGIN_LINK" />configuració d'Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Silencia el micròfon</translation>
 <translation id="4570913071927164677">Detalls</translation>
 <translation id="4645575059429386691">Gestionat pels pares</translation>
 <translation id="4670064810192446073">Realitat virtual</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">L'opció està disponible a prop de la part superior de la pantalla.</translation>
 <translation id="5197729504361054390">Els contactes que seleccionis es compartiran amb <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Darrera visita: avui</translation>
+<translation id="5225463052809312700">Activa la càmera</translation>
 <translation id="5264323282659631142">Suprimeix <ph name="CHIP_LABEL" /></translation>
 <translation id="528192093759286357">Arrossegueu la pantalla des de la part superior i toqueu el botó Enrere per sortir de la pantalla completa.</translation>
 <translation id="5300589172476337783">Mostra</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Bloqueja l'inici de sessió de tercers en un lloc web concret.</translation>
 <translation id="6388207532828177975">Esborra i restableix</translation>
 <translation id="6398765197997659313">Surt del mode de pantalla completa</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Impedeix que els llocs web utilitzin les teves dades i el teu dispositiu de realitat virtual</translation>
 <translation id="6447842834002726250">Galetes</translation>
 <translation id="6527303717912515753">Comparteix</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 galeta en ús}other{# galetes en ús}}</translation>
 <translation id="8487700953926739672">Disponible sense connexió</translation>
 <translation id="848952951823693243">Sol·licita sempre el lloc web per a mòbils</translation>
+<translation id="8499083585497694743">Deixa de silenciar el micròfon</translation>
 <translation id="851751545965956758">Impedeix que els llocs web es connectin a dispositius</translation>
 <translation id="8525306231823319788">Pantalla completa</translation>
 <translation id="857943718398505171">Permès (opció recomanada)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb
index 656753f9..86da331 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Pokud aplikaci <ph name="APP_NAME" /> chcete povolit používání rozšířené reality, zapněte také v <ph name="BEGIN_LINK" />Nastavení Android<ph name="END_LINK" /> fotoaparát.</translation>
 <translation id="1864927262126810325">Od <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Přístup k poloze je v tomto zařízení vypnut. Zapnete jej v <ph name="BEGIN_LINK" />Nastavení Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Zavěsit</translation>
 <translation id="1919345977826869612">Reklamy</translation>
 <translation id="1919950603503897840">Vyberte kontakty</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Odejít</translation>
 <translation id="2687403674020088961">Blokovat všechny soubory cookie (nedoporučujeme)</translation>
 <translation id="2704606927547763573">Zkopírováno</translation>
+<translation id="2713106313042589954">Vypnout kameru</translation>
 <translation id="2717722538473713889">E‑mailové adresy</translation>
 <translation id="2750481671343847896">Weby mohou zobrazovat výzvy k přihlášení od služeb zjišťujících identitu</translation>
 <translation id="2785051990912111074">Výběrem této možnosti vymažete soubory cookie webu <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Pokud web bude chtít použít vaši kameru, zobrazit dotaz (doporučeno)</translation>
 <translation id="4505788138578415521">Rozbalená adresa URL</translation>
 <translation id="4534723447064627427">Pokud aplikaci <ph name="APP_NAME" /> chcete umožnit přístup k mikrofonu, zapněte mikrofon také v <ph name="BEGIN_LINK" />Nastavení Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Vypnout mikrofon</translation>
 <translation id="4570913071927164677">Podrobnosti</translation>
 <translation id="4645575059429386691">Spravováno vaším rodičem</translation>
 <translation id="4670064810192446073">Virtuální realita</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Možnost je k dispozici u horního okraje obrazovky</translation>
 <translation id="5197729504361054390">Vybrané kontakty budou sdíleny s webem <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Naposledy navštíveno dnes</translation>
+<translation id="5225463052809312700">Zapnout kameru</translation>
 <translation id="5264323282659631142">Odstranit položku <ph name="CHIP_LABEL" /></translation>
 <translation id="528192093759286357">Režim celé obrazovky ukončíte přetažením z horního okraje obrazovky a klepnutím na tlačítko Zpět.</translation>
 <translation id="5300589172476337783">Zobrazit</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Je používán 1 soubor cookie}few{Jsou používány # soubory cookie}many{Je používáno # souboru cookie}other{Je používáno # souborů cookie}}</translation>
 <translation id="8487700953926739672">Dostupné offline</translation>
 <translation id="848952951823693243">Vždy požadovat zobrazení na mobilu</translation>
+<translation id="8499083585497694743">Zapnout mikrofon</translation>
 <translation id="851751545965956758">Bránit webům v připojení k zařízením</translation>
 <translation id="8525306231823319788">Celá obrazovka</translation>
 <translation id="857943718398505171">Povoleno (doporučeno)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb
index 1aa75402..17620cd 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">I ganiatáu i <ph name="APP_NAME" /> ddefnyddio AR, trowch y camera ymlaen yn <ph name="BEGIN_LINK" />Gosodiadau Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">O <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Mae mynediad lleoliad wedi'i ddiffodd ar gyfer y ddyfais hon. Trowch ef ymlaen yn <ph name="BEGIN_LINK" />Gosodiadau Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Dod â'r sgwrs i ben</translation>
 <translation id="1919345977826869612">Hysbysebion</translation>
 <translation id="1919950603503897840">Dewis cysylltiadau</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Gadael</translation>
 <translation id="2687403674020088961">Rhwystro pob cwci (ni argymhellir)</translation>
 <translation id="2704606927547763573">Copïwyd</translation>
+<translation id="2713106313042589954">Diffodd y camera</translation>
 <translation id="2717722538473713889">Cyfeiriadau e-bost</translation>
 <translation id="2750481671343847896">Gall gwefannau ddangos anogwyr mewngofnodi o wasanaethau hunaniaeth.</translation>
 <translation id="2785051990912111074">Bydd y dewis hwn yn clirio cwcis ar gyfer <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Gofyn yn gyntaf cyn caniatáu i wefannau ddefnyddio'ch camera (argymhellir)</translation>
 <translation id="4505788138578415521">URL wedi'i ehangu</translation>
 <translation id="4534723447064627427">I ganiatáu i <ph name="APP_NAME" /> gael mynediad at eich meicroffon, trowch y meicroffon ymlaen yn <ph name="BEGIN_LINK" />Gosodiadau Android<ph name="END_LINK" /> hefyd.</translation>
+<translation id="4566417217121906555">Distewi'r meicroffon</translation>
 <translation id="4570913071927164677">Manylion</translation>
 <translation id="4645575059429386691">Rheolir gan dy riant</translation>
 <translation id="4670064810192446073">Realiti rhithwir</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Mae'r opsiwn ar gael yn agos at frig y sgrîn</translation>
 <translation id="5197729504361054390">Bydd y cysylltiadau rydych yn eu dewis yn cael eu rhannu gyda <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Ymwelwyd ddiwethaf heddiw</translation>
+<translation id="5225463052809312700">Troi'r camera ymlaen</translation>
 <translation id="5264323282659631142">Tynnu '<ph name="CHIP_LABEL" />'</translation>
 <translation id="528192093759286357">Llusgwch o'r brig a chyffyrddwch â'r botwm nôl i adael y sgrîn lawn.</translation>
 <translation id="5300589172476337783">Arddangos</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Rhwystro mewngofnodi trydydd parti ar gyfer gwefan benodol.</translation>
 <translation id="6388207532828177975">Clirio ac ailosod</translation>
 <translation id="6398765197997659313">Gadael y sgrîn lawn</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Rhwystro gwefannau rhag defnyddio eich dyfais rhithwrionedd a'i data</translation>
 <translation id="6447842834002726250">Cwcis</translation>
 <translation id="6527303717912515753">Rhannu</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Mae 1 cwci yn cael ei ddefnyddio}zero{Mae # cwci yn cael eu defnyddio}two{Mae # gwci yn cael eu defnyddio}few{Mae # chwci yn cael eu defnyddio}many{Mae # chwci yn cael eu defnyddio}other{Mae # cwci yn cael eu defnyddio}}</translation>
 <translation id="8487700953926739672">Ar gael all-lein</translation>
 <translation id="848952951823693243">Gofyn am wefan symudol bob amser</translation>
+<translation id="8499083585497694743">Dad-ddistewi'r meicroffon</translation>
 <translation id="851751545965956758">Rhwystro gwefannau rhag cysylltu â dyfeisiau</translation>
 <translation id="8525306231823319788">Sgrîn lawn</translation>
 <translation id="857943718398505171">Caniateir (argymhellir)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb
index 74912c29..d7d4166 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Aktivér også kameraet i <ph name="BEGIN_LINK" />Android-indstillingerne<ph name="END_LINK" /> for at give <ph name="APP_NAME" /> tilladelse til at bruge AR.</translation>
 <translation id="1864927262126810325">Fra <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Lokationsadgang er deaktiveret for denne enhed. Aktivér det under <ph name="BEGIN_LINK" />indstillinger for Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Læg på</translation>
 <translation id="1919345977826869612">Annoncer</translation>
 <translation id="1919950603503897840">Vælg kontakter</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Forlad</translation>
 <translation id="2687403674020088961">Bloker alle cookies (anbefales ikke)</translation>
 <translation id="2704606927547763573">Kopieret</translation>
+<translation id="2713106313042589954">Slå kamera fra</translation>
 <translation id="2717722538473713889">Mailadresser</translation>
 <translation id="2750481671343847896">Websites kan vise loginmeddelelser fra identitetstjenester.</translation>
 <translation id="2785051990912111074">Denne handling rydder cookies for <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Spørg, før websites bruger dit kamera (anbefales)</translation>
 <translation id="4505788138578415521">Webadressen er udvidet</translation>
 <translation id="4534723447064627427">Aktivér også din mikrofon i <ph name="BEGIN_LINK" />Android-indstillingerne<ph name="END_LINK" /> for at give <ph name="APP_NAME" /> adgang til mikrofonen.</translation>
+<translation id="4566417217121906555">Slå mikrofon fra</translation>
 <translation id="4570913071927164677">Info</translation>
 <translation id="4645575059429386691">Administreret af en af dine forældre</translation>
 <translation id="4670064810192446073">Virtual reality</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Se valgmuligheden øverst på skærmen</translation>
 <translation id="5197729504361054390">De kontakter, du vælger, deles med <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Senest besøgt i dag</translation>
+<translation id="5225463052809312700">Slå kamera til</translation>
 <translation id="5264323282659631142">Fjern "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Træk fra toppen, og tryk på tilbageknappen igen for at afslutte fuld skærm.</translation>
 <translation id="5300589172476337783">Vis</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie er i brug}one{# cookie er i brug}other{# cookies er i brug}}</translation>
 <translation id="8487700953926739672">Tilgængelig offline</translation>
 <translation id="848952951823693243">Anmod altid om mobilwebsite</translation>
+<translation id="8499083585497694743">Slå mikrofon til</translation>
 <translation id="851751545965956758">Bloker websites fra at oprette forbindelse til enheder</translation>
 <translation id="8525306231823319788">Fuld skærm</translation>
 <translation id="857943718398505171">Tilladt (anbefales)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb
index a7e4fd28..29b40b6 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Damit <ph name="APP_NAME" /> AR verwenden kann, muss die Kameraberechtigung auch in den <ph name="BEGIN_LINK" />Android-Einstellungen<ph name="END_LINK" /> aktiviert sein.</translation>
 <translation id="1864927262126810325">Quelle: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Der Standortzugriff ist für dieses Gerät deaktiviert. Du kannst ihn in den <ph name="BEGIN_LINK" />Android-Einstellungen<ph name="END_LINK" /> aktivieren.</translation>
+<translation id="1915307458270490472">Auflegen</translation>
 <translation id="1919345977826869612">Werbung</translation>
 <translation id="1919950603503897840">Kontakte auswählen</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> von <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Verlassen</translation>
 <translation id="2687403674020088961">Alle Cookies blockieren (nicht empfohlen)</translation>
 <translation id="2704606927547763573">Kopiert</translation>
+<translation id="2713106313042589954">Kamera ausschalten</translation>
 <translation id="2717722538473713889">E-Mail-Adressen</translation>
 <translation id="2750481671343847896">Websites dürfen Anmeldungsaufforderungen von Identitätsdiensten anzeigen.</translation>
 <translation id="2785051990912111074">Mit dieser Option werden Cookies für <ph name="WEBSITE" /> gelöscht</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Nachfragen, bevor Websites Zugriff auf meine Kamera erhalten (empfohlen)</translation>
 <translation id="4505788138578415521">URL maximiert</translation>
 <translation id="4534723447064627427">Um <ph name="APP_NAME" /> Zugriff auf dein Mikrofon zu gewähren, muss die Mikrofonberechtigung auch in den <ph name="BEGIN_LINK" />Android-Einstellungen<ph name="END_LINK" /> aktiviert werden.</translation>
+<translation id="4566417217121906555">Mikrofon stummschalten</translation>
 <translation id="4570913071927164677">Details</translation>
 <translation id="4645575059429386691">Von deinen Eltern verwaltet</translation>
 <translation id="4670064810192446073">Virtual Reality</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Option ist oben auf dem Bildschirm verfügbar</translation>
 <translation id="5197729504361054390">Die von dir ausgewählten Kontakte werden mit <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> geteilt.</translation>
 <translation id="5216942107514965959">Heute zuletzt besucht</translation>
+<translation id="5225463052809312700">Kamera einschalten</translation>
 <translation id="5264323282659631142">"<ph name="CHIP_LABEL" />" entfernen</translation>
 <translation id="528192093759286357">Ziehe zum Beenden des Vollbildmodus von oben und tippe auf die Zurück-Taste.</translation>
 <translation id="5300589172476337783">Anzeigen</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 verwendeter Cookie}other{# verwendete Cookies}}</translation>
 <translation id="8487700953926739672">Offline verfügbar</translation>
 <translation id="848952951823693243">Mobile Website immer anfordern</translation>
+<translation id="8499083585497694743">Mikrofon einschalten</translation>
 <translation id="851751545965956758">Verhindern, dass Websites eine Verbindung zu Geräten herstellen</translation>
 <translation id="8525306231823319788">Vollbildmodus</translation>
 <translation id="857943718398505171">Zugelassen (empfohlen)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb
index c38d6d2ba..bda8b5ca 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Για να επιτρέπεται στην εφαρμογή <ph name="APP_NAME" /> να χρησιμοποιεί AR, ενεργοποιήστε επίσης την κάμερα στις <ph name="BEGIN_LINK" />Ρυθμίσεις Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Από <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Η πρόσβαση στην Τοποθεσία είναι απενεργοποιημένη γι' αυτήν τη συσκευή. Ενεργοποιήστε τη στις <ph name="BEGIN_LINK" />Ρυθμίσεις Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Τερματισμός κλήσης</translation>
 <translation id="1919345977826869612">Διαφημίσεις</translation>
 <translation id="1919950603503897840">Επιλογή επαφών</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Αποχώρηση</translation>
 <translation id="2687403674020088961">Αποκλεισμός όλων των cookie (δεν συνιστάται)</translation>
 <translation id="2704606927547763573">Αντιγράφ.</translation>
+<translation id="2713106313042589954">Απενεργοποίηση κάμερας</translation>
 <translation id="2717722538473713889">Διευθύνσεις ηλεκτρονικού ταχυδρομείου</translation>
 <translation id="2750481671343847896">Οι ιστότοποι μπορούν πλέον να εμφανίζουν προτροπές σύνδεσης από υπηρεσίες ταυτότητας.</translation>
 <translation id="2785051990912111074">Αυτή η επιλογή θα διαγράψει τα cookie για τον ιστότοπο <ph name="WEBSITE" />.</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Να γίνεται ερώτηση προτού επιτραπεί στους ιστότοπους να χρησιμοποιούν την κάμερά σας (συνιστάται)</translation>
 <translation id="4505788138578415521">Το URL επεκτάθηκε</translation>
 <translation id="4534723447064627427">Για να επιτρέψετε στην εφαρμογή <ph name="APP_NAME" /> να αποκτήσει πρόσβαση στο μικρόφωνό σας, ενεργοποιήστε επίσης το μικρόφωνο στις <ph name="BEGIN_LINK" />Ρυθμίσεις Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Σίγαση μικροφώνου</translation>
 <translation id="4570913071927164677">Λεπτομέρειες</translation>
 <translation id="4645575059429386691">Διαχειρίζεται από τους γονείς σου</translation>
 <translation id="4670064810192446073">Εικονική πραγματικότητα</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Η επιλογή είναι διαθέσιμη κοντά στην κορυφή της οθόνης</translation>
 <translation id="5197729504361054390">Οι επαφές που επιλέγετε θα κοινοποιηθούν στον ιστότοπο <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Τελευταία επίσκεψη σήμερα</translation>
+<translation id="5225463052809312700">Ενεργοποίηση κάμερας</translation>
 <translation id="5264323282659631142">Κατάργηση <ph name="CHIP_LABEL" /></translation>
 <translation id="528192093759286357">Σύρετε από το επάνω τμήμα και αγγίξτε το κουμπί επιστροφής για έξοδο από την πλήρη οθόνη.</translation>
 <translation id="5300589172476337783">Εμφάνιση</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Αποκλεισμός σύνδεσης τρίτου μέρους για έναν συγκεκριμένο ιστότοπο.</translation>
 <translation id="6388207532828177975">Διαγραφή και επαναφορά</translation>
 <translation id="6398765197997659313">Έξοδος από πλήρη οθόνη</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Αποκλείστε τη χρήση της συσκευής και των δεδομένων εικονικής πραγματικότητας από ιστοτόπους.</translation>
 <translation id="6447842834002726250">Cookie</translation>
 <translation id="6527303717912515753">Κοινοποίηση</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Χρησιμοποιείται 1 cookie}other{Χρησιμοποιούνται # cookie}}</translation>
 <translation id="8487700953926739672">Διαθέσιμο εκτός σύνδεσης</translation>
 <translation id="848952951823693243">Να ζητείται πάντα ιστότοπος για κινητά</translation>
+<translation id="8499083585497694743">Κατάργηση σίγασης μικροφώνου</translation>
 <translation id="851751545965956758">Αποκλεισμός ιστοτόπων από τη σύνδεση σε συσκευές</translation>
 <translation id="8525306231823319788">Πλήρης οθόνη</translation>
 <translation id="857943718398505171">Επιτρέπεται (συνιστάται)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb
index d3db8e7..3a5434f 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">To let <ph name="APP_NAME" /> use AR, also turn on camera in <ph name="BEGIN_LINK" />Android settings<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">From <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Location access is off for this device. Turn it on in <ph name="BEGIN_LINK" />Android Settings<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Hang up</translation>
 <translation id="1919345977826869612">Ads</translation>
 <translation id="1919950603503897840">Select contacts</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Leave</translation>
 <translation id="2687403674020088961">Block all cookies (not recommended)</translation>
 <translation id="2704606927547763573">Copied</translation>
+<translation id="2713106313042589954">Turn off camera</translation>
 <translation id="2717722538473713889">Email addresses</translation>
 <translation id="2750481671343847896">Sites can show sign-in prompts from identity services.</translation>
 <translation id="2785051990912111074">This choice will clear cookies for <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Ask first before allowing sites to use your camera (recommended)</translation>
 <translation id="4505788138578415521">URL expanded</translation>
 <translation id="4534723447064627427">To let <ph name="APP_NAME" /> access your microphone, also turn on microphone in <ph name="BEGIN_LINK" />Android settings<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Mute microphone</translation>
 <translation id="4570913071927164677">Details</translation>
 <translation id="4645575059429386691">Managed by your parent</translation>
 <translation id="4670064810192446073">Virtual reality</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Option available near top of the screen</translation>
 <translation id="5197729504361054390">The contacts that you select will be shared with <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Last visited today</translation>
+<translation id="5225463052809312700">Turn on camera</translation>
 <translation id="5264323282659631142">Remove '<ph name="CHIP_LABEL" />'</translation>
 <translation id="528192093759286357">Drag from top and touch the back button to exit full screen.</translation>
 <translation id="5300589172476337783">Show</translation>
@@ -239,6 +243,7 @@
 <translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Block sites from using your virtual reality device and data</translation>
 <translation id="6447842834002726250">Cookies</translation>
+<translation id="6467852467360539617">Clear data and reset permissions</translation>
 <translation id="6527303717912515753">Share</translation>
 <translation id="6545864417968258051">Bluetooth scanning</translation>
 <translation id="6552800053856095716">{PERMISSIONS_SUMMARY_BLOCKED,plural, =1{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> and <ph name="NUM_MORE" /> more blocked}other{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> and <ph name="NUM_MORE" /> more blocked}}</translation>
@@ -278,6 +283,7 @@
 <translation id="7250468141469952378"><ph name="ITEM_COUNT" /> selected</translation>
 <translation id="7260727271532453612"><ph name="PERMISSION_1" /> and <ph name="PERMISSION_2" /> allowed</translation>
 <translation id="7302486331832100261">You usually block notifications. To allow, tap Details.</translation>
+<translation id="7383715096023715447">Settings for <ph name="DOMAIN" /></translation>
 <translation id="7423098979219808738">Ask first</translation>
 <translation id="7423538860840206698">Blocked from reading clipboard</translation>
 <translation id="7425915948813553151">Dark theme for sites</translation>
@@ -337,6 +343,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie in use}other{# cookies in use}}</translation>
 <translation id="8487700953926739672">Available offline</translation>
 <translation id="848952951823693243">Always request mobile site</translation>
+<translation id="8499083585497694743">Unmute microphone</translation>
 <translation id="851751545965956758">Block sites from connecting to devices</translation>
 <translation id="8525306231823319788">Full screen</translation>
 <translation id="857943718398505171">Allowed (recommended)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb
index c1c75762..b6da149 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Para permitir el uso de la RA en <ph name="APP_NAME" />, también debes activar la cámara en la <ph name="BEGIN_LINK" />Configuración de Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">De <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">En este dispositivo, el acceso a la ubicación está desactivado. Actívalo en la <ph name="BEGIN_LINK" />Configuración de Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Colgar</translation>
 <translation id="1919345977826869612">Anuncios</translation>
 <translation id="1919950603503897840">Seleccionar contactos</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Abandonar</translation>
 <translation id="2687403674020088961">Bloquear todas las cookies (opción no recomendada)</translation>
 <translation id="2704606927547763573">Copiado</translation>
+<translation id="2713106313042589954">Desactivar la cámara</translation>
 <translation id="2717722538473713889">Direcciones de correo electrónico</translation>
 <translation id="2750481671343847896">Los sitios pueden mostrarte mensajes de acceso de servicios de identidad.</translation>
 <translation id="2785051990912111074">Esta acción borrará las cookies de <ph name="WEBSITE" />.</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Preguntar primero antes de permitir que los sitios usen tu cámara (recomendado)</translation>
 <translation id="4505788138578415521">URL expandida</translation>
 <translation id="4534723447064627427">Para permitir que <ph name="APP_NAME" /> acceda a tu micrófono, actívalo también en la <ph name="BEGIN_LINK" />Configuración de Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Silenciar micrófono</translation>
 <translation id="4570913071927164677">Detalles</translation>
 <translation id="4645575059429386691">Administrado por tus padres</translation>
 <translation id="4670064810192446073">Realidad virtual</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Esta opción está disponible cerca de la parte superior de la pantalla.</translation>
 <translation id="5197729504361054390">Los contactos que selecciones se compartirán con <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Última visita: hoy</translation>
+<translation id="5225463052809312700">Activar la cámara</translation>
 <translation id="5264323282659631142">Quitar "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Arrastra el dedo desde la parte superior y toca el botón Atrás para salir de la pantalla completa.</translation>
 <translation id="5300589172476337783">Mostrar</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie en uso}other{# cookies en uso}}</translation>
 <translation id="8487700953926739672">Disponible sin conexión</translation>
 <translation id="848952951823693243">Solicitar siempre la versión para dispositivos móviles</translation>
+<translation id="8499083585497694743">Dejar de silenciar el micrófono</translation>
 <translation id="851751545965956758">Impedir que los sitios se conecten a los dispositivos</translation>
 <translation id="8525306231823319788">Pantalla completa</translation>
 <translation id="857943718398505171">Permitido (recomendado)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb
index b6399ec..c86773b 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Para que <ph name="APP_NAME" /> pueda usar la realidad aumentada, activa la cámara también en los <ph name="BEGIN_LINK" />ajustes de Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">De <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">El acceso a la ubicación está desactivado en este dispositivo. Actívalo en los <ph name="BEGIN_LINK" />ajustes de Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Colgar</translation>
 <translation id="1919345977826869612">Anuncios</translation>
 <translation id="1919950603503897840">Seleccionar contactos</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Salir</translation>
 <translation id="2687403674020088961">Bloquear todas las cookies (no recomendado)</translation>
 <translation id="2704606927547763573">Copiado</translation>
+<translation id="2713106313042589954">Desactivar cámara</translation>
 <translation id="2717722538473713889">Direcciones de correo electrónico</translation>
 <translation id="2750481671343847896">Los sitios pueden mostrar solicitudes de inicio de sesión de servicios de identidad.</translation>
 <translation id="2785051990912111074">Se borrarán las cookies de <ph name="WEBSITE" />.</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Preguntar antes de permitir que los sitios utilicen la cámara (recomendado)</translation>
 <translation id="4505788138578415521">URL ampliada</translation>
 <translation id="4534723447064627427">Para que <ph name="APP_NAME" /> pueda acceder al micrófono, actívalo también en los <ph name="BEGIN_LINK" />ajustes de Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Silenciar micrófono</translation>
 <translation id="4570913071927164677">Detalles</translation>
 <translation id="4645575059429386691">Administrado por uno de tus padres</translation>
 <translation id="4670064810192446073">Realidad virtual</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opción disponible cerca de la parte superior de la pantalla</translation>
 <translation id="5197729504361054390">Los contactos que selecciones se compartirán con <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Última visita: hoy</translation>
+<translation id="5225463052809312700">Activar cámara</translation>
 <translation id="5264323282659631142">Quitar "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Arrastra el dedo desde la parte superior y toca el botón de retroceso para salir de la pantalla completa.</translation>
 <translation id="5300589172476337783">Mostrar</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie en uso}other{# cookies en uso}}</translation>
 <translation id="8487700953926739672">Disponible sin conexión</translation>
 <translation id="848952951823693243">Solicitar siempre la vista para móvil</translation>
+<translation id="8499083585497694743">Activar el micrófono</translation>
 <translation id="851751545965956758">No permitir que los sitios se conecten a dispositivos</translation>
 <translation id="8525306231823319788">Pantalla completa</translation>
 <translation id="857943718398505171">Permitido (recomendado)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
index f69acfd..90a8b0c 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Selleks et rakendus <ph name="APP_NAME" /> saaks AR-i kasutada, lülitage sisse kaamera ka <ph name="BEGIN_LINK" />Androidi seadetes<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Allikast <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Juurdepääs asukohale on selle seadme puhul välja lülitatud. Lülitage see sisse <ph name="BEGIN_LINK" />Androidi seadetes<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Lõpeta kõne</translation>
 <translation id="1919345977826869612">Reklaamid</translation>
 <translation id="1919950603503897840">Kontaktide valimine</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Lahku</translation>
 <translation id="2687403674020088961">Blokeeri kõik küpsised (ei ole soovitatav)</translation>
 <translation id="2704606927547763573">Kopeeritud</translation>
+<translation id="2713106313042589954">Lülita kaamera välja</translation>
 <translation id="2717722538473713889">E-posti aadressid</translation>
 <translation id="2750481671343847896">Saidid saavad teile kuvada sisselogimisviipasid isikut tuvastavatest teenusest.</translation>
 <translation id="2785051990912111074">Jätkamisel kustutatakse kõik veebisaidi <ph name="WEBSITE" /> küpsised</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Küsi enne saitidele minu kaamera kasutamiseks juurdepääsu lubamist (soovitatav)</translation>
 <translation id="4505788138578415521">Laiendatud URL</translation>
 <translation id="4534723447064627427">Selleks et anda rakendusele <ph name="APP_NAME" /> juurdepääs teie mikrofonile, lülitage mikrofon sisse ka <ph name="BEGIN_LINK" />Androidi seadetes<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Vaigista mikrofon</translation>
 <translation id="4570913071927164677">Üksikasjad</translation>
 <translation id="4645575059429386691">Vanema hallatud</translation>
 <translation id="4670064810192446073">Virtuaalreaalsus</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Valik on saadaval ekraanikuva ülaosas</translation>
 <translation id="5197729504361054390">Teie valitud kontakte jagatakse saidiga <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Viimati külastati täna</translation>
+<translation id="5225463052809312700">Lülita kaamera sisse</translation>
 <translation id="5264323282659631142">Eemalda „<ph name="CHIP_LABEL" />”</translation>
 <translation id="528192093759286357">Täisekraanilt väljumiseks lohistage ülaservast alla ja puudutage tagasinuppu.</translation>
 <translation id="5300589172476337783">Kuva</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Konkreetse saidi jaoks kolmanda osapoole sisselogimise blokeerimine.</translation>
 <translation id="6388207532828177975">Kustuta ja lähtesta</translation>
 <translation id="6398765197997659313">Välju täisekraanilt</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Blokeeri saitidel virtuaalreaalsuse seadme ja andmete kasutamine</translation>
 <translation id="6447842834002726250">Küpsised</translation>
 <translation id="6527303717912515753">Jaga</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 küpsisefail on kasutuses}other{# küpsisefaili on kasutuses}}</translation>
 <translation id="8487700953926739672">Võrguühenduseta saadaval</translation>
 <translation id="848952951823693243">Alati taotletakse mobiilisaiti</translation>
+<translation id="8499083585497694743">Tühista mikrofoni vaigistus</translation>
 <translation id="851751545965956758">Blokeeri saitidel seadmetega ühenduse loomine</translation>
 <translation id="8525306231823319788">Täisekraan</translation>
 <translation id="857943718398505171">Lubatud (soovitatav)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb
index f6ca9322..53e5d84 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> aplikazioari errealitate areagotua erabiltzeko baimena emateko, kamera atzitzeko baimena aktibatu behar duzu <ph name="BEGIN_LINK" />Android-en ezarpenetan<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Iturburua: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Kokapenerako sarbidea desaktibatuta dago gailuan. Aktiba ezazu <ph name="BEGIN_LINK" />Android-en ezarpenetan<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Amaitu deia</translation>
 <translation id="1919345977826869612">Iragarkiak</translation>
 <translation id="1919950603503897840">Hautatu kontaktuak</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Irten</translation>
 <translation id="2687403674020088961">Blokeatu cookie guztiak (ez da gomendatzen)</translation>
 <translation id="2704606927547763573">Kopiatuta</translation>
+<translation id="2713106313042589954">Desaktibatu kamera</translation>
 <translation id="2717722538473713889">Helbide elektronikoak</translation>
 <translation id="2750481671343847896">Identitate-zerbitzuek saioa hasteko bidalitako onarpen-mezuak blokea ditzakete webguneek.</translation>
 <translation id="2785051990912111074"><ph name="WEBSITE" /> webgunearen cookieak ezabatuko dira</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Webguneei kamera erabiltzeko baimena eman aurretik, eskatu onespena (gomendatua)</translation>
 <translation id="4505788138578415521">URLa zabalduta dago</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> aplikazioari mikrofonoa atzitzeko baimena emateko, mikrofonoa atzitzeko baimena aktibatu behar duzu <ph name="BEGIN_LINK" />Android-en ezarpenetan<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Desaktibatu mikrofonoa</translation>
 <translation id="4570913071927164677">Xehetasunak</translation>
 <translation id="4645575059429386691">Gurasoek kudeatuta</translation>
 <translation id="4670064810192446073">Errealitate birtuala</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Aukera pantailaren goialdean dago</translation>
 <translation id="5197729504361054390">Hautatzen dituzun kontaktuak <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> webgunearekin partekatuko dira.</translation>
 <translation id="5216942107514965959">Gaur bisitatu duzu azkenengoz</translation>
+<translation id="5225463052809312700">Aktibatu kamera</translation>
 <translation id="5264323282659631142">Kendu "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Pantaila osoko ikuspegitik irteteko, arrastatu goitik eta ukitu Atzera botoia.</translation>
 <translation id="5300589172476337783">Erakutsi</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Blokeatu webgune jakin batean saioa hasteko aukera hirugarrenei.</translation>
 <translation id="6388207532828177975">Garbitu eta berrezarri</translation>
 <translation id="6398765197997659313">Irten pantaila osoko modutik</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Ez utzi webguneei errealitate birtualeko gailuak eta datuak erabiltzen</translation>
 <translation id="6447842834002726250">Cookieak</translation>
 <translation id="6527303717912515753">Partekatu</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Erabiltzen den 1 cookie}other{Erabiltzen diren # cookie}}</translation>
 <translation id="8487700953926739672">Konexiorik gabe erabilgarri</translation>
 <translation id="848952951823693243">Eskatu beti mugikorretarako webgunea</translation>
+<translation id="8499083585497694743">Aktibatu mikrofonoa</translation>
 <translation id="851751545965956758">Ez utzi webguneei gailuekin konektatzen</translation>
 <translation id="8525306231823319788">Pantaila osoa</translation>
 <translation id="857943718398505171">Baimenduta (gomendatua)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb
index 6cb5fb6..f8f35445 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">‏برای اینکه به <ph name="APP_NAME" /> اجازه دهید از AR استفاده کند، دوربین را در <ph name="BEGIN_LINK" />تنظیمات Android<ph name="END_LINK" /> نیز روشن کنید.</translation>
 <translation id="1864927262126810325">از <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">‏دسترسی به مکان برای این دستگاه خاموش است. آن را در <ph name="BEGIN_LINK" />تنظیمات Android<ph name="END_LINK" /> روشن کنید.</translation>
+<translation id="1915307458270490472">قطع تماس</translation>
 <translation id="1919345977826869612">آگهی‌ها</translation>
 <translation id="1919950603503897840">انتخاب مخاطبین</translation>
 <translation id="1923695749281512248">‎<ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" />‎</translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">خروج</translation>
 <translation id="2687403674020088961">مسدود کردن همه کوکی‌ها (توصیه نمی‌شود)</translation>
 <translation id="2704606927547763573">کپی شد</translation>
+<translation id="2713106313042589954">خاموش کردن دوربین</translation>
 <translation id="2717722538473713889">آدرس‌های ایمیل</translation>
 <translation id="2750481671343847896">سایت‌ها می‌توانند پیام‌واره‌های ورود به سیستم سرویس‌های تعیین هویت را نشان دهند.</translation>
 <translation id="2785051990912111074">این گزینه کوکی‌ها را برای <ph name="WEBSITE" /> پاک خواهد کرد</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">قبل از اجازه به سایت‌ها برای استفاده از دوربین، ابتدا سؤال شود (توصیه می‌شود)</translation>
 <translation id="4505788138578415521">نشانی وب گسترده شد</translation>
 <translation id="4534723447064627427">‏برای اینکه به <ph name="APP_NAME" /> اجازه دهید به میکروفون دسترسی پیدا کند، میکروفون را در <ph name="BEGIN_LINK" />تنظیمات Android<ph name="END_LINK" /> نیز روشن کنید.</translation>
+<translation id="4566417217121906555">بی‌صدا کردن میکروفون</translation>
 <translation id="4570913071927164677">جزئیات</translation>
 <translation id="4645575059429386691">مدیریت شده توسط والدین شما</translation>
 <translation id="4670064810192446073">واقعیت مجازی</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">گزینه مربوطه در نزدیکی بالای صفحه دردسترس است</translation>
 <translation id="5197729504361054390">مخاطبین انتخابی شما با <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> هم‌رسانی می‌شود.</translation>
 <translation id="5216942107514965959">آخرین بازدید: امروز</translation>
+<translation id="5225463052809312700">روشن کردن دوربین</translation>
 <translation id="5264323282659631142">برداشتن «<ph name="CHIP_LABEL" />»</translation>
 <translation id="528192093759286357">برای خروج از حالت تمام صفحه، از بالا صفحه را بکشید و دکمه برگشت را لمس کنید.</translation>
 <translation id="5300589172476337783">نمایش</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{۱ کوکی درحال استفاده است}one{# کوکی درحال استفاده است}other{# کوکی درحال استفاده است}}</translation>
 <translation id="8487700953926739672">امکان دسترسی به صورت آفلاین</translation>
 <translation id="848952951823693243">همیشه سایت ویژه تلفن همراه درخواست شود</translation>
+<translation id="8499083585497694743">باصدا کردن میکروفون</translation>
 <translation id="851751545965956758">مسدود کردن سایت‌ها برای اتصال به دستگاه‌ها</translation>
 <translation id="8525306231823319788">تمام صفحه</translation>
 <translation id="857943718398505171">مجاز (توصیه می‌شود)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb
index b1364409..23493ed 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Laita kamera päälle myös <ph name="BEGIN_LINK" />Androidin asetuksista<ph name="END_LINK" />, jotta <ph name="APP_NAME" /> voi käyttää AR:ää.</translation>
 <translation id="1864927262126810325">Lähde: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Sijainti on pois päältä tällä laitteella. Voit laittaa sen päälle <ph name="BEGIN_LINK" />Android-asetuksista<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Katkaise puhelu</translation>
 <translation id="1919345977826869612">Mainokset</translation>
 <translation id="1919950603503897840">Valitse kontaktit</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Poistu</translation>
 <translation id="2687403674020088961">Estä kaikki evästeet (ei suositella)</translation>
 <translation id="2704606927547763573">Kopioitu</translation>
+<translation id="2713106313042589954">Sammuta kamera</translation>
 <translation id="2717722538473713889">Sähköpostiosoitteet</translation>
 <translation id="2750481671343847896">Sivustot voivat näyttää henkilöllisyyspalveluiden sisäänkirjautumiskehotteita.</translation>
 <translation id="2785051990912111074">Valinta tyhjentää evästeet osoitteessa <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Pyydä lupaa, kun sivustot yrittävät käyttää kameraasi (suositus).</translation>
 <translation id="4505788138578415521">URL näkyy laajennettuna</translation>
 <translation id="4534723447064627427">Laita mikrofoni päälle myös <ph name="BEGIN_LINK" />Androidin asetuksista<ph name="END_LINK" />, jotta <ph name="APP_NAME" /> saa pääsyn mikrofoniisi.</translation>
+<translation id="4566417217121906555">Mykistä mikrofoni</translation>
 <translation id="4570913071927164677">Tiedot</translation>
 <translation id="4645575059429386691">Vanhempasi hallinnoima</translation>
 <translation id="4670064810192446073">Virtuaalitodellisuus</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Toiminto on käytettävissä näytön yläosassa</translation>
 <translation id="5197729504361054390"><ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> saa valitsemasi yhteystiedot.</translation>
 <translation id="5216942107514965959">Viimeksi avattu tänään</translation>
+<translation id="5225463052809312700">Käynnistä kamera</translation>
 <translation id="5264323282659631142">Poista <ph name="CHIP_LABEL" /></translation>
 <translation id="528192093759286357">Poistu koko näytön tilasta vetämällä näytön yläreunasta ja koskettamalla Takaisin-painiketta.</translation>
 <translation id="5300589172476337783">Näytä</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Estä kolmannen osapuolen sisäänkirjautuminen tietylle sivustolle.</translation>
 <translation id="6388207532828177975">Tyhjennä ja nollaa</translation>
 <translation id="6398765197997659313">Poistu koko näytön tilasta</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Estä sivustoja käyttämästä virtuaalitodellisuuslaitteitasi ja ‑dataasi</translation>
 <translation id="6447842834002726250">Evästeet</translation>
 <translation id="6527303717912515753">Jaa</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 eväste käytössä}other{# evästettä käytössä}}</translation>
 <translation id="8487700953926739672">Käytettävissä offline-tilassa</translation>
 <translation id="848952951823693243">Pyydä aina mobiilisivustoa</translation>
+<translation id="8499083585497694743">Poista mikrofonin mykistys</translation>
 <translation id="851751545965956758">Estä sivustoja yhdistämästä laitteisiin</translation>
 <translation id="8525306231823319788">Koko näyttö</translation>
 <translation id="857943718398505171">Sallittu (suositus)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb
index 4480dfa..001cbdd 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Para payagan ang <ph name="APP_NAME" /> na gumamit ng AR, i-on din ang camera sa <ph name="BEGIN_LINK" />Mga Setting ng Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Mula sa <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Naka-off ang access sa lokasyon para sa device na ito. I-on ito sa <ph name="BEGIN_LINK" />Mga Setting ng Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Ibaba</translation>
 <translation id="1919345977826869612">Mga Ad</translation>
 <translation id="1919950603503897840">Pumili ng mga contact</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Umalis</translation>
 <translation id="2687403674020088961">I-block ang lahat ng cookies (hindi inirerekomenda)</translation>
 <translation id="2704606927547763573">Kinopya</translation>
+<translation id="2713106313042589954">I-off ang camera</translation>
 <translation id="2717722538473713889">Mga email address</translation>
 <translation id="2750481671343847896">Puwedeng magpakita ang mga site ng mga prompt sa pag-sign in mula sa mga serbisyo ng pagkakakilanlan.</translation>
 <translation id="2785051990912111074">Iki-clear ng opsyong ito ang cookies para sa <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Magtanong muna bago payagan ang mga site na gamitin ang iyong camera (inirerekomenda)</translation>
 <translation id="4505788138578415521">Na-expand ang URL</translation>
 <translation id="4534723447064627427">Para payagan ang <ph name="APP_NAME" /> na i-access ang iyong mikropono, i-on din ang mikropono sa <ph name="BEGIN_LINK" />Mga Setting ng Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">I-mute ang mikropono</translation>
 <translation id="4570913071927164677">Mga Detalye</translation>
 <translation id="4645575059429386691">Pinamamahalaan ng iyong magulang</translation>
 <translation id="4670064810192446073">Virtual reality</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Available ang opsyon malapit sa bandang itaas ng screen</translation>
 <translation id="5197729504361054390">Ibabahagi sa <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> ang mga contact na pipiliin mo.</translation>
 <translation id="5216942107514965959">Huling binisita ngayong araw</translation>
+<translation id="5225463052809312700">I-on ang camera</translation>
 <translation id="5264323282659631142">Alisin ang '<ph name="CHIP_LABEL" />'</translation>
 <translation id="528192093759286357">I-drag mula sa itaas at pindutin ang button na bumalik upang lumabas sa full screen.</translation>
 <translation id="5300589172476337783">Ipakita</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie ang ginagamit}one{# cookie ang ginagamit}other{# na cookie ang ginagamit}}</translation>
 <translation id="8487700953926739672">Available sa offline</translation>
 <translation id="848952951823693243">Palaging hilingin ang pang-mobile na site</translation>
+<translation id="8499083585497694743">I-unmute ang mikropono</translation>
 <translation id="851751545965956758">I-block ang mga site sa pagkonekta sa mga device</translation>
 <translation id="8525306231823319788">Buong screen</translation>
 <translation id="857943718398505171">Pinapayagan (inirerekomenda)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb
index 911bfdbf..ee2e99d 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Pour autoriser <ph name="APP_NAME" /> à utiliser la RA, activez aussi l'accès à l'appareil photo dans les <ph name="BEGIN_LINK" />paramètres d'Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">De <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">L'accès à la localisation est désactivé pour cet appareil. Activez-le dans les <ph name="BEGIN_LINK" />paramètres Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Raccrocher</translation>
 <translation id="1919345977826869612">Annonces</translation>
 <translation id="1919950603503897840">Sélectionner des contacts</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Quitter</translation>
 <translation id="2687403674020088961">Bloquer tous les témoins (non recommandé)</translation>
 <translation id="2704606927547763573">Copié</translation>
+<translation id="2713106313042589954">Désactiver la caméra</translation>
 <translation id="2717722538473713889">Adresses de courriel</translation>
 <translation id="2750481671343847896">Les sites peuvent afficher des invites de connexion provenant de services de vérification d'identité.</translation>
 <translation id="2785051990912111074">Ce choix effacera les témoins du site <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Demander avant d'autoriser des sites à utiliser votre caméra (recommandé)</translation>
 <translation id="4505788138578415521">URL développée</translation>
 <translation id="4534723447064627427">Pour autoriser <ph name="APP_NAME" /> à accéder à votre microphone, vous devez aussi activer le microphone dans les <ph name="BEGIN_LINK" />paramètres d'Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Désactiver le microphone</translation>
 <translation id="4570913071927164677">Détails</translation>
 <translation id="4645575059429386691">Géré par l’un de tes parents</translation>
 <translation id="4670064810192446073">Réalité virtuelle</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Option accessible près du haut de l'écran</translation>
 <translation id="5197729504361054390">Les contacts que vous sélectionnez seront partagés avec <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Dernière visite : aujourd'hui</translation>
+<translation id="5225463052809312700">Activer l'appareil photo</translation>
 <translation id="5264323282659631142">Retirer « <ph name="CHIP_LABEL" /> »</translation>
 <translation id="528192093759286357">Faites glisser du haut vers le bas et appuyez sur le bouton de retour pour quitter le mode plein écran.</translation>
 <translation id="5300589172476337783">Afficher</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 témoin en cours d'utilisation}one{# témoin en cours d'utilisation}other{# témoins en cours d'utilisation}}</translation>
 <translation id="8487700953926739672">Offert en ligne</translation>
 <translation id="848952951823693243">Toujours demander le site pour appareils mobiles</translation>
+<translation id="8499083585497694743">Réactiver le microphone</translation>
 <translation id="851751545965956758">Empêcher les sites de se connecter à des appareils</translation>
 <translation id="8525306231823319788">Plein écran</translation>
 <translation id="857943718398505171">Autorisée (recommandé)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb
index 5725b30..3ede780 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Pour autoriser <ph name="APP_NAME" /> à utiliser la RA, activez également l'appareil photo dans les <ph name="BEGIN_LINK" />paramètres Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Source : <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">L'accès à la position est désactivé pour cet appareil. Activez-le dans les <ph name="BEGIN_LINK" />paramètres Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Raccrocher</translation>
 <translation id="1919345977826869612">Annonces</translation>
 <translation id="1919950603503897840">Sélectionner des contacts</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Quitter</translation>
 <translation id="2687403674020088961">Bloquer tous les cookies (non recommandé)</translation>
 <translation id="2704606927547763573">Copié</translation>
+<translation id="2713106313042589954">Désactiver la caméra</translation>
 <translation id="2717722538473713889">Adresses e-mail</translation>
 <translation id="2750481671343847896">Les sites peuvent afficher les invites de connexion des services d'identité.</translation>
 <translation id="2785051990912111074">Cette action supprimera les cookies de <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Demander avant d'autoriser des sites à utiliser ma caméra (recommandé)</translation>
 <translation id="4505788138578415521">URL étendue</translation>
 <translation id="4534723447064627427">Pour autoriser <ph name="APP_NAME" /> à accéder au micro, activez également celui-ci dans les <ph name="BEGIN_LINK" />paramètres Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Désactiver le micro</translation>
 <translation id="4570913071927164677">Détails</translation>
 <translation id="4645575059429386691">Géré par ton papa/ta maman</translation>
 <translation id="4670064810192446073">Réalité virtuelle</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Cette option est disponible en haut de l'écran</translation>
 <translation id="5197729504361054390">Les contacts que vous sélectionnez seront partagés avec <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Dernière visite : aujourd'hui</translation>
+<translation id="5225463052809312700">Activer la caméra</translation>
 <translation id="5264323282659631142">Supprimer "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Pour quitter le mode plein écran, faites glisser un doigt du haut vers le bas, puis appuyez sur le bouton Retour.</translation>
 <translation id="5300589172476337783">Afficher</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie est actuellement utilisé}one{# cookie est actuellement utilisé}other{# cookies sont actuellement utilisés}}</translation>
 <translation id="8487700953926739672">Disponible hors connexion</translation>
 <translation id="848952951823693243">Toujours demander la version mobile du site</translation>
+<translation id="8499083585497694743">Réactiver le micro</translation>
 <translation id="851751545965956758">Interdire à tous les sites de se connecter à des appareils</translation>
 <translation id="8525306231823319788">Plein écran</translation>
 <translation id="857943718398505171">Autorisé (recommandé)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb
index 275c512..e11618b 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Para permitir que <ph name="APP_NAME" /> utilice a realidade aumentada, tamén debes activar a cámara en <ph name="BEGIN_LINK" />Configuración de Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">De <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">O acceso á localización está desactivado neste dispositivo. Actívao na <ph name="BEGIN_LINK" />configuración de Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Deter</translation>
 <translation id="1919345977826869612">Anuncios</translation>
 <translation id="1919950603503897840">Seleccionar contactos</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Saír</translation>
 <translation id="2687403674020088961">Bloquear todas as cookies (non recomendado)</translation>
 <translation id="2704606927547763573">Copiada</translation>
+<translation id="2713106313042589954">Apagar cámara</translation>
 <translation id="2717722538473713889">Enderezos de correo electrónico</translation>
 <translation id="2750481671343847896">Os sitios poden mostrar solicitudes de inicio de sesión dos servizos de identidade.</translation>
 <translation id="2785051990912111074">Esta opción borrará as cookies de <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Pregunta antes de permitir que os sitios utilicen a túa cámara (recomendado)</translation>
 <translation id="4505788138578415521">URL despregado</translation>
 <translation id="4534723447064627427">Para permitir que <ph name="APP_NAME" /> acceda ao micrófono, actívao tamén en <ph name="BEGIN_LINK" />Configuración de Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Silenciar micrófono</translation>
 <translation id="4570913071927164677">Detalles</translation>
 <translation id="4645575059429386691">Xestionado por teus pais</translation>
 <translation id="4670064810192446073">Realidade virtual</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opción dispoñible preto da parte superior da pantalla</translation>
 <translation id="5197729504361054390">Os contactos que selecciones compartiranse con <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Visitouse hoxe por última vez</translation>
+<translation id="5225463052809312700">Acender cámara</translation>
 <translation id="5264323282659631142">Quitar <ph name="CHIP_LABEL" /></translation>
 <translation id="528192093759286357">Arrastra desde a parte superior e toca o botón Volver para saír da pantalla completa.</translation>
 <translation id="5300589172476337783">Mostrar</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie en uso}other{# cookies en uso}}</translation>
 <translation id="8487700953926739672">Dispoñible sen conexión</translation>
 <translation id="848952951823693243">Solicitar sempre o sitio para móbiles</translation>
+<translation id="8499083585497694743">Activar son do micro</translation>
 <translation id="851751545965956758">Non permitir que os sitios se conecten aos dispositivos</translation>
 <translation id="8525306231823319788">Pantalla completa</translation>
 <translation id="857943718398505171">Permitido (recomendado)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb
index e6acca4f..629074c3 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" />ને ARનો વપરાશ કરવા દેવા માટે, <ph name="BEGIN_LINK" />Android સેટિંગ<ph name="END_LINK" />માંથી પણ કૅમેરા ચાલુ કરો.</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> પરથી</translation>
 <translation id="1887786770086287077">આ ઉપકરણ માટે સ્થાન ઍક્સેસ બંધ છે. તેને <ph name="BEGIN_LINK" />Android સેટિંગ<ph name="END_LINK" />માં ચાલુ કરો.</translation>
+<translation id="1915307458270490472">સમાપ્ત કરો</translation>
 <translation id="1919345977826869612">જાહેરાતો</translation>
 <translation id="1919950603503897840">સંપર્કો પસંદ કરો</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">છોડો</translation>
 <translation id="2687403674020088961">બધી કુકીને બ્લૉક કરો (સુઝાવ આપતા નથી)</translation>
 <translation id="2704606927547763573">કૉપિ કર્યું</translation>
+<translation id="2713106313042589954">કૅમેરા બંધ કરો</translation>
 <translation id="2717722538473713889">ઇમેઇલ ઍડ્રેસ</translation>
 <translation id="2750481671343847896">સાઇટ ઓળખ સેવાઓના સાઇન ઇન કરવાના સંકેતો બતાવી શકે છે.</translation>
 <translation id="2785051990912111074">આ પસંદગી <ph name="WEBSITE" /> માટે કુકીને સાફ કરશે</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">સાઇટને તમારા કૅમેરાના ઉપયોગની મંજૂરી આપતાં પહેલાં પૂછો (સુઝાવ આપીએ છીએ)</translation>
 <translation id="4505788138578415521">URL મોટી કરી છે</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> તમારું માઇક્રોફોન ઍક્સેસ કરી શકે તે માટે <ph name="BEGIN_LINK" />Android સેટિંગ<ph name="END_LINK" />માં પણ માઇક્રોફોન ચાલુ કરો.</translation>
+<translation id="4566417217121906555">માઇક્રોફોન મ્યૂટ કરો</translation>
 <translation id="4570913071927164677">વિગતો</translation>
 <translation id="4645575059429386691">તમારા માતાપિતા દ્વારા મેનેજ થયેલ</translation>
 <translation id="4670064810192446073">વર્ચ્યુઅલ રિયાલિટી</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">સ્ક્રીનની ટોચની નજીક વિકલ્પ ઉપલબ્ધ છે</translation>
 <translation id="5197729504361054390">તમે પસંદ કરશો તે સંપર્કોને <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> સાથે શેર કરવામાં આવશે.</translation>
 <translation id="5216942107514965959">છેલ્લે આજે મુલાકાત લીધી</translation>
+<translation id="5225463052809312700">કૅમેરા ચાલુ કરો</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />'ને કાઢી નાખો</translation>
 <translation id="528192093759286357">પૂર્ણસ્ક્રીનથી બહાર નીકળવા માટે ઉપરથી ખેંચો અને પાછળ બટનને ટચ કરો.</translation>
 <translation id="5300589172476337783">બતાવો</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">ચોક્કસ સાઇટ માટે ત્રીજા પક્ષ દ્વારા સાઇન-ઇનને બ્લૉક કરો.</translation>
 <translation id="6388207532828177975">સાફ કરો અને ફરીથી સેટ કરો</translation>
 <translation id="6398765197997659313">પૂર્ણ સ્ક્રીનથી બહાર નીકળો</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">સાઇટને તમારું વર્ચ્યુઅલ રિયાલિટી ડિવાઇસ અને ડેટાનો ઉપયોગ કરવાથી બ્લૉક કરો</translation>
 <translation id="6447842834002726250">કૂકીઝ</translation>
 <translation id="6527303717912515753">શેર કરો</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{વપરાશમાંની 1 કુકી}one{વપરાશમાંની # કુકી}other{વપરાશમાંની # કુકી}}</translation>
 <translation id="8487700953926739672">ઑફલાઇન ઉપલબ્ધ</translation>
 <translation id="848952951823693243">હંમેશાં મોબાઇલ સાઇટની વિનંતી કરો</translation>
+<translation id="8499083585497694743">માઇક્રોફોન અનમ્યૂટ કરો</translation>
 <translation id="851751545965956758">સાઇટને ડિવાઇસ સાથે કનેક્ટ થવાથી બ્લૉક કરો</translation>
 <translation id="8525306231823319788">પૂર્ણ સ્ક્રીન</translation>
 <translation id="857943718398505171">મંજૂર (ભલામણ કરેલ)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb
index 91aa9c0..b5343bc1 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> को एआर (ऑगमेंटेड रिएलिटी) का इस्तेमाल करने देने के लिए, <ph name="BEGIN_LINK" />Android की सेटिंग<ph name="END_LINK" /> में जाकर भी कैमरा चालू करें.</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> से</translation>
 <translation id="1887786770086287077">इस डिवाइस के लिए जगह की जानकारी का एक्सेस बंद है. उसे <ph name="BEGIN_LINK" />Android सेटिंग<ph name="END_LINK" /> में चालू करें.</translation>
+<translation id="1915307458270490472">कॉल खत्म करें</translation>
 <translation id="1919345977826869612">विज्ञापन</translation>
 <translation id="1919950603503897840">संपर्कों को चुनें</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">छोड़ें</translation>
 <translation id="2687403674020088961">सभी कुकी ब्लॉक करें (हम ऐसा करने का सुझाव नहीं देते)</translation>
 <translation id="2704606927547763573">कॉपी किया गया</translation>
+<translation id="2713106313042589954">कैमरा बंद करें</translation>
 <translation id="2717722538473713889">ईमेल पते</translation>
 <translation id="2750481671343847896">साइटें, पहचान करने वाली सेवा से जुड़े, साइन इन करने के अनुरोध दिखा सकती हैं.</translation>
 <translation id="2785051990912111074">यह विकल्प <ph name="WEBSITE" /> के लिए कुकी मिटाएगा</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">साइटों को अपने कैमरे का इस्तेमाल करने देने से पहले अनुमति लेना ज़रूरी बनाएं (सुझाया गया )</translation>
 <translation id="4505788138578415521">यूआरएल बड़ा हो गया</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> को माइक्रोफ़ोन का ऐक्सेस देने के लिए, <ph name="BEGIN_LINK" />Android की सेटिंग<ph name="END_LINK" /> में जाकर भी माइक्रोफ़ोन चालू करें.</translation>
+<translation id="4566417217121906555">माइक्रोफ़ोन को म्यूट करें</translation>
 <translation id="4570913071927164677">विवरण</translation>
 <translation id="4645575059429386691">आपके अभिभावक द्वारा प्रबंधित</translation>
 <translation id="4670064810192446073">वर्चुअल रिएलिटी</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">यह विकल्प, स्क्रीन के सबसे ऊपरी हिस्से में उपलब्ध है</translation>
 <translation id="5197729504361054390">आप जो संपर्क चुनेंगे उन्हें <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> के साथ शेयर किया जाएगा.</translation>
 <translation id="5216942107514965959">साइट पर पिछली बार आज गए</translation>
+<translation id="5225463052809312700">कैमरा चालू करें</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />' हटाएं</translation>
 <translation id="528192093759286357">फ़ुल स्क्रीन से बाहर निकलने के लिए ऊपर से खींचें और वापस जाएं स्पर्श करें.</translation>
 <translation id="5300589172476337783">दिखाएं</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 कुकी इस्तेमाल की जा रही है}one{# कुकी इस्तेमाल की जा रही है}other{# कुकी इस्तेमाल की जा रही हैं}}</translation>
 <translation id="8487700953926739672">ऑफ़लाइन उपलब्ध है</translation>
 <translation id="848952951823693243">हमेशा साइट के मोबाइल व्यू का अनुरोध करें</translation>
+<translation id="8499083585497694743">माइक्रोफ़ोन को अनम्यूट करें</translation>
 <translation id="851751545965956758">साइटों को डिवाइस से कनेक्ट होने से रोकें</translation>
 <translation id="8525306231823319788">फ़ुल स्‍क्रीन</translation>
 <translation id="857943718398505171">अनुमति दी गई (सुझाया गया)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb
index d26dc2d..833cf284 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Da bi aplikacija <ph name="APP_NAME" /> mogla koristiti proširenu stvarnost, uključite kameru i u <ph name="BEGIN_LINK" />Androidovim postavkama<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Izvor: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Pristup lokaciji isključen je za ovaj uređaj. Uključite ga u <ph name="BEGIN_LINK" />postavkama Androida<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Prekini vezu</translation>
 <translation id="1919345977826869612">Oglasi</translation>
 <translation id="1919950603503897840">Odabir kontakata</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Napusti</translation>
 <translation id="2687403674020088961">Blokiranje svih kolačića (ne preporučuje se)</translation>
 <translation id="2704606927547763573">Kopirano</translation>
+<translation id="2713106313042589954">Isključi kameru</translation>
 <translation id="2717722538473713889">E-adrese</translation>
 <translation id="2750481671343847896">Web-lokacije mogu prikazivati upite za prijavu usluga za identitet.</translation>
 <translation id="2785051990912111074">Izbrisat će se kolačići za web-lokaciju <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Web-lokacije moraju tražiti dopuštenje za pristup kameri (preporučeno)</translation>
 <translation id="4505788138578415521">URL je proširen</translation>
 <translation id="4534723447064627427">Da bi aplikacija <ph name="APP_NAME" /> mogla pristupiti vašem mikrofonu, uključite mikrofon i u <ph name="BEGIN_LINK" />Androidovim postavkama<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Isključi mikrofon</translation>
 <translation id="4570913071927164677">Pojedinosti</translation>
 <translation id="4645575059429386691">Upravlja tvoj roditelj</translation>
 <translation id="4670064810192446073">Virtualna stvarnost</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opcija je dostupna pri vrhu zaslona</translation>
 <translation id="5197729504361054390">Kontakti koje odaberete podijelit će se s web-lokacijom <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Posljednji posjet bio je danas</translation>
+<translation id="5225463052809312700">Uključi fotoaparat</translation>
 <translation id="5264323282659631142">Ukloni '<ph name="CHIP_LABEL" />'</translation>
 <translation id="528192093759286357">Povucite od vrha zaslona i dodirnite gumb Natrag da biste zatvorili prikaz na cijelom zaslonu.</translation>
 <translation id="5300589172476337783">Prikaži</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Koristi se jedan kolačić}one{Koristi se # kolačić}few{Koriste se # kolačića}other{Koristi se # kolačića}}</translation>
 <translation id="8487700953926739672">Dostupno izvanmrežno</translation>
 <translation id="848952951823693243">Uvijek zahtijevaj web-lokaciju za mobilne uređaje</translation>
+<translation id="8499083585497694743">Uključi mikrofon</translation>
 <translation id="851751545965956758">Blokiraj povezivanje web-lokacija s uređajima</translation>
 <translation id="8525306231823319788">Cijeli zaslon</translation>
 <translation id="857943718398505171">Dopušteno (preporučeno)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb
index 2a0844f..2d135fec 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Ahhoz, hogy a(z) <ph name="APP_NAME" /> használhassa az AR-t, a kamerát az <ph name="BEGIN_LINK" />Android-beállítások<ph name="END_LINK" /> között is be kell kapcsolni.</translation>
 <translation id="1864927262126810325">Forrás: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">A helyhozzáférés ki van kapcsolva ennél az eszköznél. A funkciót az <ph name="BEGIN_LINK" />Android-beállításokban<ph name="END_LINK" /> tudja bekapcsolni.</translation>
+<translation id="1915307458270490472">Hívás befejezése</translation>
 <translation id="1919345977826869612">Hirdetések</translation>
 <translation id="1919950603503897840">Névjegyek kiválasztása</translation>
 <translation id="1923695749281512248"><ph name="FILE_SIZE_WITH_UNITS" /> / <ph name="BYTES_DOWNLOADED_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Lap elhagyása</translation>
 <translation id="2687403674020088961">Az összes cookie letiltása (nem ajánlott)</translation>
 <translation id="2704606927547763573">Másolt</translation>
+<translation id="2713106313042589954">Kamera kikapcsolása</translation>
 <translation id="2717722538473713889">E-mail-címek</translation>
 <translation id="2750481671343847896">A webhelyek megjeleníthetnek identitásszolgáltatásoktól származó bejelentkezési értesítéseket.</translation>
 <translation id="2785051990912111074">Ezzel törli a(z) <ph name="WEBSITE" /> webhelyhez tartozó cookie-kat.</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Kérdezzen rá, mielőtt engedélyezné a webhelyek számára a kamera használatát (ajánlott)</translation>
 <translation id="4505788138578415521">URL kibontva</translation>
 <translation id="4534723447064627427">Ahhoz, hogy a(z) <ph name="APP_NAME" /> hozzáférhessen a mikrofonhoz, a mikrofont az <ph name="BEGIN_LINK" />Android-beállítások<ph name="END_LINK" /> között is be kell kapcsolni.</translation>
+<translation id="4566417217121906555">Mikrofon némítása</translation>
 <translation id="4570913071927164677">Részletek</translation>
 <translation id="4645575059429386691">A szülő kezeli</translation>
 <translation id="4670064810192446073">Virtuális valóság</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">A lehetőség a képernyő tetején található</translation>
 <translation id="5197729504361054390">A kiválasztott névjegyeket megosztjuk a következő webhellyel: <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Utolsó látogatás: ma</translation>
+<translation id="5225463052809312700">Kamera bekapcsolása</translation>
 <translation id="5264323282659631142">„<ph name="CHIP_LABEL" />“ eltávolítása</translation>
 <translation id="528192093759286357">A teljes képernyős megjelenítésből való kilépéshez húzza le felülről, majd koppintson a vissza gombra.</translation>
 <translation id="5300589172476337783">Megjelenítés</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie van használatban}other{# cookie van használatban}}</translation>
 <translation id="8487700953926739672">Offline elérhető</translation>
 <translation id="848952951823693243">Mindig a mobilwebhely kérése</translation>
+<translation id="8499083585497694743">Mikrofon némításának feloldása</translation>
 <translation id="851751545965956758">Az eszközökhöz való csatlakozás megtiltása a webhelyeknek</translation>
 <translation id="8525306231823319788">Teljes képernyő</translation>
 <translation id="857943718398505171">Engedélyezve (ajánlott)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb
index fc7d000..3ba2d72 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" />-ին AR ռեժիմն օգտագործելու թույլտվություն տալու համար միացրեք նաև տեսախցիկը <ph name="BEGIN_LINK" />Android-ի կարգավորումներում<ph name="END_LINK" />։</translation>
 <translation id="1864927262126810325">Աղբյուրը՝ <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Սարքի տեղորոշումն անջատված է: Միացրեք այն <ph name="BEGIN_LINK" />Android-ի կարգավորումներում<ph name="END_LINK" />:</translation>
+<translation id="1915307458270490472">Փակել</translation>
 <translation id="1919345977826869612">Գովազդ</translation>
 <translation id="1919950603503897840">Ընտրեք կոնտակտներ</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Դուրս գալ էջից</translation>
 <translation id="2687403674020088961">Արգելափակել բոլոր քուքիները (խորհուրդ չի տրվում)</translation>
 <translation id="2704606927547763573">Պատճենվեց</translation>
+<translation id="2713106313042589954">Անջատել տեսախցիկը</translation>
 <translation id="2717722538473713889">Էլ․ հասցեներ</translation>
 <translation id="2750481671343847896">Կայքերը կարող են ցույց տալ նույնականացման ծառայությունների մուտքի հարցումներ։</translation>
 <translation id="2785051990912111074">Այս կայքի (<ph name="WEBSITE" />) քուքիները կջնջվեն</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Հարցնել նախքան ձեր տեսախցիկը կայքերին հասանելի դարձնելը (խորհուրդ է տրվում)</translation>
 <translation id="4505788138578415521">URL-ը ծավալվել է</translation>
 <translation id="4534723447064627427">Որպեսզի խոսափողը հասանելի դառնա <ph name="APP_NAME" />-ին, միացրեք այն <ph name="BEGIN_LINK" />Android-ի կարգավորումներում<ph name="END_LINK" />։</translation>
+<translation id="4566417217121906555">Անջատել խոսափողը</translation>
 <translation id="4570913071927164677">Մանրամասներ</translation>
 <translation id="4645575059429386691">Կառավարվում է ձեր ծնողի կողմից</translation>
 <translation id="4670064810192446073">Վիրտուալ իրականություն</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Գործողությունը հասանելի է էկրանի վերին մասում</translation>
 <translation id="5197729504361054390">Ձեր ընտրած կոնտակտները հասանելի կդառնան <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> կայքին:</translation>
 <translation id="5216942107514965959">Վերջին այցելությունը՝ այսօր</translation>
+<translation id="5225463052809312700">Միացնել տեսախցիկը</translation>
 <translation id="5264323282659631142">Հեռացնել «<ph name="CHIP_LABEL" />» չիպը</translation>
 <translation id="528192093759286357">Լիաէկրան ռեժիմից դուրս գալու համար քաշեք վերևից և հպեք «Հետ» կոճակին:</translation>
 <translation id="5300589172476337783">Ցույց տալ</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 օգտագործվող քուքի}one{# օգտագործվող քուքի}other{# օգտագործվող քուքի}}</translation>
 <translation id="8487700953926739672">Մատչելի է անցանց ռեժիմում</translation>
 <translation id="848952951823693243">Միշտ պահանջել կայքի բջջային տարբերակը</translation>
+<translation id="8499083585497694743">Միացնել խոսափողը</translation>
 <translation id="851751545965956758">Արգելել կայքերին միանալ սարքերին</translation>
 <translation id="8525306231823319788">Լիաէկրան</translation>
 <translation id="857943718398505171">Թույլատրված է (հանձնարարելի)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb
index 732c060..24cb028 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Untuk mengizinkan <ph name="APP_NAME" /> menggunakan Augmented Reality (AR), aktifkan juga kamera di <ph name="BEGIN_LINK" />Setelan Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Dari <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Akses lokasi dinonaktifkan untuk perangkat ini. Aktifkan di <ph name="BEGIN_LINK" />Setelan Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Akhiri</translation>
 <translation id="1919345977826869612">Iklan</translation>
 <translation id="1919950603503897840">Pilih kontak</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Keluar</translation>
 <translation id="2687403674020088961">Blokir semua cookie (tidak direkomendasikan)</translation>
 <translation id="2704606927547763573">Disalin</translation>
+<translation id="2713106313042589954">Nonaktifkan kamera</translation>
 <translation id="2717722538473713889">Alamat email</translation>
 <translation id="2750481671343847896">Situs dapat menampilkan perintah login dari layanan identitas.</translation>
 <translation id="2785051990912111074">Pilihan ini akan menghapus cookie untuk <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Minta izin terlebih dahulu sebelum memungkinkan situs menggunakan kamera Anda (disarankan)</translation>
 <translation id="4505788138578415521">URL ditampilkan penuh</translation>
 <translation id="4534723447064627427">Untuk mengizinkan <ph name="APP_NAME" /> mengakses mikrofon, aktifkan juga mikrofon di <ph name="BEGIN_LINK" />Setelan Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Nonaktifkan mikrofon</translation>
 <translation id="4570913071927164677">Detail</translation>
 <translation id="4645575059429386691">Dikelola oleh orang tua Anda</translation>
 <translation id="4670064810192446073">Virtual reality</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opsi tersedia di dekat bagian atas layar</translation>
 <translation id="5197729504361054390">Kontak yang Anda pilih akan dibagikan dengan <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Terakhir dibuka hari ini</translation>
+<translation id="5225463052809312700">Aktifkan kamera</translation>
 <translation id="5264323282659631142">Hapus '<ph name="CHIP_LABEL" />'</translation>
 <translation id="528192093759286357">Tarik dari atas dan ketuk tombol kembali untuk keluar dari mode layar penuh.</translation>
 <translation id="5300589172476337783">Tampilkan</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Blokir login pihak ketiga untuk situs tertentu.</translation>
 <translation id="6388207532828177975">Hapus &amp; reset</translation>
 <translation id="6398765197997659313">Keluar dari tampilan layar penuh</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Blokir situs agar tidak menggunakan perangkat dan data virtual reality Anda</translation>
 <translation id="6447842834002726250">Cookie</translation>
 <translation id="6527303717912515753">Bagikan</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie sedang digunakan}other{# cookie sedang digunakan}}</translation>
 <translation id="8487700953926739672">Tersedia secara offline</translation>
 <translation id="848952951823693243">Selalu minta situs seluler</translation>
+<translation id="8499083585497694743">Aktifkan mikrofon</translation>
 <translation id="851751545965956758">Blokir situs agar tidak terhubung ke perangkat</translation>
 <translation id="8525306231823319788">Layar penuh</translation>
 <translation id="857943718398505171">Diizinkan (disarankan)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb
index 00f4df1..6e413274 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Til að leyfa <ph name="APP_NAME" /> að nota AR þarftu einnig að kveikja á myndavél í <ph name="BEGIN_LINK" />stillingum Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Frá <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Slökkt er á aðgangi að staðsetningu fyrir þetta tæki. Kveiktu á honum í <ph name="BEGIN_LINK" />stillingum Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Leggja á</translation>
 <translation id="1919345977826869612">Auglýsingar</translation>
 <translation id="1919950603503897840">Velja tengiliði</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Yfirgefa</translation>
 <translation id="2687403674020088961">Loka á öll fótspor (ekki mælt með)</translation>
 <translation id="2704606927547763573">Afritað</translation>
+<translation id="2713106313042589954">Slökkva á myndavél</translation>
 <translation id="2717722538473713889">Netföng</translation>
 <translation id="2750481671343847896">Vefsvæði geta nú birt innskráningartilkynningar frá auðkenningarþjónustum.</translation>
 <translation id="2785051990912111074">Þetta val hreinsar fótspor fyrir <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Spyrja áður en vefsvæðum er veitt heimild til að nota myndavélina þína (ráðlagt)</translation>
 <translation id="4505788138578415521">Öll vefslóðin</translation>
 <translation id="4534723447064627427">Til að veita <ph name="APP_NAME" /> aðgang að hljóðnemanum þarftu einnig að kveikja á honum í <ph name="BEGIN_LINK" />stillingum Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Slökkva á hljóðnema</translation>
 <translation id="4570913071927164677">Nánar</translation>
 <translation id="4645575059429386691">Stjórnað af foreldri þínu</translation>
 <translation id="4670064810192446073">Sýndarveruleiki</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Valkosturinn er við efri brún skjásins</translation>
 <translation id="5197729504361054390">Tengiliðunum sem þú valdir verður deilt með <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Síðast opnað í dag</translation>
+<translation id="5225463052809312700">Kveikja á myndavél</translation>
 <translation id="5264323282659631142">Fjarlægja „<ph name="CHIP_LABEL" />“</translation>
 <translation id="528192093759286357">Dragðu ofan frá og snertu bakkhnappinn til að hætta birtingu á öllum skjánum.</translation>
 <translation id="5300589172476337783">Sýna</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 fótspor í notkun}one{# fótspor í notkun}other{# fótspor í notkun}}</translation>
 <translation id="8487700953926739672">Í boði án nettengingar</translation>
 <translation id="848952951823693243">Biðja alltaf um símaútgáfu vefsvæða</translation>
+<translation id="8499083585497694743">Kveikja á hljóðnema</translation>
 <translation id="851751545965956758">Ekki leyfa vefsvæðum að tengjast tækjum</translation>
 <translation id="8525306231823319788">Allur skjárinn</translation>
 <translation id="857943718398505171">Leyft (ráðlagt)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb
index 997c7ae..4c7ced2 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Per consentire all'app <ph name="APP_NAME" /> di utilizzare la realtà aumentata, attiva la fotocamera anche nelle <ph name="BEGIN_LINK" />Impostazioni Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Da <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">L'accesso alla posizione è disattivato per questo dispositivo. Attivalo nelle <ph name="BEGIN_LINK" />Impostazioni Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Chiudi</translation>
 <translation id="1919345977826869612">Annunci</translation>
 <translation id="1919950603503897840">Seleziona contatti</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> di <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Esci</translation>
 <translation id="2687403674020088961">Blocca tutti i cookie (non consigliato)</translation>
 <translation id="2704606927547763573">Copiata</translation>
+<translation id="2713106313042589954">Disattiva fotocamera</translation>
 <translation id="2717722538473713889">Indirizzi email</translation>
 <translation id="2750481671343847896">I siti possono mostrare richieste di accesso da servizi di identità.</translation>
 <translation id="2785051990912111074">Questa selezione cancellerà i cookie per <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Chiedi conferma prima di consentire ai siti di utilizzare la fotocamera (opzione consigliata)</translation>
 <translation id="4505788138578415521">URL espanso</translation>
 <translation id="4534723447064627427">Per consentire all'app <ph name="APP_NAME" /> di accedere al tuo microfono, devi attivare il microfono anche nelle <ph name="BEGIN_LINK" />Impostazioni Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Disattiva microfono</translation>
 <translation id="4570913071927164677">Dettagli</translation>
 <translation id="4645575059429386691">Gestito da un genitore</translation>
 <translation id="4670064810192446073">Realtà virtuale</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opzione disponibile nella parte superiore dello schermo</translation>
 <translation id="5197729504361054390">I contatti che selezioni verranno condivisi con <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Ultima visita: oggi</translation>
+<translation id="5225463052809312700">Attiva fotocamera</translation>
 <translation id="5264323282659631142">Rimuovi "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Trascina dall'alto e tocca il pulsante Indietro per uscire dalla modalità a schermo intero.</translation>
 <translation id="5300589172476337783">Mostra</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Blocca l'accesso di terze parti per un sito specifico.</translation>
 <translation id="6388207532828177975">Cancella e reimposta</translation>
 <translation id="6398765197997659313">Esci da schermo intero</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Impedisci ai siti di usare i dati e dispositivi della realtà virtuale</translation>
 <translation id="6447842834002726250">Cookie</translation>
 <translation id="6527303717912515753">Condividi</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie in uso}other{# cookie in uso}}</translation>
 <translation id="8487700953926739672">Disponibile offline</translation>
 <translation id="848952951823693243">Richiedi sempre sito per dispositivi mobili</translation>
+<translation id="8499083585497694743">Riattiva microfono</translation>
 <translation id="851751545965956758">Impedisci ai siti di connettersi ai dispositivi</translation>
 <translation id="8525306231823319788">Schermo intero</translation>
 <translation id="857943718398505171">Consentita (opzione consigliata)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb
index 79bdee1..e2dcade 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">‏כדי לאפשר ל-<ph name="APP_NAME" /> להשתמש ב-AR, צריך להפעיל את המצלמה גם ב<ph name="BEGIN_LINK" />הגדרות Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">מקור: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">‏הגישה למיקום כבויה בשביל המכשיר הזה. יש להפעיל אותה ב<ph name="BEGIN_LINK" />הגדרות Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">ניתוק</translation>
 <translation id="1919345977826869612">מודעות</translation>
 <translation id="1919950603503897840">בחירת אנשי קשר</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">יציאה</translation>
 <translation id="2687403674020088961">‏חסימה של כל קובצי ה-cookie (לא מומלץ)</translation>
 <translation id="2704606927547763573">הועתק</translation>
+<translation id="2713106313042589954">השבתת המצלמה</translation>
 <translation id="2717722538473713889">כתובות אימייל</translation>
 <translation id="2750481671343847896">אתרים יכולים להציג בקשות כניסה משירותי זיהוי</translation>
 <translation id="2785051990912111074">‏הבחירה הזו תגרום לניקוי קובצי ה-cookie של <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">יש לשאול לפני שמאפשרים לאתרים להשתמש במצלמה שלך (מומלץ)</translation>
 <translation id="4505788138578415521">‏כתובת ה-URL הורחבה</translation>
 <translation id="4534723447064627427">‏כדי לאפשר ל-<ph name="APP_NAME" /> לגשת אל המיקרופון, צריך להפעיל את המיקרופון גם ב<ph name="BEGIN_LINK" />הגדרות Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">השתקת המיקרופון</translation>
 <translation id="4570913071927164677">פרטים</translation>
 <translation id="4645575059429386691">מנוהל על-ידי ההורה שלך</translation>
 <translation id="4670064810192446073">מציאות מדומה</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">האפשרות זמינה בחלק העליון של המסך</translation>
 <translation id="5197729504361054390">אנשי הקשר שייבחרו ישותפו עם <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">הכניסה האחרונה בוצעה היום</translation>
+<translation id="5225463052809312700">הפעלת המצלמה</translation>
 <translation id="5264323282659631142">הסרת '<ph name="CHIP_LABEL" />'</translation>
 <translation id="528192093759286357">כדי לצאת ממסך מלא, יש לגרור מלמעלה ולגעת בלחצן 'הקודם'.</translation>
 <translation id="5300589172476337783">הצגה</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">חסימת הכניסה של צד שלישי לאתר ספציפי.</translation>
 <translation id="6388207532828177975">ניקוי ואיפוס</translation>
 <translation id="6398765197997659313">יציאה ממסך מלא</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">תיחסם האפשרות של אתרים להשתמש במכשיר המציאות המדומה ובנתוני המציאות המדומה</translation>
 <translation id="6447842834002726250">‏קובצי Cookie</translation>
 <translation id="6527303717912515753">שיתוף</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{‏קובץ cookie אחד נמצא בשימוש}two{‏# קובצי cookie נמצאים בשימוש}many{‏# קובצי cookie נמצאים בשימוש}other{‏# קובצי cookie נמצאים בשימוש}}</translation>
 <translation id="8487700953926739672">זמין אופליין</translation>
 <translation id="848952951823693243">תמיד תוצג בקשה לגרסת האתר לנייד</translation>
+<translation id="8499083585497694743">ביטול של השתקת המיקרופון</translation>
 <translation id="851751545965956758">חסימת התחברות של אתרים אל התקנים</translation>
 <translation id="8525306231823319788">מסך מלא</translation>
 <translation id="857943718398505171">מותרת (מומלץ)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb
index f31167a..22fb2773 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> に AR の使用を許可するには、<ph name="BEGIN_LINK" />Android の設定<ph name="END_LINK" />でもカメラをオンにしてください。</translation>
 <translation id="1864927262126810325">ソース: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">位置情報へのアクセスがデバイスでオフになっています。<ph name="BEGIN_LINK" />Android の設定<ph name="END_LINK" />でオンにしてください。</translation>
+<translation id="1915307458270490472">通話を終了</translation>
 <translation id="1919345977826869612">広告</translation>
 <translation id="1919950603503897840">連絡先を選択</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">このページを離れる</translation>
 <translation id="2687403674020088961">すべての Cookie をブロックする(推奨されません)</translation>
 <translation id="2704606927547763573">コピーしました</translation>
+<translation id="2713106313042589954">カメラをオフにする</translation>
 <translation id="2717722538473713889">メールアドレス</translation>
 <translation id="2750481671343847896">サイトで ID サービスからのログイン メッセージを表示できるようにします。</translation>
 <translation id="2785051990912111074">これを選択すると、<ph name="WEBSITE" /> の Cookie が消去されます</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">サイトにカメラの使用を許可する前に確認する(推奨)</translation>
 <translation id="4505788138578415521">URL のフルバージョンです</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> にマイクへのアクセスを許可するには、<ph name="BEGIN_LINK" />Android の設定<ph name="END_LINK" />でもマイクをオンにしてください。</translation>
+<translation id="4566417217121906555">マイクをミュート</translation>
 <translation id="4570913071927164677">詳細</translation>
 <translation id="4645575059429386691">保護者により管理されています</translation>
 <translation id="4670064810192446073">バーチャル リアリティ(VR)</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">設定は画面上部にあります</translation>
 <translation id="5197729504361054390">選択した連絡先が <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> と共有されます。</translation>
 <translation id="5216942107514965959">最終アクセス日: 今日</translation>
+<translation id="5225463052809312700">カメラをオンにする</translation>
 <translation id="5264323282659631142"><ph name="CHIP_LABEL" /> を削除</translation>
 <translation id="528192093759286357">全画面表示を終了するには、上からドラッグして、戻るボタンをタップします。</translation>
 <translation id="5300589172476337783">表示</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 個の Cookie が使用中です}other{# 個の Cookie が使用中です}}</translation>
 <translation id="8487700953926739672">オフラインでの利用</translation>
 <translation id="848952951823693243">常にモバイル版サイトを表示する</translation>
+<translation id="8499083585497694743">マイクのミュートを解除</translation>
 <translation id="851751545965956758">サイトからデバイスへの接続をブロックする</translation>
 <translation id="8525306231823319788">全画面表示</translation>
 <translation id="857943718398505171">許可(推奨)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb
index baffca288..5b28501 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" />-მა AR რომ გამოიყენოს, გაააქტიურეთ კამერაზე წვდომის ნებართვაც <ph name="BEGIN_LINK" />Android-ის პარამეტრებიდან<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">წყარო: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">მდებარეობაზე წვდომა გამორთულია ამ მოწყობილობისთვის. ჩართეთ ის <ph name="BEGIN_LINK" />Android-ის პარამეტრებიდან<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">გათიშვა</translation>
 <translation id="1919345977826869612">რეკლამა</translation>
 <translation id="1919950603503897840">კონტაქტების არჩევა</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" />დან</translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">დატოვება</translation>
 <translation id="2687403674020088961">ყველა ქუქი-ჩანაწერის დაბლოკვა (არარეკომენდებული)</translation>
 <translation id="2704606927547763573">დაკოპირდა</translation>
+<translation id="2713106313042589954">კამერის გამორთვა</translation>
 <translation id="2717722538473713889">ელფოსტის მისამართები</translation>
 <translation id="2750481671343847896">საიტებს შეუძლია სისტემაში შესვლის მოთხოვნების ჩვენება პირადობის მონაცემების სერვისებიდან.</translation>
 <translation id="2785051990912111074">ეს არჩევანი გაასუფთავებს ქუქი-ჩანაწერებს <ph name="WEBSITE" />-ისთვის</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">შეკითხვა საიტებისთვის თქვენი კამერის გამოყენების დაშვებამდე (რეკომენდებული)</translation>
 <translation id="4505788138578415521">URL გაშლილია</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" />-მა მიკროფონით რომ ისარგებლოს, გაააქტიურეთ მიკროფონზე წვდომის ნებართვაც <ph name="BEGIN_LINK" />Android-ის პარამეტრებიდან<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">მიკროფონის დადუმება</translation>
 <translation id="4570913071927164677">დეტალები</translation>
 <translation id="4645575059429386691">იმართება თქვენი მშობლის მიერ</translation>
 <translation id="4670064810192446073">ვირტუალური რეალობა</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">ვარიანტი ხელმისაწვდომია ეკრანის ზედა ნაწილთან</translation>
 <translation id="5197729504361054390">თქვენ მიერ არჩეული კონტაქტები გაზიარდება <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />-თან.</translation>
 <translation id="5216942107514965959">ბოლო ვიზიტი იყო დღეს</translation>
+<translation id="5225463052809312700">კამერის ჩართვა</translation>
 <translation id="5264323282659631142">„<ph name="CHIP_LABEL" />“-ის ამოშლა</translation>
 <translation id="528192093759286357">სრულეკრანიანი რეჟიმიდან გამოსასვლელად, გაუსვით ეკრანს თითი ზემოდან ქვემოთ და შეეხეთ ღილაკს „უკან“.</translation>
 <translation id="5300589172476337783">ჩვენება</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{გამოიყენება 1 ქუქი-ჩანაწერი}other{გამოიყენება # ქუქი-ჩანაწერი}}</translation>
 <translation id="8487700953926739672">ოფლაინში ხელმისაწვდომი</translation>
 <translation id="848952951823693243">საიტის მობილურის ვერსიის ყოველთვის მოთხოვნა</translation>
+<translation id="8499083585497694743">მიკროფონის დადუმების მოხსნა</translation>
 <translation id="851751545965956758">საიტებისთვის მოწყობილობებთან დაკავშირების აკრძალვა</translation>
 <translation id="8525306231823319788">მთელ ეკრანზე</translation>
 <translation id="857943718398505171">დაშვებული (რეკომენდებულია)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb
index 3ff2a24..e167152f5 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> браузеріне AR режимін пайдалануға рұқсат ету үшін <ph name="BEGIN_LINK" />Android параметрлерінде<ph name="END_LINK" /> камераны да қосыңыз.</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> дереккөзінен</translation>
 <translation id="1887786770086287077">Бұл құрылғыда орынды анықтау қызметі өшірулі. Оны <ph name="BEGIN_LINK" />Android параметрлері<ph name="END_LINK" /> арқылы қосыңыз.</translation>
+<translation id="1915307458270490472">Жабу</translation>
 <translation id="1919345977826869612">Жарнамалар</translation>
 <translation id="1919950603503897840">Контактілерді таңдау</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Шығу</translation>
 <translation id="2687403674020088961">Барлық cookie файлын бөгеу (ұсынылмайды)</translation>
 <translation id="2704606927547763573">Көшірілген</translation>
+<translation id="2713106313042589954">Камераны өшіру</translation>
 <translation id="2717722538473713889">электрондық пошта мекенжайлары</translation>
 <translation id="2750481671343847896">Сайттар идентификация қызметтері жіберген аккаунтқа кіру хабарларын көрсетуі мүмкін.</translation>
 <translation id="2785051990912111074"><ph name="WEBSITE" /> веб-сайтының cookie файлдары жойылады.</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Сайттар камераңызды пайдалану үшін рұқсат сұрайды (ұсынылады)</translation>
 <translation id="4505788138578415521">URL жайылды</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> браузері микрофонды пайдалануы үшін, <ph name="BEGIN_LINK" />Android параметрлерінде<ph name="END_LINK" /> оны да қосыңыз.</translation>
+<translation id="4566417217121906555">Микрофон дыбысын өшіру</translation>
 <translation id="4570913071927164677">Мәліметтер</translation>
 <translation id="4645575059429386691">Ата-ана басқарады</translation>
 <translation id="4670064810192446073">Виртуалдық шындық</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Опциялар экранның жоғарғы жағында тұрады</translation>
 <translation id="5197729504361054390">Сіз таңдаған контактілер <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> сайтымен бөлісіледі.</translation>
 <translation id="5216942107514965959">Соңғы кіру: бүгін</translation>
+<translation id="5225463052809312700">Камераны қосу</translation>
 <translation id="5264323282659631142">"<ph name="CHIP_LABEL" />" өшіру</translation>
 <translation id="528192093759286357">Толық экраннан шығу үшін үстіңгі жақтан сүйреп, "Артқа" түймесін түртіңіз.</translation>
 <translation id="5300589172476337783">Көрсету</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie файлы қолданылып жатыр}other{# cookie файлы қолданылып жатыр}}</translation>
 <translation id="8487700953926739672">Желіден тыс істейді</translation>
 <translation id="848952951823693243">Әрдайым сайттың мобильдік нұсқасын сұрау</translation>
+<translation id="8499083585497694743">Микрофон дыбысын қосу</translation>
 <translation id="851751545965956758">Сайттардың құрылғыға жалғануына тыйым салу</translation>
 <translation id="8525306231823319788">Толық экран</translation>
 <translation id="857943718398505171">Рұқсат етілген (ең дұрысы)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb
index 4d9e604..6e48017 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">ដើម្បី​អនុញ្ញាតឱ្យ <ph name="APP_NAME" /> ប្រើ AR អ្នកក៏ត្រូវបើក​កាមេរ៉ា​នៅក្នុង​<ph name="BEGIN_LINK" />ការកំណត់ Android<ph name="END_LINK" /> ផងដែរ។</translation>
 <translation id="1864927262126810325">ពី <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">ការចូល​ប្រើ​ទីតាំងត្រូវបាន​បិទ​សម្រាប់​ឧបករណ៍​នេះ។ សូម​បើក​វា​នៅក្នុង<ph name="BEGIN_LINK" />ការ​កំណត់ Android<ph name="END_LINK" /> ។</translation>
+<translation id="1915307458270490472">បញ្ចប់​ការ​សន្ទនា</translation>
 <translation id="1919345977826869612">ពាណិជ្ជកម្ម</translation>
 <translation id="1919950603503897840">ជ្រើសរើស​ទំនាក់ទំនង</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">ចាកចេញ</translation>
 <translation id="2687403674020088961">ទប់ស្កាត់ខូគីទាំងអស់ (មិនណែនាំ)</translation>
 <translation id="2704606927547763573">បានថតចម្លង</translation>
+<translation id="2713106313042589954">បិទកាមេរ៉ា</translation>
 <translation id="2717722538473713889">អាសយដ្ឋានអ៊ីមែល</translation>
 <translation id="2750481671343847896">គេហទំព័រអាចបង្ហាញសារចូលគណនីពីសេវាកម្មដែលសួររកអត្តសញ្ញាណ។</translation>
 <translation id="2785051990912111074">ជម្រើសនេះនឹងសម្អាតខូគីសម្រាប់ <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">សួរជាមុនសិន មុនពេលអនុញ្ញាតឲ្យគេហទំព័រប្រើកាមេរ៉ារបស់អ្នក (បានណែនាំ)</translation>
 <translation id="4505788138578415521">បានពង្រីក URL</translation>
 <translation id="4534723447064627427">ដើម្បីអនុញ្ញាតឱ្យ <ph name="APP_NAME" /> ចូលប្រើមីក្រូហ្វូន​របស់អ្នក អ្នកក៏ត្រូវបើក​មីក្រូហ្វូន​នៅក្នុង​<ph name="BEGIN_LINK" />ការកំណត់ Android<ph name="END_LINK" /> ផងដែរ។</translation>
+<translation id="4566417217121906555">បិទ​សំឡេង​មីក្រូហ្វូន</translation>
 <translation id="4570913071927164677">ព័ត៌មាន​លម្អិត</translation>
 <translation id="4645575059429386691">គ្រប់គ្រងដោយឪពុកម្តាយរបស់អ្នក</translation>
 <translation id="4670064810192446073">VR</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">ជម្រើសមាន​នៅជិតផ្នែក​ខាងលើ​នៃអេក្រង់</translation>
 <translation id="5197729504361054390">ទំនាក់ទំនងដែលអ្នកជ្រើសរើស​នឹងចែករំលែកជាមួយ <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> ។</translation>
 <translation id="5216942107514965959">បានចូលមើល​លើកចុងក្រោយ​នៅថ្ងៃនេះ</translation>
+<translation id="5225463052809312700">បើកកាមេរ៉ា</translation>
 <translation id="5264323282659631142">លុប '<ph name="CHIP_LABEL" />'</translation>
 <translation id="528192093759286357">អូសពីលើ ហើយប៉ះប៊ូតុងថយក្រោយដើម្បីចេញពីរបៀបពេញអេក្រង់។</translation>
 <translation id="5300589172476337783">បង្ហាញ</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{កំពុងប្រើខូគី 1}other{កំពុងប្រើខូគី #}}</translation>
 <translation id="8487700953926739672">មាននៅក្រៅបណ្តាញ</translation>
 <translation id="848952951823693243">ស្នើគេហទំព័រសម្រាប់ឧបករណ៍ចល័តជានិច្ច</translation>
+<translation id="8499083585497694743">បើក​សំឡេង​មីក្រូហ្វូន</translation>
 <translation id="851751545965956758">ទប់​ស្កាត់​ទំព័រ​មិន​ឱ្យ​ភ្ជាប់​ជាមួយ​ឧបករណ៍</translation>
 <translation id="8525306231823319788">ពេញអេក្រង់</translation>
 <translation id="857943718398505171">បានអនុញ្ញាត (បានណែនាំ)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
index f7c82b3..418f9ed 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">AR ಬಳಸಲು <ph name="APP_NAME" /> ಗೆ ಅನುಮತಿ ನೀಡುವುದಕ್ಕಾಗಿ, <ph name="BEGIN_LINK" />Android ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ<ph name="END_LINK" /> ಕ್ಯಾಮರಾವನ್ನು ಸಹ ಆನ್ ಮಾಡಿ.</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> ನಿಂದ</translation>
 <translation id="1887786770086287077">ಈ ಸಾಧನದ ಸ್ಥಳ ಪ್ರವೇಶ ಆಫ್ ಆಗಿದೆ. ಅದನ್ನು <ph name="BEGIN_LINK" />Android ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ<ph name="END_LINK" /> ಆನ್ ಮಾಡಿ.</translation>
+<translation id="1915307458270490472">ಹ್ಯಾಂಗ್ ಅಪ್ ಮಾಡಿ</translation>
 <translation id="1919345977826869612">ಜಾಹೀರಾತುಗಳು</translation>
 <translation id="1919950603503897840">ಸಂಪರ್ಕಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿ</translation>
 <translation id="1923695749281512248"><ph name="FILE_SIZE_WITH_UNITS" /> ರಲ್ಲಿ <ph name="BYTES_DOWNLOADED_WITH_UNITS" /> ಡೌನ್‌ಲೋಡ್ ಆಗಿದೆ</translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">ತೊರೆಯಿರಿ</translation>
 <translation id="2687403674020088961">ಎಲ್ಲಾ ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ (ಇದನ್ನು ನಾವು ಶಿಫಾರಸು ಮಾಡುವುದಿಲ್ಲ)</translation>
 <translation id="2704606927547763573">ನಕಲಿಸಲಾಗಿದೆ</translation>
+<translation id="2713106313042589954">ಕ್ಯಾಮರಾ ಆಫ್ ಮಾಡಿ</translation>
 <translation id="2717722538473713889">ಇಮೇಲ್ ವಿಳಾಸಗಳು</translation>
 <translation id="2750481671343847896">ಸೈಟ್‌ಗಳು ಗುರುತಿನ ಸೇವೆಗಳ ಸೈನ್ ಇನ್ ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು ತೋರಿಸಬಲ್ಲವು.</translation>
 <translation id="2785051990912111074">ಈ ಆಯ್ಕೆಯು <ph name="WEBSITE" /> ನ ಕುಕೀಗಳನ್ನು ತೆರವುಗೊಳಿಸುತ್ತದೆ</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಬಳಸಲು ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸುವ ಮೊದಲು ಕೇಳಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
 <translation id="4505788138578415521">URL ಅನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> ನಿಮ್ಮ ಮೈಕ್ರೋಫೋನ್‌ಗೆ ಪ್ರವೇಶಿಸುವುದಕ್ಕೆ ಅನುಮತಿಸಲು, <ph name="BEGIN_LINK" />Android ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ<ph name="END_LINK" /> ಮೈಕ್ರೋಫೋನ್ ಅನ್ನು ಸಹ ಆನ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.</translation>
+<translation id="4566417217121906555">ಮೈಕ್ರೋಫೋನ್‌ ಮ್ಯೂಟ್ ಮಾಡಿ</translation>
 <translation id="4570913071927164677">ವಿವರಗಳು</translation>
 <translation id="4645575059429386691">ನಿಮ್ಮ ಪೋಷಕರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ</translation>
 <translation id="4670064810192446073">ವರ್ಚುವಲ್ ರಿಯಾಲಿಟಿ</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">ಸ್ಕ್ರೀನ್‌ನ ಮೇಲ್ಬಾಗದ ಹತ್ತಿರದಲ್ಲಿ ಲಭ್ಯವಿರುವ ಆಯ್ಕೆಗಳು</translation>
 <translation id="5197729504361054390">ನೀವು ಆಯ್ಕೆ ಮಾಡುವ ಸಂಪರ್ಕಗಳನ್ನು <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತದೆ.</translation>
 <translation id="5216942107514965959">ಇಂದು ಕೊನೆಯಾದಾಗಿ ಭೇಟಿ ನೀಡಲಾಗಿದೆ</translation>
+<translation id="5225463052809312700">ಕ್ಯಾಮರಾ ಆನ್ ಮಾಡಿ</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />' ಅನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="528192093759286357">ಪೂರ್ಣಪರದೆಯನ್ನು ನಿರ್ಗಮಿಸಲು ಮೇಲಿನಿಂದ ಡ್ರ್ಯಾಗ್ ಮಾಡಿ ಹಾಗೂ ಹಿಂದೆ ಬಟನ್ ಸ್ಪರ್ಶಿಸಿ.</translation>
 <translation id="5300589172476337783">ತೋರಿಸಿ</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">ನಿರ್ದಿಷ್ಟ ಸೈಟ್‌ಗಾಗಿ ಥರ್ಡ್-ಪಾರ್ಟಿ ಸೈನ್ ಇನ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸಿ.</translation>
 <translation id="6388207532828177975">ತೆರವುಗೊಳಿಸಿ &amp; ಮರುಹೊಂದಿಸಿ</translation>
 <translation id="6398765197997659313">ಪೂರ್ಣಪರದೆಯಿಂದ ನಿರ್ಗಮಿಸಿ</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">ನಿಮ್ಮ ವರ್ಚುವಲ್ ರಿಯಾಲಿಟಿ ಸಾಧನ ಮತ್ತು ಡೇಟಾವನ್ನು ಬಳಸದ ಹಾಗೆ ಸೈಟ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
 <translation id="6447842834002726250">ಕುಕೀಸ್</translation>
 <translation id="6527303717912515753">ಹಂಚಿಕೊಳ್ಳು</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 ಕುಕಿ ಬಳಕೆಯಲ್ಲಿದೆ}one{# ಕುಕೀಗಳು ಬಳಕೆಯಲ್ಲಿವೆ}other{# ಕುಕೀಗಳು ಬಳಕೆಯಲ್ಲಿವೆ}}</translation>
 <translation id="8487700953926739672">ಆಫ್‌ಲೈನ್ ಲಭ್ಯವಿದೆ</translation>
 <translation id="848952951823693243">ಮೊಬೈಲ್ ಸೈಟ್ ಅನ್ನು ಯಾವಾಗಲೂ ವಿನಂತಿಸಿ</translation>
+<translation id="8499083585497694743">ಮೈಕ್ರೋಫೋನ್‌ ಅನ್‍ಮ್ಯೂಟ್ ಮಾಡಿ</translation>
 <translation id="851751545965956758">ಸಾಧನಗಳಿಗೆ ಸಂಪರ್ಕಿಸದಂತೆ, ಸೈಟ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
 <translation id="8525306231823319788">ಪೂರ್ಣ ಪರದೆ</translation>
 <translation id="857943718398505171">ಅನುಮತಿಸಲಾಗಿದೆ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
index cb5021b..3a259de0 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" />에서 AR을 사용하려면 <ph name="BEGIN_LINK" />Android 설정<ph name="END_LINK" />에서도 카메라를 사용 설정하세요.</translation>
 <translation id="1864927262126810325">출처: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">이 기기의 위치 액세스가 사용 중지되었습니다. <ph name="BEGIN_LINK" />Android 설정<ph name="END_LINK" />에서 사용 설정하세요.</translation>
+<translation id="1915307458270490472">종료</translation>
 <translation id="1919345977826869612">광고</translation>
 <translation id="1919950603503897840">연락처 선택</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">나가기</translation>
 <translation id="2687403674020088961">모든 쿠키 차단(권장되지 않음)</translation>
 <translation id="2704606927547763573">복사됨</translation>
+<translation id="2713106313042589954">카메라 끄기</translation>
 <translation id="2717722538473713889">이메일 주소</translation>
 <translation id="2750481671343847896">사이트에서 ID 서비스의 로그인 메시지를 표시할 수 있습니다.</translation>
 <translation id="2785051990912111074"><ph name="WEBSITE" />의 쿠키가 삭제됩니다.</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">사이트에서 카메라를 사용하도록 허용하기 전에 확인(권장)</translation>
 <translation id="4505788138578415521">URL 펼쳐짐</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" />에서 마이크에 액세스하도록 허용하려면 <ph name="BEGIN_LINK" />Android 설정<ph name="END_LINK" />에서도 마이크를 사용 설정하세요.</translation>
+<translation id="4566417217121906555">마이크 음소거</translation>
 <translation id="4570913071927164677">세부정보</translation>
 <translation id="4645575059429386691">부모님이 관리합니다.</translation>
 <translation id="4670064810192446073">가상 현실</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">화면 상단에서 옵션을 선택할 수 있습니다</translation>
 <translation id="5197729504361054390">선택한 연락처가 <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />과(와) 공유됩니다.</translation>
 <translation id="5216942107514965959">최근 방문: 오늘</translation>
+<translation id="5225463052809312700">카메라 켜기</translation>
 <translation id="5264323282659631142">‘<ph name="CHIP_LABEL" />’ 삭제</translation>
 <translation id="528192093759286357">전체화면을 종료하려면 상단에서 드래그하여 뒤로 버튼을 터치하세요.</translation>
 <translation id="5300589172476337783">표시</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">특정 사이트에 대해 서드 파티 로그인을 차단합니다.</translation>
 <translation id="6388207532828177975">삭제 및 재설정</translation>
 <translation id="6398765197997659313">전체화면 닫기</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">사이트에서 내 가상 현실 기기 및 데이터를 사용하지 못하도록 차단</translation>
 <translation id="6447842834002726250">쿠키</translation>
 <translation id="6527303717912515753">공유</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{쿠키 1개 사용 중}other{쿠키 #개 사용 중}}</translation>
 <translation id="8487700953926739672">오프라인으로 사용 가능</translation>
 <translation id="848952951823693243">항상 모바일 사이트 요청</translation>
+<translation id="8499083585497694743">마이크 음소거 해제</translation>
 <translation id="851751545965956758">사이트에서 기기에 연결하지 못하도록 차단</translation>
 <translation id="8525306231823319788">전체화면</translation>
 <translation id="857943718398505171">허용(권장)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb
index 0819339..0c16eec 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> колдонмосуна AR'ди колдоонуусуна уруксат берүү үчүн камераны <ph name="BEGIN_LINK" />Android жөндөөлөрүнөн<ph name="END_LINK" /> күйгүзүңүз.</translation>
 <translation id="1864927262126810325">Төмөнкүдөн: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Жайгашкан жерди аныктоо жөндөөсү бул түзмөктө өчүрүлгөн. Аны <ph name="BEGIN_LINK" />Android жөндөөлөрүнө<ph name="END_LINK" /> өтүп, күйгүзүңүз.</translation>
+<translation id="1915307458270490472">Жогоруда кадоо</translation>
 <translation id="1919345977826869612">Жарнамалар</translation>
 <translation id="1919950603503897840">Байланыштарды тандоо</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Чыгуу</translation>
 <translation id="2687403674020088961">Бардык cookie файлдарды бөгөттөө (сунушталбайт)</translation>
 <translation id="2704606927547763573">Көчүрүлдү</translation>
+<translation id="2713106313042589954">Камераны өчүрүү</translation>
 <translation id="2717722538473713889">Электрондук почта даректери</translation>
 <translation id="2750481671343847896">Сайттар идентификациялык кызматтарда кирүү сурамдарын көрсөтүшү мүмкүн.</translation>
 <translation id="2785051990912111074">Ушуну менен <ph name="WEBSITE" /> сайтынын cookie файлдары тазаланат</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Сайттар камераңызды колдоноордон мурун уруксат суралсын (сунушталат)</translation>
 <translation id="4505788138578415521">URL жайылып көрсөтүлдү</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> колдонмосуна микрофонго кирүүгө уруксат берүү үчүн, <ph name="BEGIN_LINK" />Android Жөндөөлөрүнөн<ph name="END_LINK" /> микрофонду күйгүзүңүз.</translation>
+<translation id="4566417217121906555">Микрофондун үнүн өчүрүү</translation>
 <translation id="4570913071927164677">Чоо-жайы</translation>
 <translation id="4645575059429386691">Ата-энеңиз башкарат</translation>
 <translation id="4670064810192446073">Виртуалдык дүйнө</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Параметр экрандын жогору жагында берилген</translation>
 <translation id="5197729504361054390">Сиз тандаган байланыштар <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> менен бөлүшүлөт.</translation>
 <translation id="5216942107514965959">Бүгүн акыркы жолу кирген</translation>
+<translation id="5225463052809312700">Камераны күйгүзүү</translation>
 <translation id="5264323282659631142">"<ph name="CHIP_LABEL" />" өчүрүү</translation>
 <translation id="528192093759286357">Толук экрандан чыгуу үчүн жогорудан ылдый сүйрөп келип, "Артка" деген баскычка тийип коюңуз.</translation>
 <translation id="5300589172476337783">Көрсөтүү</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie файлы колдонулууда}other{# cookie файлы колдонулууда}}</translation>
 <translation id="8487700953926739672">Оффлайнда жеткиликтүү</translation>
 <translation id="848952951823693243">Мобилдик сайт ар дайым суралсын</translation>
+<translation id="8499083585497694743">Микрофондун үнүн чыгаруу</translation>
 <translation id="851751545965956758">Сайттардын түзмөктөргө туташуусун бөгөттөө</translation>
 <translation id="8525306231823319788">Толук экран</translation>
 <translation id="857943718398505171">Уруксат берилген (сунушталат)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb
index 79cdf87..b924f9d 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">ເພື່ອອະນຸຍາດໃຫ້ <ph name="APP_NAME" /> ໃຊ້ AR, ກະລຸນາເປີດກ້ອງໃນ <ph name="BEGIN_LINK" />ການຕັ້ງຄ່າ Android<ph name="END_LINK" /> ນຳ.</translation>
 <translation id="1864927262126810325">ຈາກ <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">ການເຂົ້າເຖິງສະຖານທີ່ປິດຢູ່ສຳລັບອຸປະກອນນີ້. ກະລຸນາເປີດມັນໃນ <ph name="BEGIN_LINK" />ການຕັ້ງຄ່າ Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">ວາງສາຍ</translation>
 <translation id="1919345977826869612">ໂຄສະນາ</translation>
 <translation id="1919950603503897840">ເລືອກລາຍຊື່ຜູ້ຕິດຕໍ່</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">ອອກ​ໄປ</translation>
 <translation id="2687403674020088961">ບລັອກຄຸກກີ້ທັງໝົດ (ບໍ່ແນະນຳ)</translation>
 <translation id="2704606927547763573">ອັດ​ສຳ​ເນົາ​ແລ້ວ</translation>
+<translation id="2713106313042589954">ປິດກ້ອງຖ່າຍຮູບ</translation>
 <translation id="2717722538473713889">ທີ່ຢູ່ອີເມວ</translation>
 <translation id="2750481671343847896">ເວັບໄຊສາມາດສະແດງຂໍ້ຄວາມການເຂົ້າສູ່ລະບົບຈາກບໍລິການຕົວຕົນຕ່າງໆໄດ້.</translation>
 <translation id="2785051990912111074">ຕົວເລືອກນີ້ຈະລຶບລ້າງຄຸກກີ້ສຳລັບ <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">ຖາມກ່ອນທີ່ຈະອະນຸຍາດໃຫ້ເວັບໄຊໃຊ້ກ້ອງຖ່າຍຮູບຂອງທ່ານ (ແນະນຳ)</translation>
 <translation id="4505788138578415521">ຂະຫຍາຍ URL ແລ້ວ</translation>
 <translation id="4534723447064627427">ເພື່ອອະນຸຍາດໃຫ້ <ph name="APP_NAME" /> ເຂົ້າເຖິງໄມໂຄຣໂຟນ, ກະລຸນາເປີດໄມໂຄຣໂຟນໃນ <ph name="BEGIN_LINK" />ການຕັ້ງຄ່າ Android<ph name="END_LINK" /> ນຳ.</translation>
+<translation id="4566417217121906555">ປິດສຽງໄມໂຄຣໂຟນ</translation>
 <translation id="4570913071927164677">ລາຍລະອຽດ</translation>
 <translation id="4645575059429386691">ຈັດ​ການ​ໂດຍ​ຜູ້​ປົກ​ຄອງ​ຂອງ​ທ່ານ</translation>
 <translation id="4670064810192446073">ເວີຊົວ ຣິອາຣິທີ</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">ຕົວເລືອກມີໃຫ້ນຳໃຊ້ຢູ່ໃກ້ສ່ວນເທິງສຸດຂອງໜ້າຈໍ</translation>
 <translation id="5197729504361054390">ລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ທ່ານເລືອກຈະຖືກແບ່ງປັນກັບ <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">ເຂົ້າເບິ່ງມື້ນີ້</translation>
+<translation id="5225463052809312700">ເປີດກ້ອງຖ່າຍຮູບ</translation>
 <translation id="5264323282659631142">ລຶບ '<ph name="CHIP_LABEL" />' ອອກ</translation>
 <translation id="528192093759286357">ລາກຈາກດ້ານເທິງ ແລ້ວແຕະປຸ່ມກັບຄືນ ເພື່ອອອກຈາກເຕັມຈໍ.</translation>
 <translation id="5300589172476337783">ສະ​ແດງ​</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{ມີການນຳໃຊ້ຄຸກກີ້ 1 ລາຍການ}other{ມີການນຳໃຊ້ຄຸກກີ້ # ລາຍການ}}</translation>
 <translation id="8487700953926739672">ມີອອຟລາຍນ໌ຢູ່</translation>
 <translation id="848952951823693243">ຮ້ອງຂໍເວັບໄຊມືຖືທຸກເທື່ອ</translation>
+<translation id="8499083585497694743">ເຊົາປິດສຽງໄມໂຄຣໂຟນ</translation>
 <translation id="851751545965956758">ບລັອກບໍ່ໃຫ້ເວັບໄຊເຊື່ອມຕໍ່ກັບອຸປະກອນ</translation>
 <translation id="8525306231823319788">ເຕັມຫນ້າ​ຈໍ​</translation>
 <translation id="857943718398505171">ອະ​ນຸ​ຍາດ​ແລ້ວ (ແນະ​ນຳ​ໃຫ້)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
index cedd66e..1ae6584 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Norėdami leisti „<ph name="APP_NAME" />“ naudoti AR, taip pat įjunkite fotoaparatą <ph name="BEGIN_LINK" />„Android“ nustatymuose<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Iš „<ph name="SOURCE_NAME" />“</translation>
 <translation id="1887786770086287077">Vietos prieiga išjungta šiame įrenginyje. Įjunkite ją skiltyje <ph name="BEGIN_LINK" />„Android“ nustatymai“<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Baigti</translation>
 <translation id="1919345977826869612">Skelbimai</translation>
 <translation id="1919950603503897840">Kontaktų pasirinkimas</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> iš <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Išeiti</translation>
 <translation id="2687403674020088961">Blokuoti visus slapukus (nerekomenduojama)</translation>
 <translation id="2704606927547763573">Nukopij.</translation>
+<translation id="2713106313042589954">Išjungti fotoaparatą</translation>
 <translation id="2717722538473713889">El. pašto adresai</translation>
 <translation id="2750481671343847896">Svetainėse gali būti rodomi raginimai prisijungti iš tapatybės nustatymo paslaugų.</translation>
 <translation id="2785051990912111074">Bus išvalyti svetainės <ph name="WEBSITE" /> slapukai</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Pirmiausia klausti prieš leidžiant svetainėms naudoti kamerą (rekomenduojama)</translation>
 <translation id="4505788138578415521">URL išskleistas</translation>
 <translation id="4534723447064627427">Norėdami leisti „<ph name="APP_NAME" />“ pasiekti jūsų mikrofoną, taip pat įjunkite jį <ph name="BEGIN_LINK" />„Android“ nustatymuose<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Nutildyti mikrofoną</translation>
 <translation id="4570913071927164677">Išsami informacija</translation>
 <translation id="4645575059429386691">Tvarko vienas iš jūsų tėvų</translation>
 <translation id="4670064810192446073">Virtualioji realybė</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Parinktis pasiekiama netoli ekrano viršaus</translation>
 <translation id="5197729504361054390">Pasirinkti kontaktai bus bendrinami su <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Paskutinį kartą lankytasi šiandien</translation>
+<translation id="5225463052809312700">Įjungti fotoaparatą</translation>
 <translation id="5264323282659631142">Pašalinti „<ph name="CHIP_LABEL" />“</translation>
 <translation id="528192093759286357">Vilkite žymeklį nuo viršaus ir palieskite mygtuką „Atgal“, kad išeitumėte iš viso ekrano režimo.</translation>
 <translation id="5300589172476337783">Rodyti</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Blokuoti trečiosios šalies prisijungimą prie konkrečios svetainės.</translation>
 <translation id="6388207532828177975">Išvalyti ir nustatyti iš naujo</translation>
 <translation id="6398765197997659313">Išeiti iš viso ekrano režimo</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Neleisti svetainėms naudoti virtualiosios realybės įrenginio ir duomenų</translation>
 <translation id="6447842834002726250">Slapukai</translation>
 <translation id="6527303717912515753">Bendrinti</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Naudojamas 1 slapukas}one{Naudojamas # slapukas}few{Naudojami # slapukai}many{Naudojama # slapuko}other{Naudojama # slapukų}}</translation>
 <translation id="8487700953926739672">Pasiekiama neprisijungus</translation>
 <translation id="848952951823693243">Visada galite pateikti užklausą dėl svetainės mobiliesiems</translation>
+<translation id="8499083585497694743">Įjungti mikrofono garsą</translation>
 <translation id="851751545965956758">Blokuoti svetaines, kad nebūtų galima prisijungti prie įrenginių</translation>
 <translation id="8525306231823319788">Viso ekrano režimas</translation>
 <translation id="857943718398505171">Leidžiama (rekomenduojama)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb
index 7d69541..75b27d8 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Lai atļautu lietotnei <ph name="APP_NAME" /> izmantot papildināto realitāti, ieslēdziet arī kameru <ph name="BEGIN_LINK" />Android iestatījumos<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">No: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Piekļuve šīs ierīces atrašanās vietai ir izslēgta. Ieslēdziet to <ph name="BEGIN_LINK" />Android iestatījumos<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Pārtraukt</translation>
 <translation id="1919345977826869612">Reklāmas</translation>
 <translation id="1919950603503897840">Kontaktpersonu atlase</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> no <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Iziet</translation>
 <translation id="2687403674020088961">Bloķēt visus sīkfailus (nav ieteicams)</translation>
 <translation id="2704606927547763573">Nokopēts</translation>
+<translation id="2713106313042589954">Izslēgt kameru</translation>
 <translation id="2717722538473713889">E-pasta adreses</translation>
 <translation id="2750481671343847896">Vietnēs drīkst rādīt pierakstīšanās uzvednes, ko nodrošina identitātes pakalpojumi.</translation>
 <translation id="2785051990912111074">Veicot šo darbību, tiks notīrīti vietnes <ph name="WEBSITE" /> sīkfaili.</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Jautāt, pirms atļaut vietnēm izmantot jūsu kameru (ieteicams)</translation>
 <translation id="4505788138578415521">URL ir izvērsts</translation>
 <translation id="4534723447064627427">Lai atļautu lietotnei <ph name="APP_NAME" /> piekļūt jūsu mikrofonam, ieslēdziet mikrofonu arī <ph name="BEGIN_LINK" />Android iestatījumos<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Izslēgt mikrofonu</translation>
 <translation id="4570913071927164677">Detalizēta informācija</translation>
 <translation id="4645575059429386691">Pārvalda viens no jūsu vecākiem</translation>
 <translation id="4670064810192446073">Virtuālā realitāte</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opcija pieejama ekrāna augšdaļā</translation>
 <translation id="5197729504361054390">Atlasīto kontaktpersonu dati tiks kopīgoti ar vietni <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Pēdējoreiz apmeklēta šodien</translation>
+<translation id="5225463052809312700">Ieslēgt kameru</translation>
 <translation id="5264323282659631142">Noņemt žetonu <ph name="CHIP_LABEL" /></translation>
 <translation id="528192093759286357">Lai izietu no pilnekrāna režīma, velciet no augšas un pieskarieties pogai Atpakaļ.</translation>
 <translation id="5300589172476337783">Rādīt</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Tiek izmantots viens sīkfails}zero{Tiek izmantoti # sīkfaili}one{Tiek izmantots # sīkfails}other{Tiek izmantoti # sīkfaili}}</translation>
 <translation id="8487700953926739672">Pieejams bezsaistē</translation>
 <translation id="848952951823693243">Vienmēr pieprasīt vietni mobilajām ierīcēm</translation>
+<translation id="8499083585497694743">Ieslēgt mikrofonu</translation>
 <translation id="851751545965956758">Neļaut vietnēm izveidot savienojumu ar ierīci</translation>
 <translation id="8525306231823319788">Pilnekrāna režīms</translation>
 <translation id="857943718398505171">Atļauta (ieteicams)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb
index e780e56c..485e4d9 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">За да овозможите <ph name="APP_NAME" /> да користи AR, вклучете ја дозволата за камерата и во <ph name="BEGIN_LINK" />Поставки за Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Од <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Пристапот до локацијата е исклучен за уредов. Вклучете го во <ph name="BEGIN_LINK" />Поставки за Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Спушти</translation>
 <translation id="1919345977826869612">Реклами</translation>
 <translation id="1919950603503897840">Изберете контакти</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Напушти</translation>
 <translation id="2687403674020088961">Блокирај ги сите колачиња (не се препорачува)</translation>
 <translation id="2704606927547763573">Копирано</translation>
+<translation id="2713106313042589954">Исклучи ја камерата</translation>
 <translation id="2717722538473713889">Адреси за е-пошта</translation>
 <translation id="2750481671343847896">Сајтовите може да прикажуваат prompt за најавување од услуги за идентификација.</translation>
 <translation id="2785051990912111074">Изборов ќе ги избрише колачињата за <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Прво прашај пред да дозволиш сајтовите да ја користат камерата (се препорачува)</translation>
 <translation id="4505788138578415521">URL-адресата е проширена</translation>
 <translation id="4534723447064627427">За да овозможите <ph name="APP_NAME" /> да пристапува до вашиот микрофон, вклучете ја дозволата за микрофонот и во <ph name="BEGIN_LINK" />Поставки за Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Исклучете звук на микрофонот</translation>
 <translation id="4570913071927164677">Детали</translation>
 <translation id="4645575059429386691">Управувано од вашиот родител</translation>
 <translation id="4670064810192446073">Виртуелна реалност</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Опцијата е достапна речиси најгоре на екранот</translation>
 <translation id="5197729504361054390">Контактите што ќе ги изберете ќе се споделат со <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Последно посетено денес</translation>
+<translation id="5225463052809312700">Вклучи ја камерата</translation>
 <translation id="5264323282659631142">Отстранете го „<ph name="CHIP_LABEL" />“</translation>
 <translation id="528192093759286357">Повлечете од врвот и допрете го копчето Назад за да излезете од цел екран.</translation>
 <translation id="5300589172476337783">Прикажи</translation>
@@ -239,6 +243,7 @@
 <translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Не дозволувај сајтовите да ги користат уредот и податоците за виртуелна реалност</translation>
 <translation id="6447842834002726250">Колачиња</translation>
+<translation id="6467852467360539617">Избриши податоци и ресетирај дозволи</translation>
 <translation id="6527303717912515753">Сподели</translation>
 <translation id="6545864417968258051">Скенирање за Bluetooth</translation>
 <translation id="6552800053856095716">{PERMISSIONS_SUMMARY_BLOCKED,plural, =1{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> и уште <ph name="NUM_MORE" /> се блокирани}one{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> и уште <ph name="NUM_MORE" /> се блокирани}other{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> и уште <ph name="NUM_MORE" /> се блокирани}}</translation>
@@ -278,6 +283,7 @@
 <translation id="7250468141469952378">Избрани ставки: <ph name="ITEM_COUNT" /></translation>
 <translation id="7260727271532453612"><ph name="PERMISSION_1" /> и <ph name="PERMISSION_2" /> се одобрени.</translation>
 <translation id="7302486331832100261">Вообичаено ги блокирате известувањата. За да ги дозволите, допрете „Детали“.</translation>
+<translation id="7383715096023715447">Поставки за <ph name="DOMAIN" /></translation>
 <translation id="7423098979219808738">Прво прашај</translation>
 <translation id="7423538860840206698">Блокирано читање на привремената меморија</translation>
 <translation id="7425915948813553151">Темна тема за сајтови</translation>
@@ -337,6 +343,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Се користи 1 колаче}one{Се користи # колаче}other{Се користат # колачиња}}</translation>
 <translation id="8487700953926739672">Достапно е исклучено од линија</translation>
 <translation id="848952951823693243">Секогаш барај сајт за мобилен</translation>
+<translation id="8499083585497694743">Вклучи го звукот на микрофонот</translation>
 <translation id="851751545965956758">Блокирај ги сајтовите од поврзување со уреди</translation>
 <translation id="8525306231823319788">Цел екран</translation>
 <translation id="857943718398505171">Дозволено (препорачано)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb
index 5ee5687..42c07a3 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> ആപ്പിനെ AR ഉപയോഗിക്കാൻ അനുവദിക്കുന്നതിന് <ph name="BEGIN_LINK" />Android ക്രമീകരണത്തിലും<ph name="END_LINK" /> ക്യാമറ ഓണാക്കുക.</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> എന്നതിൽ നിന്ന്</translation>
 <translation id="1887786770086287077">ഈ ഉപകരണത്തിന്‍റെ ലൊക്കേഷൻ ആക്‌സസ് ഓഫാണ്; <ph name="BEGIN_LINK" />Android ക്രമീകരണത്തിൽ<ph name="END_LINK" /> അത് ഓണാക്കുക.</translation>
+<translation id="1915307458270490472">ഹാംഗ് അപ്പ് ചെയ്യുക</translation>
 <translation id="1919345977826869612">പരസ്യങ്ങള്‍</translation>
 <translation id="1919950603503897840">കോൺടാക്റ്റുകൾ തിരഞ്ഞെടുക്കുക</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">ഉപേക്ഷിക്കുക</translation>
 <translation id="2687403674020088961">എല്ലാ കുക്കികളും ബ്ലോക്ക് ചെയ്യുക (ശുപാർശ ചെയ്യുന്നില്ല)</translation>
 <translation id="2704606927547763573">പകർത്തി</translation>
+<translation id="2713106313042589954">ക്യാമറ ഓഫാക്കുക</translation>
 <translation id="2717722538473713889">ഇമെയിൽ വിലാസങ്ങൾ</translation>
 <translation id="2750481671343847896">ഐഡന്റിറ്റി സേവനങ്ങളിൽ നിന്നുള്ള സൈൻ ഇൻ നിർദ്ദേശങ്ങൾ കാണിക്കാൻ സൈറ്റുകൾക്ക് കഴിയും.</translation>
 <translation id="2785051990912111074">ഇത് തിരഞ്ഞെടുക്കുന്നതിലൂടെ <ph name="WEBSITE" /> എന്നതിനുള്ള കുക്കികൾ മായ്ക്കും</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">നിങ്ങളുടെ ക്യാമറ ഉപയോഗിക്കാൻ സൈറ്റുകളെ അനുവദിക്കുന്നതിന് മുമ്പ് ആദ്യം ചോദിക്കുക (ശുപാർശചെയ്‌തിരിക്കുന്നു)</translation>
 <translation id="4505788138578415521">URL വികസിപ്പിച്ചു</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> ആപ്പിനെ നിങ്ങളുടെ മൈക്രോഫോൺ ആക്‌സസ് ചെയ്യാൻ അനുവദിക്കുന്നതിന്, <ph name="BEGIN_LINK" />Android ക്രമീകരണത്തിലും<ph name="END_LINK" /> മൈക്രോഫോൺ ഓണാക്കുക.</translation>
+<translation id="4566417217121906555">മൈക്രോഫോൺ മ്യൂട്ട് ചെയ്യുക</translation>
 <translation id="4570913071927164677">വിശദാംശങ്ങൾ</translation>
 <translation id="4645575059429386691">നിങ്ങളുടെ രക്ഷിതാവ് നിയന്ത്രിക്കുന്നു</translation>
 <translation id="4670064810192446073">വെർച്വൽ റിയാലിറ്റി</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">സ്‌ക്രീനിന്റെ മുകളിൽ ഓപ്‌ഷൻ ലഭ്യമാണ്</translation>
 <translation id="5197729504361054390">നിങ്ങൾ തിരഞ്ഞെടുക്കുന്ന കോൺടാക്‌റ്റുകൾ <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> എന്ന സൈറ്റുമായി പങ്കിടും.</translation>
 <translation id="5216942107514965959">അവസാനം സന്ദർശിച്ചത് ഇന്നാണ്</translation>
+<translation id="5225463052809312700">ക്യാമറ ഓണാക്കുക</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />' നീക്കംചെയ്യുക</translation>
 <translation id="528192093759286357">പൂർണ്ണ സ്‌ക്രീനിൽ നിന്ന് പുറത്തുകടക്കാൻ, മുകളിൽ നിന്ന് വലിച്ചിട്ട് ബാക്ക് ബട്ടണിൽ സ്‌പർശിക്കുക.</translation>
 <translation id="5300589172476337783">കാണിക്കുക</translation>
@@ -236,8 +240,10 @@
 <translation id="6367753977865761591">നിർദ്ദിഷ്ട സൈറ്റിനായി മൂന്നാം കക്ഷി സൈൻ ഇൻ ബ്ലോക്ക് ചെയ്യുക.</translation>
 <translation id="6388207532828177975">മായ്‌ച്ച് റീസെറ്റ് ചെയ്യുക</translation>
 <translation id="6398765197997659313">പൂര്‍ണ്ണ സ്ക്രീനില്‍ നിന്ന് പുറത്തുകടക്കുക</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">നിങ്ങളുടെ വെർച്വൽ റിയാലിറ്റി ഉപകരണവും ഡാറ്റയും ഉപയോഗിക്കുന്നതിൽ നിന്ന് സൈറ്റുകളെ ബ്ലോക്ക് ചെയ്യുക</translation>
 <translation id="6447842834002726250">കുക്കികള്‍</translation>
+<translation id="6467852467360539617">ഡാറ്റ മായ്ക്കുക, അനുമതികൾ റീസെറ്റ് ചെയ്യുക</translation>
 <translation id="6527303717912515753">പങ്കിടുക</translation>
 <translation id="6545864417968258051">Bluetooth സ്‌കാനിംഗ്</translation>
 <translation id="6552800053856095716">{PERMISSIONS_SUMMARY_BLOCKED,plural, =1{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> എന്നിവയും മറ്റ് <ph name="NUM_MORE" /> എണ്ണവും ബ്ലോക്ക് ചെയ്‌തു}other{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> എന്നിവയും മറ്റ് <ph name="NUM_MORE" /> എണ്ണവും ബ്ലോക്ക് ചെയ്‌തു}}</translation>
@@ -277,6 +283,7 @@
 <translation id="7250468141469952378"><ph name="ITEM_COUNT" /> എണ്ണം തിരഞ്ഞെടുത്തു</translation>
 <translation id="7260727271532453612"><ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> എന്നിവ അനുവദിച്ചു</translation>
 <translation id="7302486331832100261">നിങ്ങൾ സാധാരണയായി അറിയിപ്പുകൾ ബ്ലോക്ക് ചെയ്യാറുണ്ട്. അനുവദിക്കാൻ, വിശദാംശങ്ങൾ ടാപ്പ് ചെയ്യുക.</translation>
+<translation id="7383715096023715447"><ph name="DOMAIN" /> -ന്റെ ക്രമീകരണം</translation>
 <translation id="7423098979219808738">ആദ്യതവണ ചോദിക്കുക</translation>
 <translation id="7423538860840206698">ക്ലിപ്പ്ബോർഡ് റീഡ് ചെയ്യുന്നതിൽ നിന്ന് ബ്ലോക്ക് ചെയ്‌തു</translation>
 <translation id="7425915948813553151">സൈറ്റുകൾക്കുള്ള ഡാർക്ക് തീം</translation>
@@ -336,6 +343,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{ഒരു കുക്കി ഉപയോഗത്തിലാണ്}other{# കുക്കികൾ ഉപയോഗത്തിലാണ്}}</translation>
 <translation id="8487700953926739672">ഓഫ്‌ലൈനില്‍ ലഭ്യമാണ്</translation>
 <translation id="848952951823693243">എല്ലായ്‌പ്പോഴും മൊബൈൽ സൈറ്റ് അഭ്യർത്ഥിക്കുക</translation>
+<translation id="8499083585497694743">മൈക്രോഫോൺ അൺമ്യൂട്ട് ചെയ്യുക</translation>
 <translation id="851751545965956758">ഉപകരണങ്ങളിലേക്ക് കണക്‌റ്റ് ചെയ്യുന്നതിൽ നിന്ന് സൈറ്റുകളെ ബ്ലോക്ക് ചെയ്യുക</translation>
 <translation id="8525306231823319788">പൂര്‍ണ്ണ സ്ക്രീന്‍</translation>
 <translation id="857943718398505171">അനുവദിച്ചിരിക്കുന്നു (ശുപാർശചെയ്‌തത്)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb
index 5665528..24315a1e 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" />-д AR-г ашиглахыг зөвшөөрөхийн тулд камерыг мөн <ph name="BEGIN_LINK" />Андройдын Тохиргоо<ph name="END_LINK" />-нд асаана уу.</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" />-с</translation>
 <translation id="1887786770086287077">Байршлын хандалт энэ төхөөрөмжид унтраалттай байна. Үүнийг <ph name="BEGIN_LINK" />Андройдын тохиргоо<ph name="END_LINK" /> хэсэгт асаана уу.</translation>
+<translation id="1915307458270490472">Таслах</translation>
 <translation id="1919345977826869612">Зар</translation>
 <translation id="1919950603503897840">Харилцагчдыг сонгох</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Үлдээх</translation>
 <translation id="2687403674020088961">Бүх күүкиг блоклох (зөвлөдөггүй)</translation>
 <translation id="2704606927547763573">Хуулсан</translation>
+<translation id="2713106313042589954">Камерыг унтраах</translation>
 <translation id="2717722538473713889">Имэйл хаяг</translation>
 <translation id="2750481671343847896">Сайтууд таниулбарын үйлчилгээнүүдийн нэвтрэх сануулгыг харуулах боломжтой.</translation>
 <translation id="2785051990912111074">Энэ сонголт <ph name="WEBSITE" />-н күүкиг арилгана</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Сайтууд камер ашиглах зөвшөөрөл авах (санал болгосон)</translation>
 <translation id="4505788138578415521">URL-г өргөтгөсөн</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" />-д таны микрофонд хандахыг зөвшөөрөхийн тулд микрофоныг мөн <ph name="BEGIN_LINK" />Андройдын тохиргоо<ph name="END_LINK" />-нд асаана уу.</translation>
+<translation id="4566417217121906555">Микрофоны дууг хаах</translation>
 <translation id="4570913071927164677">Дэлгэрэнгүй</translation>
 <translation id="4645575059429386691">Эцэг, эх нь хариуцаж байна</translation>
 <translation id="4670064810192446073">Виртуал бодит байдал</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Сонголт дэлгэцийн дээд хэсэгт байна</translation>
 <translation id="5197729504361054390">Таны сонгох харилцагчдыг <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />-тай хуваалцана.</translation>
 <translation id="5216942107514965959">Хамгийн сүүлд өнөөдөр зочилсон</translation>
+<translation id="5225463052809312700">Камерыг асаах</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />'-г хасах</translation>
 <translation id="528192093759286357">Бүтэн дэлгэцийн горимоос гарахын тулд дээрээс зөөгөөд, буцах товчлуурыг дарна уу.</translation>
 <translation id="5300589172476337783">Харуулах</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 күүки ашиглаж байна}other{# 1 күүки ашиглаж байна}}</translation>
 <translation id="8487700953926739672">Сүлжээнд холбогдоогүй байна</translation>
 <translation id="848952951823693243">Үргэлж мобайл сайтын хүсэлт тавих</translation>
+<translation id="8499083585497694743">Микрофоны дууг нээх</translation>
 <translation id="851751545965956758">Сайтуудыг төхөөрөмжүүдэд холбогдохыг нь блоклох</translation>
 <translation id="8525306231823319788">Бүтэн дэлгэц</translation>
 <translation id="857943718398505171">Зөвшөөрөгдсөн (санал болгосон)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb
index 8f07afc..0cb168e 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> ला AR वापरू देण्यासाठी, <ph name="BEGIN_LINK" />Android सेटिंग्ज<ph name="END_LINK" />मध्ये कॅमेरादेखील सुरू करा.</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> मधून</translation>
 <translation id="1887786770086287077">या डिव्हाइसाठी स्थान अ‍ॅक्सेस बंद आहे, <ph name="BEGIN_LINK" />Android सेटिंग्‍ज<ph name="END_LINK" /> मध्‍ये हे सुरू करा.</translation>
+<translation id="1915307458270490472">बंद करा</translation>
 <translation id="1919345977826869612">जाहिराती</translation>
 <translation id="1919950603503897840">संपर्क निवडा</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">सोडा</translation>
 <translation id="2687403674020088961">सर्व कुकी ब्लॉक करा (शिफारस केली जात नाही)</translation>
 <translation id="2704606927547763573">कॉपी केले</translation>
+<translation id="2713106313042589954">कॅमेरा बंद करा</translation>
 <translation id="2717722538473713889">ईमेल ॲड्रेस</translation>
 <translation id="2750481671343847896">साइट ओळखीच्या सेवांकडून मिळणाऱ्या साइन इन सूचना दाखवू शकतात.</translation>
 <translation id="2785051990912111074">या निवडीमुळे <ph name="WEBSITE" /> च्या कुकी साफ होतील</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">साइटना तुमचा कॅमेरा वापरण्याची अनुमती देण्यापूर्वी प्रथम विचारा (शिफारस केलेले)</translation>
 <translation id="4505788138578415521">URL चा विस्तार केला गेला</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> ला तुमचा मायक्रोफोन ॲक्सेस करू देण्यासाठी, <ph name="BEGIN_LINK" />Android सेटिंग्ज<ph name="END_LINK" /> मध्येदेखील मायक्रोफोन सुरू करा.</translation>
+<translation id="4566417217121906555">मायक्रोफोन म्यूट करा</translation>
 <translation id="4570913071927164677">तपशील</translation>
 <translation id="4645575059429386691">आपल्या पालकांद्वारे व्यवस्थापित करण्यात आले</translation>
 <translation id="4670064810192446073">आभासी वास्तविकता</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">स्क्रीनच्या सर्वात वरती पर्याय उपलब्ध आहे</translation>
 <translation id="5197729504361054390">तुम्ही निवडलेले संपर्क <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />सोबत शेअर केले जातील.</translation>
 <translation id="5216942107514965959">आज शेवटची भेट दिली</translation>
+<translation id="5225463052809312700">कॅमेरा सुरू करा</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />' काढून टाका</translation>
 <translation id="528192093759286357">शीर्ष पासून ड्रॅग करा आणि फुलस्क्रीन मधून बाहेर पडण्यासाठी परत बटणास स्पर्श करा.</translation>
 <translation id="5300589172476337783">दर्शवा</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">विशिष्ट साइटसाठी तृतीय पक्ष साइन-इन ब्लॉक करा.</translation>
 <translation id="6388207532828177975">साफ आणि रीसेट करा</translation>
 <translation id="6398765197997659313">पूर्ण स्क्रीनमधून निर्गमन करा</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">साइटना तुमचे आभासी वास्तविकता डिव्हाइस आणि डेटा वापरण्यापासून ब्लॉक करा</translation>
 <translation id="6447842834002726250">कुकीज</translation>
 <translation id="6527303717912515753">शेअर करा</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{एक कुकी वापरात आहे}other{# कुकी वापरात आहेत}}</translation>
 <translation id="8487700953926739672">ऑफलाइन उपलब्ध</translation>
 <translation id="848952951823693243">नेहमी मोबाइल साइटची विनंती करा</translation>
+<translation id="8499083585497694743">मायक्रोफोन अनम्यूट करा</translation>
 <translation id="851751545965956758">डिव्हाइसेसशी कनेक्ट करण्यापासून साइटना ब्लॉक करा</translation>
 <translation id="8525306231823319788">फुल स्क्रीन</translation>
 <translation id="857943718398505171">अनुमती दिली (शिफारस केलेले)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb
index fdd24f3..93b787d6 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Untuk membolehkan <ph name="APP_NAME" /> menggunakan AR, hidupkan juga kamera dalam <ph name="BEGIN_LINK" />Tetapan Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Daripada <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Akses lokasi dimatikan untuk peranti ini. Hidupkannya dalam <ph name="BEGIN_LINK" />Tetapan Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Tamatkan panggilan</translation>
 <translation id="1919345977826869612">Iklan</translation>
 <translation id="1919950603503897840">Pilih kenalan</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Tinggalkan</translation>
 <translation id="2687403674020088961">Sekat semua kuki (tidak disyorkan)</translation>
 <translation id="2704606927547763573">Disalin</translation>
+<translation id="2713106313042589954">Matikan kamera</translation>
 <translation id="2717722538473713889">Alamat e-mel</translation>
 <translation id="2750481671343847896">Laman boleh menunjukkan gesaan log masuk daripada perkhidmatan identiti.</translation>
 <translation id="2785051990912111074">Pilihan ini akan mengosongkan kuki untuk <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Tanya dahulu sebelum membenarkan tapak menggunakan kamera anda (disyorkan)</translation>
 <translation id="4505788138578415521">URL dikembangkan</translation>
 <translation id="4534723447064627427">Untuk membolehkan <ph name="APP_NAME" /> mengakses mikrofon anda, hidupkan juga mikrofon dalam <ph name="BEGIN_LINK" />Tetapan Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Redamkan mikrofon</translation>
 <translation id="4570913071927164677">Butiran</translation>
 <translation id="4645575059429386691">Diurus oleh ibu bapa anda</translation>
 <translation id="4670064810192446073">Realiti maya</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Pilihan tersedia berhampiran bahagian atas skrin</translation>
 <translation id="5197729504361054390">Kenalan yang anda pilih akan dikongsi dengan <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Terakhir dilawati hari ini</translation>
+<translation id="5225463052809312700">Hidupkan kamera</translation>
 <translation id="5264323282659631142">Alih keluar '<ph name="CHIP_LABEL" />'</translation>
 <translation id="528192093759286357">Seret dari atas dan sentuh butang kembali untuk keluar daripada skrin penuh.</translation>
 <translation id="5300589172476337783">Paparkan</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 kuki sedang digunakan}other{# kuki sedang digunakan}}</translation>
 <translation id="8487700953926739672">Tersedia di luar talian</translation>
 <translation id="848952951823693243">Sentiasa minta laman mudah alih</translation>
+<translation id="8499083585497694743">Nyahredamkan mikrofon</translation>
 <translation id="851751545965956758">Sekat tapak daripada menyambung ke peranti</translation>
 <translation id="8525306231823319788">Skrin penuh</translation>
 <translation id="857943718398505171">Dibenarkan (disyorkan)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb
index bd03186..5eb3d41 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> က AR အသုံးပြုနိုင်ရန် <ph name="BEGIN_LINK" />Android ဆက်တင်များ<ph name="END_LINK" /> တွင်လည်း ကင်မရာကို ဖွင့်ပါ။</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> မှ</translation>
 <translation id="1887786770086287077">ဤစက်ပစ္စည်းအတွက် တည်နေရာ အသုံးပြုခွင့်ကို ပိတ်ထားသည်။ <ph name="BEGIN_LINK" />Android ဆက်တင်များ<ph name="END_LINK" /> တွင် ၎င်းကို ဖွင့်ပါ။</translation>
+<translation id="1915307458270490472">ဖုန်းချရန်</translation>
 <translation id="1919345977826869612">ကြော်ငြာများ</translation>
 <translation id="1919950603503897840">အဆက်အသွယ်များ ရွေးရန်</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">ထွက်ခွာရန်</translation>
 <translation id="2687403674020088961">ကွတ်ကီးများအားလုံးကို ပိတ်ရန် (အကြံမပြုပါ)</translation>
 <translation id="2704606927547763573">ကူးယူပြီးပါပြီ</translation>
+<translation id="2713106313042589954">ကင်မရာပိတ်ရန်</translation>
 <translation id="2717722538473713889">အီးမေးလ်လိပ်စာများ</translation>
 <translation id="2750481671343847896">ဝဘ်ဆိုက်များက အထောက်အထားဆိုင်ရာ ဝန်ဆောင်မှုများမှ လက်မှတ်ထိုးဝင်မှုဆိုင်ရာ အတည်ပြုစနစ်ကို ပြနိုင်သည်။</translation>
 <translation id="2785051990912111074">ဤရွေးချယ်မှုက <ph name="WEBSITE" /> ၏ ကွတ်ကီးများကို ဖျက်လိုက်ပါလိမ့်မည်</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">သင့်ကမရာကို ဆိုက်များအား အသုံးပြုခွင့်မပေးမီ ဦးစွာမေးမြန်းပါ (အကြံပြုထားသည်)</translation>
 <translation id="4505788138578415521">URL ကို ချဲ့လိုက်သည်</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> က သင့်မိုက်ခရိုဖုန်းကို သုံးနိုင်ရန် <ph name="BEGIN_LINK" />Android ဆက်တင်များ<ph name="END_LINK" /> တွင်လည်း မိုက်ခရိုဖုန်း ဖွင့်ပါ။</translation>
+<translation id="4566417217121906555">မိုက်ခရိုဖုန်းကို အသံပိတ်ရန်</translation>
 <translation id="4570913071927164677">အသေးစိတ်</translation>
 <translation id="4645575059429386691">သင့်မိဘမှ စီမံသည်</translation>
 <translation id="4670064810192446073">ပကတိအသွင်</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">ဖန်သားပြင်၏ထိပ်နားတွင် ရွေးချယ်နိုင်သည်</translation>
 <translation id="5197729504361054390">သင်ရွေးချယ်သော အဆက်အသွယ်များကို <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> နှင့် မျှဝေပါမည်။</translation>
 <translation id="5216942107514965959">ယနေ့ နောက်ဆုံး ဝင်ကြည့်ထားသည်</translation>
+<translation id="5225463052809312700">ကင်မရာဖွင့်ရန်</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />' ဖယ်ရှားရန်</translation>
 <translation id="528192093759286357">မျက်နှာပြင်အပြည့်ဖွင့်ခြင်းမှ ထွက်ရန် ထိပ်ဆုံးမှဆွဲချကာ နောက်ဆုတ်ရန်ခလုတ်ကို နှိပ်ပါ။</translation>
 <translation id="5300589172476337783">ပြရန်</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{ကွတ်ကီးတစ်ခုကို သုံးနေသည်}other{အသုံးပြုနေသော ကွတ်ကီး # ခု}}</translation>
 <translation id="8487700953926739672">Offline ရနိုင်</translation>
 <translation id="848952951823693243">မိုဘိုင်းဝဘ်ဆိုက် အမြဲတောင်းဆိုပါ</translation>
+<translation id="8499083585497694743">မိုက်ခရိုဖုန်း ပြန်ဖွင့်ရန်</translation>
 <translation id="851751545965956758">စက်သို့ ဝဘ်ဆိုက်များ ချိတ်ဆက်ခြင်းကို ပိတ်ထားသည်</translation>
 <translation id="8525306231823319788">မျက်နှာပြင် အပြည့်</translation>
 <translation id="857943718398505171">ခွင့်ပြု၏ (အကြံပြုထား)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb
index 5352ed0..f8ece59 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> लाई AR प्रयोग गर्न दिन <ph name="BEGIN_LINK" />Android का सेटिङ<ph name="END_LINK" />मा गई क्यामेरा पनि अन गर्नुहोस्।</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> बाट प्राप्त जानकारी</translation>
 <translation id="1887786770086287077">यो डिभाइसको स्थानमाथिको पहुँच निष्क्रिय छ। <ph name="BEGIN_LINK" />Android का सेटिङहरू<ph name="END_LINK" /> मा गई यसलाई अन गर्नुहोस्।</translation>
+<translation id="1915307458270490472">ह्याङ्ग अप</translation>
 <translation id="1919345977826869612">विज्ञापनहरू</translation>
 <translation id="1919950603503897840">सम्पर्कहरू चयन गर्नुहोस्</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">छोड्नुहोस्</translation>
 <translation id="2687403674020088961">सबै कुकीहरूमाथि रोक लगाउनुहोस् (सिफारिस गरिँदैन)</translation>
 <translation id="2704606927547763573">प्रतिलिपि गरियो</translation>
+<translation id="2713106313042589954">क्यामेरा अफ गर्नुहोस्</translation>
 <translation id="2717722538473713889">इमेल ठेगानाहरू</translation>
 <translation id="2750481671343847896">साइटहरूले पहिचान सेवा प्रदायकहरूबाट प्राप्त साइन इन गर्ने प्रम्प्टहरू देखाउन सक्छन्।</translation>
 <translation id="2785051990912111074">तपाईंले यो विकल्प रोज्नुभयो भने <ph name="WEBSITE" /> का कुकीहरू मेटाइने छन्</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">साइटहरूलाई तपाईँको क्यामेरा प्रयोग गर्न अनुमति दिनुभन्दा पहिले तपाईँलाई सोध्ने (सिफारिस गरिएको)</translation>
 <translation id="4505788138578415521">URL विस्तृत गरियो</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> लाई आफ्नो माइक्रोफोन प्रयोग गर्न दिन <ph name="BEGIN_LINK" />Android का सेटिङ<ph name="END_LINK" />मा गई माइक्रोफोन पनि अन गर्नुहोस्।</translation>
+<translation id="4566417217121906555">माइक्रोफोन म्युट गर्नुहोस्</translation>
 <translation id="4570913071927164677">विवरणहरू</translation>
 <translation id="4645575059429386691">तपाईँको अविभावक द्वारा प्रबन्ध गरिएको</translation>
 <translation id="4670064810192446073">भर्चुअल रियालिटी</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">यो विकल्प स्क्रिनको सिरान छेउमा उपलब्ध छ</translation>
 <translation id="5197729504361054390">तपाईंले चयन गर्ने सम्पर्कहरू <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> सँग आदान प्रदान गरिने छन्।</translation>
 <translation id="5216942107514965959">पछिल्लो पटक आज खोलिएको</translation>
+<translation id="5225463052809312700">क्यामेरा अन गर्नुहोस्</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />' हटाउनुहोस्</translation>
 <translation id="528192093759286357">पूर्ण स्क्रिनबाट बाहिर निस्कनका लागि शीर्षबाट तानेर पछाडि बटनलाई छुनुहोस्।</translation>
 <translation id="5300589172476337783">देखाउनुहोस्</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">निश्चित साइटमा तेस्रो पक्षको खातामार्फत साइन इन गर्न रोक लगाउनुहोस्।</translation>
 <translation id="6388207532828177975">खाली गरेर रिसेट गर्नुहोस्</translation>
 <translation id="6398765197997659313">पूर्ण स्क्रिनलाई हटाउनुहोस्</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">साइटहरूलाई भर्चुअल रियालिटी चल्ने तपाईंको यन्त्र र त्यसमा भएको डेटा प्रयोग गर्न रोक लगाउनुहोस्</translation>
 <translation id="6447842834002726250">कुकीहरू</translation>
 <translation id="6527303717912515753">साझा गर्नुहोस्</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{एउटा कुकी प्रयोग भइरहेको छ}other{# वटा कुकी प्रयोग भइरहेका छन्}}</translation>
 <translation id="8487700953926739672">अफलाईन उपलब्ध</translation>
 <translation id="848952951823693243">सधैँ साइटको मोबाइल भ्यू देखाइयोस्</translation>
+<translation id="8499083585497694743">माइक्रोफोन अनम्युट गर्नुहोस्</translation>
 <translation id="851751545965956758">साइटहरूलाई यन्त्रमा जडान गर्नबाट रोक लगाउनुहोस्</translation>
 <translation id="8525306231823319788">पूर्ण स्क्रीन</translation>
 <translation id="857943718398505171">(सिफारिस गरिएको) अनुमति दिएको</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb
index a62c9474..9b011552 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Als je <ph name="APP_NAME" /> AR wilt laten gebruiken, moet je ook de camera aanzetten via de <ph name="BEGIN_LINK" />Android-instellingen<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Van <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Locatietoegang staat uit voor dit apparaat. Zet deze aan via de <ph name="BEGIN_LINK" />Android-instellingen<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Ophangen</translation>
 <translation id="1919345977826869612">Advertenties</translation>
 <translation id="1919950603503897840">Contacten selecteren</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> van <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Verlaten</translation>
 <translation id="2687403674020088961">Alle cookies blokkeren (niet aanbevolen)</translation>
 <translation id="2704606927547763573">Gekopieerd</translation>
+<translation id="2713106313042589954">Camera uitzetten</translation>
 <translation id="2717722538473713889">E-mailadressen</translation>
 <translation id="2750481671343847896">Sites kunnen inlogprompts van identiteitsservices tonen.</translation>
 <translation id="2785051990912111074">Met deze keuze wis je de cookies voor <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Eerst vragen voordat sites je camera mogen gebruiken (aanbevolen)</translation>
 <translation id="4505788138578415521">URL uitgevouwen</translation>
 <translation id="4534723447064627427">Als je <ph name="APP_NAME" /> toegang wilt geven tot je microfoon, moet je de microfoon ook aanzetten via de <ph name="BEGIN_LINK" />Android-instellingen<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Microfoon uitzetten</translation>
 <translation id="4570913071927164677">Details</translation>
 <translation id="4645575059429386691">Beheerd door je ouder</translation>
 <translation id="4670064810192446073">Virtual reality</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Optie beschikbaar boven aan het scherm</translation>
 <translation id="5197729504361054390">De contacten die je selecteert, worden gedeeld met <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Laatst bezocht: vandaag</translation>
+<translation id="5225463052809312700">Camera aanzetten</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />' verwijderen</translation>
 <translation id="528192093759286357">Sleep vanaf de bovenkant en tik op de knop Terug om het volledige scherm te sluiten.</translation>
 <translation id="5300589172476337783">Tonen</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Externe login blokkeren voor een specifieke site.</translation>
 <translation id="6388207532828177975">Wissen en opnieuw instellen</translation>
 <translation id="6398765197997659313">Volledig scherm sluiten</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Voorkomen dat sites je virtualreality-apparaat en -gegevens gebruiken</translation>
 <translation id="6447842834002726250">Cookies</translation>
 <translation id="6527303717912515753">Delen</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie in gebruik}other{# cookies in gebruik}}</translation>
 <translation id="8487700953926739672">Offline beschikbaar</translation>
 <translation id="848952951823693243">Altijd mobiele site aanvragen</translation>
+<translation id="8499083585497694743">Microfoon aanzetten</translation>
 <translation id="851751545965956758">Voorkomen dat sites verbinding maken met apparaten</translation>
 <translation id="8525306231823319788">Volledig scherm</translation>
 <translation id="857943718398505171">Toegestaan (aanbevolen)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb
index da0822f..77c2c6ea 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">For å la <ph name="APP_NAME" /> bruke AR, slå på kameraet i <ph name="BEGIN_LINK" />Android-innstillingene<ph name="END_LINK" /> også.</translation>
 <translation id="1864927262126810325">Fra <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Posisjonstilgang er slått av for denne enheten. Slå den på i <ph name="BEGIN_LINK" />Android-innstillingene<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Legg på</translation>
 <translation id="1919345977826869612">Annonser</translation>
 <translation id="1919950603503897840">Velg kontakter</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Gå ut</translation>
 <translation id="2687403674020088961">Blokkér alle informasjonskapsler (anbefales ikke)</translation>
 <translation id="2704606927547763573">Kopiert</translation>
+<translation id="2713106313042589954">Slå av kameraet</translation>
 <translation id="2717722538473713889">E-postadresser</translation>
 <translation id="2750481671343847896">Nettsteder kan vise påloggingsforespørsler fra identitetstjenester.</translation>
 <translation id="2785051990912111074">Dette valget sletter informasjonskapsler for <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Spør før nettsteder får bruke kameraet (anbefales)</translation>
 <translation id="4505788138578415521">Nettadressen er utvidet</translation>
 <translation id="4534723447064627427">For å gi <ph name="APP_NAME" /> tilgang til mikrofonen må du også slå på mikrofonen i <ph name="BEGIN_LINK" />Android-innstillingene<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Slå av mikrofonen</translation>
 <translation id="4570913071927164677">Detaljer</translation>
 <translation id="4645575059429386691">Administreres av foreldrene dine</translation>
 <translation id="4670064810192446073">Virtuell virkelighet</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Alternativet finner du nesten øverst på skjermen</translation>
 <translation id="5197729504361054390">Kontaktene du velger, deles med <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Sist besøkt i dag</translation>
+<translation id="5225463052809312700">Slå på kameraet</translation>
 <translation id="5264323282659631142">Fjern «<ph name="CHIP_LABEL" />»</translation>
 <translation id="528192093759286357">Dra ned fra toppen og trykk på tilbakeknappen for å avslutte fullskjerm.</translation>
 <translation id="5300589172476337783">Vis</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Blokkér pålogging fra tredjeparter for bestemte nettsteder.</translation>
 <translation id="6388207532828177975">Slett alt og tilbakestill</translation>
 <translation id="6398765197997659313">Avslutt fullskjerm</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Blokkér nettsteder fra å bruke virtuell virkelighet-enheten din og -dataene dine</translation>
 <translation id="6447842834002726250">Informasjonskapsler</translation>
 <translation id="6527303717912515753">Del</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 informasjonskapsel er i bruk}other{# informasjonskapsler er i bruk}}</translation>
 <translation id="8487700953926739672">Tilgjengelig utenfor nettet</translation>
 <translation id="848952951823693243">Be alltid om mobilnettstedet</translation>
+<translation id="8499083585497694743">Slå på mikrofonen</translation>
 <translation id="851751545965956758">Blokkér at nettsteder kobler til enheter</translation>
 <translation id="8525306231823319788">Full skjerm</translation>
 <translation id="857943718398505171">Tillatt (anbefales)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb
index 1bd424d..e8822448 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" />କୁ AR ବ୍ୟବହାର କରିବାକୁ ଅନୁମତି ଦେବା ପାଇଁ, <ph name="BEGIN_LINK" />Android ସେଟିଂସ<ph name="END_LINK" />ରେ କ୍ୟାମେରା ମଧ୍ୟ ଚାଲୁ କରନ୍ତୁ।</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" />ରୁ</translation>
 <translation id="1887786770086287077">ଏହି ଡିଭାଇସ୍ ପାଇଁ ଲୋକେସନ୍ ଆକ୍ସେସ୍ ବନ୍ଦ ଅଛି। <ph name="BEGIN_LINK" />Android ସେଟିଂସ୍‍<ph name="END_LINK" />ରେ ଏହାକୁ ଚାଲୁ କରନ୍ତୁ।</translation>
+<translation id="1915307458270490472">ସମାପ୍ତ କରନ୍ତୁ</translation>
 <translation id="1919345977826869612">ବିଜ୍ଞାପନ</translation>
 <translation id="1919950603503897840">ଯୋଗାଯୋଗଗୁଡ଼ିକ ଚୟନ କରନ୍ତୁ</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">ଛାଡ଼ନ୍ତୁ</translation>
 <translation id="2687403674020088961">ସମସ୍ତ କୁକୀ ବ୍ଲକ୍ କରନ୍ତୁ (ସୁପାରିଶ କରାଯାଇ ନାହିଁ)</translation>
 <translation id="2704606927547763573">କପି କରାଯାଇଛି</translation>
+<translation id="2713106313042589954">କ୍ୟାମେରା ବନ୍ଦ କରନ୍ତୁ</translation>
 <translation id="2717722538473713889">ଇମେଲ୍ ଠିକଣାଗୁଡ଼ିକ</translation>
 <translation id="2750481671343847896">ପରିଚୟ ପ୍ରଦାନ କରୁଥିବା ସେବାଗୁଡ଼ିକରୁ ସାଇନ-ଇନ ପ୍ରମ୍ପ୍ଟଗୁଡ଼ିକୁ ସାଇଟଗୁଡ଼ିକ ଦେଖାଇପାରନ୍ତି।</translation>
 <translation id="2785051990912111074">ଏହି ବିକଳ୍ପକୁ ପସନ୍ଦ କଲେ ଏହା<ph name="WEBSITE" /> ପାଇଁ କୁକୀଗୁଡ଼ିକୁ ଖାଲି କରିଦେବ</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">ଆପଣଙ୍କର କ୍ୟାମେରା ବ୍ୟବହାର କରିବାକୁ ସାଇଟ୍‌ଗୁଡ଼ିକୁ ଅନୁମତି ଦେବା ପୂର୍ବରୁ, ପ୍ରଥମେ ପଚାରନ୍ତୁ (ସୁପାରିଶ କରାଯାଇଛି)</translation>
 <translation id="4505788138578415521">URLକୁ ବିସ୍ତାର କରାଯାଇଛି</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" />କୁ ଆପଣଙ୍କ ମାଇକ୍ରୋଫୋନ୍ ଆକ୍ସେସ୍ ଦେବା ପାଇଁ, <ph name="BEGIN_LINK" />Android ସେଟିଂସ<ph name="END_LINK" />ରେ ମାଇକ୍ରୋଫୋନ୍ ମଧ୍ୟ ଚାଲୁ କରନ୍ତୁ।</translation>
+<translation id="4566417217121906555">ମାଇକ୍ରୋଫୋନକୁ ମ୍ୟୁଟ୍ କରନ୍ତୁ</translation>
 <translation id="4570913071927164677">ବିବରଣୀ</translation>
 <translation id="4645575059429386691">ଆପଣଙ୍କର ଅଭିବାବକଙ୍କ ଦ୍ୱାରା ପରିଚାଳିତ</translation>
 <translation id="4670064810192446073">ଭର୍ଚୁଆଲ୍ ରିଆଲିଟୀ</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">ସ୍କ୍ରିନର ଶୀର୍ଷଭାଗର ନିକଟରେ ବିକଳ୍ପ ଉପଲବ୍ଧ ଅଛି</translation>
 <translation id="5197729504361054390">ଆପଣ ଚୟନ କରିଥିବା ଯୋଗାଯୋଗଗୁଡ଼ିକ <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> ସହିତ ସେୟାର୍ କରାଯିବ।</translation>
 <translation id="5216942107514965959">ଆଜି ଶେଷ ଥର ଭିଜିଟ୍ କରାଯାଇଛି</translation>
+<translation id="5225463052809312700">କ୍ୟାମେରା ଚାଲୁ କରନ୍ତୁ</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />'କୁ କାଢ଼ି ଦିଅନ୍ତୁ</translation>
 <translation id="528192093759286357">ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍‌ରୁ ପ୍ରସ୍ଥାନ କରିବାକୁ ଶୀର୍ଷରୁ ଟାଣନ୍ତୁ ଏବଂ ପଛପଟ ବଟନ୍‌କୁ ସ୍ପର୍ଶ କରନ୍ତୁ</translation>
 <translation id="5300589172476337783">ପ୍ରଦର୍ଶନ କରନ୍ତୁ</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1ଟି କୁକୀ ବ୍ୟବହାର କରାଯାଉଛି}other{#ଟି କୁକୀ ବ୍ୟବହାର କରାଯାଉଛି}}</translation>
 <translation id="8487700953926739672">ଅଫ୍‍ଲାଇନ୍‌ରେ ଉପଲବ୍ଧ</translation>
 <translation id="848952951823693243">ସର୍ବଦା ମୋବାଇଲ ସାଇଟର ଅନୁରୋଧ କରନ୍ତୁ</translation>
+<translation id="8499083585497694743">ମାଇକ୍ରୋଫୋନକୁ ଅନମ୍ୟୁଟ୍ କରନ୍ତୁ</translation>
 <translation id="851751545965956758">ସାଇଟ୍‌ଗୁଡ଼ିକୁ ଡିଭାଇସ୍‌ଗୁଡ଼ିକ ସହିତ ସଂଯୋଗ ହେବାରୁ ବ୍ଲକ୍ କରନ୍ତୁ</translation>
 <translation id="8525306231823319788">ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍‌</translation>
 <translation id="857943718398505171">ଅନୁମୋଦିତ (ସୁପାରିଶ କରାଯାଇଛି)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb
index ae34b36..30f9095 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> ਨੂੰ AR ਵਰਤਣ ਦੇਣ ਲਈ <ph name="BEGIN_LINK" />Android ਸੈਟਿੰਗਾਂ<ph name="END_LINK" /> ਵਿੱਚ ਕੈਮਰਾ ਵੀ ਚਾਲੂ ਕਰੋ।</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> ਤੋਂ</translation>
 <translation id="1887786770086287077">ਇਸ ਡੀਵਾਈਸ ਲਈ ਟਿਕਾਣਾ ਪਹੁੰਚ ਬੰਦ ਹੈ। ਇਸਨੂੰ <ph name="BEGIN_LINK" />Android ਸੈਟਿੰਗਾਂ<ph name="END_LINK" /> ਵਿੱਚ ਚਾਲੂ ਕਰੋ।</translation>
+<translation id="1915307458270490472">ਸਮਾਪਤ ਕਰੋ</translation>
 <translation id="1919345977826869612">ਵਿਗਿਆਪਨ</translation>
 <translation id="1919950603503897840">ਸੰਪਰਕ ਚੁਣੋ</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">ਛੱਡੋ</translation>
 <translation id="2687403674020088961">ਸਾਰੀਆਂ ਕੁਕੀਜ਼ ਨੂੰ ਬਲਾਕ ਕਰੋ (ਇਸਦੀ ਸਿਫ਼ਾਰਸ਼ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ)</translation>
 <translation id="2704606927547763573">ਕਾਪੀ ਕੀਤਾ</translation>
+<translation id="2713106313042589954">ਕੈਮਰਾ ਬੰਦ ਕਰੋ</translation>
 <translation id="2717722538473713889">ਈਮੇਲ ਪਤੇ</translation>
 <translation id="2750481671343847896">ਸਾਈਟਾਂ ਪਛਾਣ ਸੰਬੰਧੀ ਸੇਵਾਵਾਂ ਵੱਲੋਂ ਸਾਈਨ-ਇਨ ਕਰਨ ਦੇ ਉਤਪ੍ਰੇਰਕਾਂ ਨੂੰ ਦਿਖਾ ਸਕਦੀਆਂ ਹਨ।</translation>
 <translation id="2785051990912111074">ਇਹ ਚੋਣ <ph name="WEBSITE" /> ਦੀਆਂ ਕੁਕੀਜ਼ ਨੂੰ ਕਲੀਅਰ ਕਰ ਦੇਵੇਗੀ</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">ਸਾਈਟਾਂ ਨੂੰ ਤੁਹਾਡੇ ਕੈਮਰੇ ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤੁਹਾਡੀ ਇਜਾਜ਼ਤ ਲੈਣ ਨੂੰ ਜ਼ਰੂਰੀ ਬਣਾਓ (ਸਿਫ਼ਾਰਸ਼ੀ)</translation>
 <translation id="4505788138578415521">URL ਦਾ ਵਿਸਤਾਰ ਕੀਤਾ ਗਿਆ</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> ਨੂੰ ਆਪਣੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੇਣ ਲਈ, <ph name="BEGIN_LINK" />Android ਸੈਟਿੰਗਾਂ<ph name="END_LINK" /> ਵਿੱਚ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਵੀ ਚਾਲੂ ਕਰੋ।</translation>
+<translation id="4566417217121906555">ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਮਿਊਟ ਕਰੋ</translation>
 <translation id="4570913071927164677">ਵੇਰਵੇ</translation>
 <translation id="4645575059429386691">ਤੁਹਾਡੇ ਮਾਤਾ ਜਾਂ ਪਿਤਾ ਵੱਲੋਂ ਵਿਵਸਥਿਤ</translation>
 <translation id="4670064810192446073">ਆਭਾਸੀ ਵਾਸਤਵਿਕਤਾ</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">ਸਕ੍ਰੀਨ ਦੇ ਸਿਖਰ ਨੇੜੇ ਵਿਕਲਪ ਉਪਲਬਧ ਹਨ</translation>
 <translation id="5197729504361054390">ਤੁਹਾਡੇ ਵੱਲੋਂ ਚੁਣੇ ਸੰਪਰਕ <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> ਨਾਲ ਸਾਂਝੇ ਕੀਤੇ ਜਾਣਗੇ।</translation>
 <translation id="5216942107514965959">ਪਿਛਲੀ ਵਾਰ ਅੱਜ ਦੇਖੀ ਗਈ</translation>
+<translation id="5225463052809312700">ਕੈਮਰਾ ਚਾਲੂ ਕਰੋ</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />' ਨੂੰ ਹਟਾਓ</translation>
 <translation id="528192093759286357">ਉੱਪਰ ਤੋਂ ਘਸੀਟੋ ਅਤੇ ਪੂਰੀ ਸਕ੍ਰੀਨ ਤੋਂ ਬਾਹਰ ਜਾਣ ਲਈ ਪਿੱਛੇ ਜਾਓ ਬਟਨ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ।</translation>
 <translation id="5300589172476337783">ਦਿਖਾਓ</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 ਕੁਕੀ ਵਰਤੋਂ ਵਿੱਚ ਹੈ}one{# ਕੁਕੀ ਵਰਤੋਂ ਵਿੱਚ ਹੈ}other{# ਕੁਕੀਜ਼ ਵਰਤੋਂ ਵਿੱਚ ਹਨ}}</translation>
 <translation id="8487700953926739672">ਆਫ਼ਲਾਈਨ ਉਪਲਬਧ</translation>
 <translation id="848952951823693243">ਹਮੇਸ਼ਾਂ ਮੋਬਾਈਲ ਸਾਈਟ ਦੀ ਬੇਨਤੀ ਕਰੋ</translation>
+<translation id="8499083585497694743">ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਅਣਮਿਊਟ ਕਰੋ</translation>
 <translation id="851751545965956758">ਸਾਈਟਾਂ ਨੂੰ ਡੀਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਤੋਂ ਬਲਾਕ ਕਰੋ</translation>
 <translation id="8525306231823319788">ਪੂਰੀ ਸਕ੍ਰੀਨ</translation>
 <translation id="857943718398505171">ਇਜਾਜ਼ਤ ਹੈ ( ਸਿਫ਼ਾਰਸ਼  ਕੀਤੇ)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb
index 0bace052..824626b9 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Aby w aplikacji <ph name="APP_NAME" /> można było korzystać z rzeczywistości rozszerzonej, włącz też aparat w <ph name="BEGIN_LINK" />ustawieniach Androida<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Źródło: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Dostęp do lokalizacji jest wyłączony na tym urządzeniu. Włącz go w <ph name="BEGIN_LINK" />Ustawieniach Androida<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Rozłącz</translation>
 <translation id="1919345977826869612">Reklamy</translation>
 <translation id="1919950603503897840">Wybierz kontakty</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Wyjdź</translation>
 <translation id="2687403674020088961">Blokuj wszystkie pliki cookie (niezalecane)</translation>
 <translation id="2704606927547763573">Skopiowane</translation>
+<translation id="2713106313042589954">Wyłącz kamerę</translation>
 <translation id="2717722538473713889">Adresy e-mail</translation>
 <translation id="2750481671343847896">Witryny mogą wyświetlać prośby o zalogowanie się pochodzące od usług tożsamości.</translation>
 <translation id="2785051990912111074">Spowoduje to usunięcie plików cookie witryny <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Pytaj, zanim zezwolisz stronom na korzystanie z aparatu (zalecane)</translation>
 <translation id="4505788138578415521">URL pokazany w całości</translation>
 <translation id="4534723447064627427">Aby zezwolić aplikacji <ph name="APP_NAME" /> na dostęp do mikrofonu, musisz go też włączyć w <ph name="BEGIN_LINK" />ustawieniach Androida<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Wycisz mikrofon</translation>
 <translation id="4570913071927164677">Szczegóły</translation>
 <translation id="4645575059429386691">Zarządzany przez Twojego rodzica</translation>
 <translation id="4670064810192446073">Rzeczywistość wirtualna</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opcja dostępna u góry ekranu</translation>
 <translation id="5197729504361054390">Wybrane kontakty zostaną udostępnione witrynie <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Ostatnio używana dzisiaj</translation>
+<translation id="5225463052809312700">Włącz kamerę</translation>
 <translation id="5264323282659631142">Usuń: „<ph name="CHIP_LABEL" />”</translation>
 <translation id="528192093759286357">Przeciągnij od góry i kliknij przycisk Wstecz, by wyjść z trybu pełnoekranowego.</translation>
 <translation id="5300589172476337783">Pokaż</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 plik cookie w użyciu}few{# pliki cookie w użyciu}many{# plików cookie w użyciu}other{# pliku cookie w użyciu}}</translation>
 <translation id="8487700953926739672">Dostępny offline</translation>
 <translation id="848952951823693243">Zawsze żądaj strony mobilnej</translation>
+<translation id="8499083585497694743">Włącz mikrofon</translation>
 <translation id="851751545965956758">Nie zezwalaj stronom na łączenie się z urządzeniami</translation>
 <translation id="8525306231823319788">Pełny ekran</translation>
 <translation id="857943718398505171">Dozwolone (zalecane)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb
index c9fb0ae..61e593a 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Para permitir que o app <ph name="APP_NAME" /> use RA, também é necessário ativar a câmera nas <ph name="BEGIN_LINK" />configurações do Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">De <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">O acesso ao local está desativado neste dispositivo. Ative nas <ph name="BEGIN_LINK" />Configurações do Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Desligar</translation>
 <translation id="1919345977826869612">Anúncios</translation>
 <translation id="1919950603503897840">Selecionar contatos</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Sair</translation>
 <translation id="2687403674020088961">Bloquear todos os cookies (não recomendado)</translation>
 <translation id="2704606927547763573">Copiado</translation>
+<translation id="2713106313042589954">Desativar câmera</translation>
 <translation id="2717722538473713889">Endereços de e-mail</translation>
 <translation id="2750481671343847896">Sites podem exibir solicitações de login de serviços de identificação.</translation>
 <translation id="2785051990912111074">Essa ação vai apagar os cookies de <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Perguntar antes de permitir que sites usem sua câmera (recomendado)</translation>
 <translation id="4505788138578415521">URL expandido</translation>
 <translation id="4534723447064627427">Para permitir que o app <ph name="APP_NAME" /> acesse seu microfone, também é preciso ativá-lo nas <ph name="BEGIN_LINK" />configurações do Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Desativar microfone</translation>
 <translation id="4570913071927164677">Detalhes</translation>
 <translation id="4645575059429386691">Gerenciado pelos seus pais</translation>
 <translation id="4670064810192446073">Realidade virtual</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opção disponível perto da parte superior da tela</translation>
 <translation id="5197729504361054390">Os contatos selecionados serão compartilhados com <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Última visita: hoje</translation>
+<translation id="5225463052809312700">Ativar câmera</translation>
 <translation id="5264323282659631142">Remover "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Arraste a partir da parte superior e toque no botão "Voltar" para sair da tela cheia.</translation>
 <translation id="5300589172476337783">Mostrar</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Bloqueie o login de terceiros em um site específico.</translation>
 <translation id="6388207532828177975">Limpar e redefinir</translation>
 <translation id="6398765197997659313">Sair do modo tela cheia</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Impedir que sites usem seus dispositivos e dados de realidade virtual</translation>
 <translation id="6447842834002726250">Cookies</translation>
 <translation id="6527303717912515753">Compartilhar</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie em uso}one{# cookie em uso}other{# cookies em uso}}</translation>
 <translation id="8487700953926739672">Disponível off-line</translation>
 <translation id="848952951823693243">Sempre ver a versão para dispositivos móveis</translation>
+<translation id="8499083585497694743">Ativar microfone</translation>
 <translation id="851751545965956758">Impedir que sites se conectem a dispositivos</translation>
 <translation id="8525306231823319788">Tela cheia</translation>
 <translation id="857943718398505171">Permitido (recomendado)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb
index 116abf1..ac3449c1 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Para permitir que a app <ph name="APP_NAME" /> utilize a realidade aumentada, ative também a câmara nas <ph name="BEGIN_LINK" />Definições do Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">De <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">O acesso à localização está desativado para este dispositivo. Ative-o nas <ph name="BEGIN_LINK" />Definições do Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Desligar</translation>
 <translation id="1919345977826869612">Anúncios</translation>
 <translation id="1919950603503897840">Selecionar contactos</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Sair</translation>
 <translation id="2687403674020088961">Bloquear todos os cookies (não recomendado).</translation>
 <translation id="2704606927547763573">Copiado</translation>
+<translation id="2713106313042589954">Desativar câmara</translation>
 <translation id="2717722538473713889">Endereços de email</translation>
 <translation id="2750481671343847896">Os sites podem mostrar pedidos de início de sessão de serviços de identidade.</translation>
 <translation id="2785051990912111074">Esta opção limpa os cookies de <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Perguntar antes de permitir que os sites utilizem a câmara (recomendado)</translation>
 <translation id="4505788138578415521">URL expandido</translation>
 <translation id="4534723447064627427">Para permitir que a app <ph name="APP_NAME" /> aceda ao microfone, ative também o microfone nas <ph name="BEGIN_LINK" />Definições do Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Desativar microfone</translation>
 <translation id="4570913071927164677">Detalhes</translation>
 <translation id="4645575059429386691">Gerido pelos teus pais</translation>
 <translation id="4670064810192446073">Realidade virtual</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opção disponível junto à parte superior do ecrã</translation>
 <translation id="5197729504361054390">Os contactos que selecionar serão partilhados com <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Última visita hoje</translation>
+<translation id="5225463052809312700">Ativar câmara</translation>
 <translation id="5264323282659631142">Remover "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Arraste a partir da parte superior e toque no botão de retrocesso para sair do ecrã inteiro.</translation>
 <translation id="5300589172476337783">Mostrar</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie em utilização}other{# cookies em utilização}}</translation>
 <translation id="8487700953926739672">Disponível offline</translation>
 <translation id="848952951823693243">Peça sempre o site para dispositivos móveis</translation>
+<translation id="8499083585497694743">Reativar microfone</translation>
 <translation id="851751545965956758">Impedir a ligação de sites a dispositivos</translation>
 <translation id="8525306231823319788">Ecrã inteiro</translation>
 <translation id="857943718398505171">Permitido (recomendado)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb
index b4d55f2a..8099480 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Pentru a permite aplicației <ph name="APP_NAME" /> să folosească RA, activează camera foto și în <ph name="BEGIN_LINK" />Setările Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">De la <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Accesul la locație este dezactivat pentru acest dispozitiv. Activează-l în <ph name="BEGIN_LINK" />Setări Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Încheie apelul</translation>
 <translation id="1919345977826869612">Anunțuri</translation>
 <translation id="1919950603503897840">Selectează persoane de contact</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Ieși</translation>
 <translation id="2687403674020088961">Blochează toate cookie-urile (nu este recomandat)</translation>
 <translation id="2704606927547763573">Copiat</translation>
+<translation id="2713106313042589954">Dezactivează camera foto</translation>
 <translation id="2717722538473713889">Adrese de e-mail</translation>
 <translation id="2750481671343847896">Site-urile pot afișa solicitări de conectare de la servicii de identitate.</translation>
 <translation id="2785051990912111074">Astfel, se vor șterge cookie-urile pentru <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Întreabă înainte de a permite site-urilor să folosească camera foto (recomandat)</translation>
 <translation id="4505788138578415521">Adresă URL extinsă</translation>
 <translation id="4534723447064627427">Pentru a permite aplicației <ph name="APP_NAME" /> să acceseze microfonul, activează microfonul și în <ph name="BEGIN_LINK" />Setările Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Dezactivează sunetul microfonului</translation>
 <translation id="4570913071927164677">Detalii</translation>
 <translation id="4645575059429386691">Gestionat de părintele tău</translation>
 <translation id="4670064810192446073">Realitate virtuală</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opțiunea este disponibilă în partea de sus a ecranului</translation>
 <translation id="5197729504361054390">Persoanele de contact pe care le selectezi vor fi trimise site-ului <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Accesat ultima dată azi</translation>
+<translation id="5225463052809312700">Activează camera foto</translation>
 <translation id="5264323282659631142">Elimină „<ph name="CHIP_LABEL" />”</translation>
 <translation id="528192093759286357">Trage din partea de sus și atinge butonul Înapoi pentru a ieși din ecranul complet.</translation>
 <translation id="5300589172476337783">Afișează</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Blochează conectarea terță parte pentru un anumit site.</translation>
 <translation id="6388207532828177975">Șterge și resetează</translation>
 <translation id="6398765197997659313">Ieși din ecranul complet</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Împiedică site-urile să folosească dispozitivul de realitate virtuală și datele conexe</translation>
 <translation id="6447842834002726250">Cookie-uri</translation>
 <translation id="6527303717912515753">Trimite</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Un cookie folosit}few{# cookie-uri folosite}other{# de cookie-uri folosite}}</translation>
 <translation id="8487700953926739672">Disponibil offline</translation>
 <translation id="848952951823693243">Solicită întotdeauna site-ul mobil</translation>
+<translation id="8499083585497694743">Activează sunetul microfonului</translation>
 <translation id="851751545965956758">Blochează conectarea site-urilor la dispozitive</translation>
 <translation id="8525306231823319788">Ecran complet</translation>
 <translation id="857943718398505171">Acordată (recomandat)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb
index 64e60dc..7f05ae7 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Чтобы браузер "<ph name="APP_NAME" />" мог использовать дополненную реальность, также предоставьте ему доступ к камере в <ph name="BEGIN_LINK" />настройках Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Источник: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Для устройства отключено определение местоположения. Включите эту функцию в <ph name="BEGIN_LINK" />настройках Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Закрыть</translation>
 <translation id="1919345977826869612">Реклама</translation>
 <translation id="1919950603503897840">Выбрать контакты</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> из <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Закрыть</translation>
 <translation id="2687403674020088961">Заблокировать все файлы cookie (не рекомендуется)</translation>
 <translation id="2704606927547763573">Скопировано</translation>
+<translation id="2713106313042589954">Выключить камеру</translation>
 <translation id="2717722538473713889">Адреса электронной почты</translation>
 <translation id="2750481671343847896">Сайты могут показывать предложения войти в аккаунт от сервисов подтверждения личности.</translation>
 <translation id="2785051990912111074">Будут удалены файлы cookie для <ph name="WEBSITE" />.</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Запрашивать разрешение на доступ к камере (рекомендуется)</translation>
 <translation id="4505788138578415521">URL развернут</translation>
 <translation id="4534723447064627427">Чтобы у приложения "<ph name="APP_NAME" />" был доступ к микрофону, предоставьте разрешение в <ph name="BEGIN_LINK" />настройках Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Отключить микрофон</translation>
 <translation id="4570913071927164677">Подробнее…</translation>
 <translation id="4645575059429386691">Управляется вашими родителями</translation>
 <translation id="4670064810192446073">Виртуальная реальность</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Действие доступно вверху экрана</translation>
 <translation id="5197729504361054390">Сайт <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> получит доступ к выбранным контактам.</translation>
 <translation id="5216942107514965959">Последнее посещение: сегодня</translation>
+<translation id="5225463052809312700">Включить камеру</translation>
 <translation id="5264323282659631142">Удалить элемент "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Чтобы выйти из полноэкранного режима, проведите по экрану сверху вниз и нажмите кнопку "Назад".</translation>
 <translation id="5300589172476337783">Показать</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Используется 1 файл cookie}one{Используется # файл cookie}few{Используются # файла cookie}many{Используются # файлов cookie}other{Используется # файла cookie}}</translation>
 <translation id="8487700953926739672">Доступно в автономном режиме</translation>
 <translation id="848952951823693243">Всегда запрашивать мобильный сайт</translation>
+<translation id="8499083585497694743">Включить микрофон</translation>
 <translation id="851751545965956758">Не разрешать сайтам подключаться к устройствам</translation>
 <translation id="8525306231823319788">Полноэкранный режим</translation>
 <translation id="857943718398505171">Разрешено (рекомендуется)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb
index 481c2bc..7d7b77b 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> හට AR භාවිත කිරීමට ඉඩ දීමට, <ph name="BEGIN_LINK" />Android සැකසීම්<ph name="END_LINK" /> තුළ කැමරාවද ක්‍රියාත්මක කරන්න.</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> සිට</translation>
 <translation id="1887786770086287077">මෙම උපාංගය සඳහා ස්ථාන ප්‍රවේශය ක්‍රියා විරහිතයි. <ph name="BEGIN_LINK" />Android සැකසීම්<ph name="END_LINK" /> තුළ එය ක්‍රියාත්මක කරන්න.</translation>
+<translation id="1915307458270490472">විසන්ධි කරන්න</translation>
 <translation id="1919345977826869612">වෙළඳ දැන්වීම්</translation>
 <translation id="1919950603503897840">සම්බන්ධතා තෝරන්න</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">හැර යන්න</translation>
 <translation id="2687403674020088961">සියලුම කුකී අවහිර කරන්න (නිර්දේශ නොකෙරේ)</translation>
 <translation id="2704606927547763573">පිටපත් කරන ලදි</translation>
+<translation id="2713106313042589954">කැමරාව ක්‍රියාවිරහිත කරන්න</translation>
 <translation id="2717722538473713889">ඉ-තැපැල් ලිපින</translation>
 <translation id="2750481671343847896">අඩවිවලට අනන්‍යතා සේවාවලින් පිරීමේ ප්‍රේරක පෙන්විය හැකිය.</translation>
 <translation id="2785051990912111074">මෙම තේරීම <ph name="WEBSITE" /> සඳහා කුකි හිස් කරනු ඇත</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">අඩවි වලට ඔබගේ කැමරාව භාවිතා කිරීමට ඉඩ දීමට පෙර පළමුව විමසන්න (නිර්දේශිතයි)</translation>
 <translation id="4505788138578415521">URL දිග හරින ලදි</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> හට ඔබේ මයික්‍රෆෝනයට ප්‍රවේශ වීමට ඉඩ දීමට, <ph name="BEGIN_LINK" />Android සැකසීම්<ph name="END_LINK" /> තුළ මයික්‍රෆෝනයද ක්‍රියාත්මක කරන්න.</translation>
+<translation id="4566417217121906555">මයික්‍රෆෝනය නිහඬ කරන්න</translation>
 <translation id="4570913071927164677">විස්තර</translation>
 <translation id="4645575059429386691">ඔබේ දෙමව්පියන් පාලනය කරයි</translation>
 <translation id="4670064810192446073">අතත්‍ය යථාර්ථය</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">තිරයේ ඉහළට ආසන්නව විකල්පය තිබේ</translation>
 <translation id="5197729504361054390">ඔබ තේරූ සම්බන්ධතා <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> සමඟ බෙදා ගනු ලැබේ.</translation>
 <translation id="5216942107514965959">අද අවසන් වරට පිවිසි</translation>
+<translation id="5225463052809312700">කැමරාව ක්‍රියාත්මක කරන්න</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />' ඉවත් කරන්න</translation>
 <translation id="528192093759286357">ඉහළින් ඇද, පූර්ණ තිරයෙන් ඉවත් වීමට පිටුපස බොත්තම ස්පර්ශ කරන්න.</translation>
 <translation id="5300589172476337783">පෙන්වන්න</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{කුකි 1ක් භාවිතයේ ඇත}one{කුකි #ක් භාවිතයේ ඇත}other{කුකි #ක් භාවිතයේ ඇත}}</translation>
 <translation id="8487700953926739672">නොබැඳිව ලද  හැක</translation>
 <translation id="848952951823693243">සැම විට ජංගම අඩවිය ඉල්ලන්න</translation>
+<translation id="8499083585497694743">මයික්‍රෆෝනය නිහඬ කිරීම ඉවත් කරන්න</translation>
 <translation id="851751545965956758">අඩවි උපාංගවලට සම්බන්ධ වීම අවහිර කරන්න</translation>
 <translation id="8525306231823319788">සම්පුර්ණ තිරය</translation>
 <translation id="857943718398505171">ඉඩ දේ (නිර්දේශිතයි)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb
index 0a90dc67..8e02fed3 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Fotoaparát zapnite aj v <ph name="BEGIN_LINK" />nastaveniach Androidu<ph name="END_LINK" />, aby mohla aplikácia <ph name="APP_NAME" /> používať RR.</translation>
 <translation id="1864927262126810325">Zdroj: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Prístup k polohe je v tomto zariadení vypnutý. Zapnite ho v <ph name="BEGIN_LINK" />Nastaveniach Androidu<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Zložiť</translation>
 <translation id="1919345977826869612">Reklamy</translation>
 <translation id="1919950603503897840">Výber kontaktov</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Odísť</translation>
 <translation id="2687403674020088961">Blokovať všetky súbory cookie (neodporúča sa)</translation>
 <translation id="2704606927547763573">Skopírované</translation>
+<translation id="2713106313042589954">Vypnúť kameru</translation>
 <translation id="2717722538473713889">E‑mailové adresy</translation>
 <translation id="2750481671343847896">Weby môžu zobrazovať výzvy na prihlásenie od služieb identity.</translation>
 <translation id="2785051990912111074">Týmto výberom vymažete súbory cookie webu <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Pýtať sa, či chcete povoliť webu používať kameru (odporúčané)</translation>
 <translation id="4505788138578415521">Webová adresa bola rozbalená</translation>
 <translation id="4534723447064627427">Ak chcete povoliť aplikácii <ph name="APP_NAME" /> používať mikrofón, zapnite ho aj v <ph name="BEGIN_LINK" />nastaveniach Androidu<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Vypnúť mikrofón</translation>
 <translation id="4570913071927164677">Podrobnosti</translation>
 <translation id="4645575059429386691">Spravované vaším rodičom</translation>
 <translation id="4670064810192446073">Virtuálna realita</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Možnosť je k dispozícii v hornej časti obrazovky</translation>
 <translation id="5197729504361054390">Vybrané kontakty budú zdieľané s webom <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Naposledy navštívený dnes</translation>
+<translation id="5225463052809312700">Zapnúť kameru</translation>
 <translation id="5264323282659631142">Odstrániť <ph name="CHIP_LABEL" /></translation>
 <translation id="528192093759286357">Režim celej obrazovky ukončíte potiahnutím z hornej časti a klepnutím na tlačidlo Späť.</translation>
 <translation id="5300589172476337783">Zobraziť</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Na konkrétnom webe môžete blokovať prihlasovanie tretích strán.</translation>
 <translation id="6388207532828177975">Vymazať a resetovať</translation>
 <translation id="6398765197997659313">Ukončiť zobrazenie na celú obrazovku</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Brániť webom používať zariadenie a dáta pre virtuálnu realitu</translation>
 <translation id="6447842834002726250">Súbory cookie</translation>
 <translation id="6527303717912515753">Zdieľať</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Používa sa 1 súbor cookie}few{Používajú sa # súbory cookie}many{# cookies in use}other{Používa sa # súborov cookie}}</translation>
 <translation id="8487700953926739672">K dispozícii offline</translation>
 <translation id="848952951823693243">Vždy požadovať mobilný web</translation>
+<translation id="8499083585497694743">Zapnúť mikrofón</translation>
 <translation id="851751545965956758">Brániť webom pripájať sa k zariadeniam</translation>
 <translation id="8525306231823319788">Celá obrazovka</translation>
 <translation id="857943718398505171">Povolené (odporúčané)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
index 507006ef..46a5cb91 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Če želite aplikaciji <ph name="APP_NAME" /> dovoliti uporabo razširjene resničnosti, prav tako vklopite fotoaparat v <ph name="BEGIN_LINK" />nastavitvah za Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Iz: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Dostop do lokacije je izklopljen za to napravo. Vklopite ga lahko v <ph name="BEGIN_LINK" />nastavitvah za Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Prekini</translation>
 <translation id="1919345977826869612">Oglasi</translation>
 <translation id="1919950603503897840">Izbira stikov</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Zapusti</translation>
 <translation id="2687403674020088961">Blokiranje vseh piškotkov (ni priporočljivo)</translation>
 <translation id="2704606927547763573">Kopirano</translation>
+<translation id="2713106313042589954">Izklopi kamero</translation>
 <translation id="2717722538473713889">E-poštni naslovi</translation>
 <translation id="2750481671343847896">Spletna mesta lahko prikazujejo pozive za prijavo zunanjih ponudnikov.</translation>
 <translation id="2785051990912111074">S to izbiro bodo izbrisani piškotki za spletno mesto <ph name="WEBSITE" />.</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Prikaži poziv, preden se spletnim mestom dovoli uporaba kamere (priporočeno)</translation>
 <translation id="4505788138578415521">URL je razširjen</translation>
 <translation id="4534723447064627427">Če želite aplikaciji <ph name="APP_NAME" /> omogočiti dostop do mikrofona, mikrofon vklopite tudi v <ph name="BEGIN_LINK" />nastavitvah za Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Izklopi mikrofon</translation>
 <translation id="4570913071927164677">Podrobnosti</translation>
 <translation id="4645575059429386691">Upravlja starš</translation>
 <translation id="4670064810192446073">Navidezna resničnost</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Možnosti so na voljo blizu vrha zaslona</translation>
 <translation id="5197729504361054390">Izbrani stiki bodo v skupni rabi s spletnim mestom <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Nazadnje obiskano danes</translation>
+<translation id="5225463052809312700">Vklopi kamero</translation>
 <translation id="5264323282659631142">Odstranitev vnosa »<ph name="CHIP_LABEL" />«</translation>
 <translation id="528192093759286357">Povlecite z vrha in se dotaknite gumba za nazaj, če želite zapreti celozaslonski način.</translation>
 <translation id="5300589172476337783">Pokaži</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 piškotek v uporabi}one{# piškotek v uporabi}two{# piškotka v uporabi}few{# piškotki v uporabi}other{# piškotkov v uporabi}}</translation>
 <translation id="8487700953926739672">Na voljo brez povezave</translation>
 <translation id="848952951823693243">Vedno zahtevaj spletno mesto za mobilne naprave</translation>
+<translation id="8499083585497694743">Vklopi mikrofon</translation>
 <translation id="851751545965956758">Spletnim mestom prepreči povezovanje z napravami</translation>
 <translation id="8525306231823319788">Celozaslonsko</translation>
 <translation id="857943718398505171">Dovoljeno (priporočeno)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb
index 3602690a..b82a95e 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Për të lejuar që <ph name="APP_NAME" /> të përdorë AR, aktivizo gjithashtu kamerën në <ph name="BEGIN_LINK" />Cilësimet e Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Nga <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Qasja te vendndodhja është joaktive për këtë pajisje. Aktivizoje te <ph name="BEGIN_LINK" />Cilësimet e Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Mbyll</translation>
 <translation id="1919345977826869612">Reklamat</translation>
 <translation id="1919950603503897840">Zgjidh kontaktet</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Largohu</translation>
 <translation id="2687403674020088961">Blloko të gjitha kukit (nuk rekomandohet)</translation>
 <translation id="2704606927547763573">Kopjuar</translation>
+<translation id="2713106313042589954">Çaktivizo kamerën</translation>
 <translation id="2717722538473713889">Adresat e email-it</translation>
 <translation id="2750481671343847896">Sajtet mund të shfaqin kërkesat për identifikim nga shërbimet e identitetit.</translation>
 <translation id="2785051990912111074">Kjo zgjedhje do të pastrojë kukit për <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Pyet përpara se të lejohen sajtet të përdorin kamerën (rekomandohet)</translation>
 <translation id="4505788138578415521">URL e zgjeruar</translation>
 <translation id="4534723447064627427">Për të lejuar që <ph name="APP_NAME" /> të ketë qasje te mikrofoni yt, aktivizo gjithashtu mikrofonin në <ph name="BEGIN_LINK" />Cilësimet e Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Çaktivizo mikrofonin</translation>
 <translation id="4570913071927164677">Detajet</translation>
 <translation id="4645575059429386691">Menaxhohet nga prindi yt</translation>
 <translation id="4670064810192446073">Realiteti virtual</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opsionet ofrohen pranë kreut të ekranit</translation>
 <translation id="5197729504361054390">Kontaktet që zgjedh do të ndahen me <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Vizituar për herë të fundit sot</translation>
+<translation id="5225463052809312700">Aktivizo kamerën</translation>
 <translation id="5264323282659631142">Hiqe "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Zvarrit nga lart dhe prek butonin e kthimit për të dalë nga ekrani i plotë.</translation>
 <translation id="5300589172476337783">Shfaq</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 kuki në përdorim}other{# kuki në përdorim}}</translation>
 <translation id="8487700953926739672">Mundësohet jashtë linje</translation>
 <translation id="848952951823693243">Kërko gjithmonë sajtin për celular</translation>
+<translation id="8499083585497694743">Aktivizo mikrofonin</translation>
 <translation id="851751545965956758">Blloko lidhjen e sajteve me pajisjet</translation>
 <translation id="8525306231823319788">Ekrani i plotë</translation>
 <translation id="857943718398505171">Lejuar (rekomandohet)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb
index 29c0768..b286ec8 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Da biste dozvolili da <ph name="APP_NAME" /> koristi PR, uključite i kameru u <ph name="BEGIN_LINK" />Android podešavanjima<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Izvor: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Pristup lokaciji je isključen za ovaj uređaj. Uključite ga u <ph name="BEGIN_LINK" />Android podešavanjima<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Prekini vezu</translation>
 <translation id="1919345977826869612">Oglasi</translation>
 <translation id="1919950603503897840">Izaberite kontakte</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Zatvori</translation>
 <translation id="2687403674020088961">Blokiraj sve kolačiće (ne preporučuje se)</translation>
 <translation id="2704606927547763573">Kopirano</translation>
+<translation id="2713106313042589954">Isključi kameru</translation>
 <translation id="2717722538473713889">Imejl adrese</translation>
 <translation id="2750481671343847896">Sajtovi mogu da prikazuju upite za prijavljivanje iz usluga za identitet.</translation>
 <translation id="2785051990912111074">Ovaj izbor će obrisati kolačiće za <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Pitaj pre nego što dozvoliš sajtovima da koriste kameru (preporučeno)</translation>
 <translation id="4505788138578415521">URL je proširen</translation>
 <translation id="4534723447064627427">Da biste dozvolili da <ph name="APP_NAME" /> pristupa mikrofonu, uključite mikrofon i u <ph name="BEGIN_LINK" />Android podešavanjima<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Isključi zvuk mikrofona</translation>
 <translation id="4570913071927164677">Detalji</translation>
 <translation id="4645575059429386691">Ovim upravlja tvoj roditelj</translation>
 <translation id="4670064810192446073">Virtuelna realnost</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Opcija je dostupna u vrhu ekrana</translation>
 <translation id="5197729504361054390">Kontakti koje izaberete će se deliti sa <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Poslednji posećen danas</translation>
+<translation id="5225463052809312700">Uključi kameru</translation>
 <translation id="5264323282659631142">Uklonite „<ph name="CHIP_LABEL" />“</translation>
 <translation id="528192093759286357">Prevucite od vrha ekrana i dodirnite dugme Nazad da biste izašli iz režima celog ekrana.</translation>
 <translation id="5300589172476337783">Prikaži</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Blokirajte prijavljivanje trećih strana za određeni sajt.</translation>
 <translation id="6388207532828177975">Obriši i resetuj</translation>
 <translation id="6398765197997659313">Izađi iz režima celog ekrana</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Ne dozvoljava sajtovima da koriste uređaj i podatke virtuelne realnosti</translation>
 <translation id="6447842834002726250">Kolačići</translation>
 <translation id="6527303717912515753">Deli</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Koristi se 1 kolačić}one{Koristi se # kolačić}few{Koriste se # kolačića}other{Koristi se # kolačića}}</translation>
 <translation id="8487700953926739672">Dostupno van mreže</translation>
 <translation id="848952951823693243">Uvek se zahteva mobilni sajt</translation>
+<translation id="8499083585497694743">Uključi zvuk mikrofona</translation>
 <translation id="851751545965956758">Onemogući sajtovima da se povezuju sa uređajima</translation>
 <translation id="8525306231823319788">Ceo ekran</translation>
 <translation id="857943718398505171">Dozvoljeno (preporučeno)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb
index 002685e2..2e9a94a0 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Да бисте дозволили да <ph name="APP_NAME" /> користи ПР, укључите и камеру у <ph name="BEGIN_LINK" />Android подешавањима<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Извор: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Приступ локацији је искључен за овај уређај. Укључите га у <ph name="BEGIN_LINK" />Android подешавањима<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Прекини везу</translation>
 <translation id="1919345977826869612">Огласи</translation>
 <translation id="1919950603503897840">Изаберите контакте</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Затвори</translation>
 <translation id="2687403674020088961">Блокирај све колачиће (не препоручује се)</translation>
 <translation id="2704606927547763573">Копирано</translation>
+<translation id="2713106313042589954">Искључи камеру</translation>
 <translation id="2717722538473713889">Имејл адресе</translation>
 <translation id="2750481671343847896">Сајтови могу да приказују упите за пријављивање из услуга за идентитет.</translation>
 <translation id="2785051990912111074">Овај избор ће обрисати колачиће за <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Питај пре него што дозволиш сајтовима да користе камеру (препоручено)</translation>
 <translation id="4505788138578415521">URL је проширен</translation>
 <translation id="4534723447064627427">Да бисте дозволили да <ph name="APP_NAME" /> приступа микрофону, укључите микрофон и у <ph name="BEGIN_LINK" />Android подешавањима<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Искључи звук микрофона</translation>
 <translation id="4570913071927164677">Детаљи</translation>
 <translation id="4645575059429386691">Овим управља твој родитељ</translation>
 <translation id="4670064810192446073">Виртуелна реалност</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Опција је доступна у врху екрана</translation>
 <translation id="5197729504361054390">Контакти које изаберете ће се делити са <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Последњи посећен данас</translation>
+<translation id="5225463052809312700">Укључи камеру</translation>
 <translation id="5264323282659631142">Уклоните „<ph name="CHIP_LABEL" />“</translation>
 <translation id="528192093759286357">Превуците од врха екрана и додирните дугме Назад да бисте изашли из режима целог екрана.</translation>
 <translation id="5300589172476337783">Прикажи</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Блокирајте пријављивање трећих страна за одређени сајт.</translation>
 <translation id="6388207532828177975">Обриши и ресетуј</translation>
 <translation id="6398765197997659313">Изађи из режима целог екрана</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Не дозвољава сајтовима да користе уређај и податке виртуелне реалности</translation>
 <translation id="6447842834002726250">Колачићи</translation>
 <translation id="6527303717912515753">Дели</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Користи се 1 колачић}one{Користи се # колачић}few{Користе се # колачића}other{Користи се # колачића}}</translation>
 <translation id="8487700953926739672">Доступно ван мреже</translation>
 <translation id="848952951823693243">Увек се захтева мобилни сајт</translation>
+<translation id="8499083585497694743">Укључи звук микрофона</translation>
 <translation id="851751545965956758">Онемогући сајтовима да се повезују са уређајима</translation>
 <translation id="8525306231823319788">Цео екран</translation>
 <translation id="857943718398505171">Дозвољено (препоручено)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb
index 3c2f93e..faea8016b 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Om du vill att <ph name="APP_NAME" /> ska använda AR måste du även aktivera kameran i <ph name="BEGIN_LINK" />Android-inställningarna<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Från <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Platsåtkomst har inaktiverats på enheten. Aktivera det i <ph name="BEGIN_LINK" />Android-inställningarna<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Lägg på</translation>
 <translation id="1919345977826869612">Annonser</translation>
 <translation id="1919950603503897840">Välj kontakter</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Lämna</translation>
 <translation id="2687403674020088961">Blockera alla cookies (rekommenderas inte)</translation>
 <translation id="2704606927547763573">Kopierat</translation>
+<translation id="2713106313042589954">Stäng av kameran</translation>
 <translation id="2717722538473713889">E-postadresser</translation>
 <translation id="2750481671343847896">Webbplatser får visa inloggningsmeddelanden från identitetstjänster.</translation>
 <translation id="2785051990912111074">Detta rensar cookies för <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Fråga innan webbplatser tillåts att använda kameran (rekommenderas)</translation>
 <translation id="4505788138578415521">Webbadressen har utökats</translation>
 <translation id="4534723447064627427">Om du vill ge <ph name="APP_NAME" /> åtkomst till mikrofonen måste du även aktivera mikrofonen i <ph name="BEGIN_LINK" />Android-inställningarna<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Stäng av mikrofonen</translation>
 <translation id="4570913071927164677">Information</translation>
 <translation id="4645575059429386691">Hanteras av din förälder</translation>
 <translation id="4670064810192446073">Virtuell verklighet</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Alternativet visas högt upp på skärmen</translation>
 <translation id="5197729504361054390">Kontakterna du väljer delas med <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Besöktes senast i dag</translation>
+<translation id="5225463052809312700">Slå på kameran</translation>
 <translation id="5264323282659631142">Ta bort <ph name="CHIP_LABEL" /></translation>
 <translation id="528192093759286357">Dra uppifrån och tryck på bakåtknappen för att lämna helskärmsläget.</translation>
 <translation id="5300589172476337783">Visa</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie används}other{# cookies används}}</translation>
 <translation id="8487700953926739672">Tillgänglig offline</translation>
 <translation id="848952951823693243">Begär alltid mobilversionen</translation>
+<translation id="8499083585497694743">Slå på mikrofonen</translation>
 <translation id="851751545965956758">Förhindra att webbplatser ansluter till enheter</translation>
 <translation id="8525306231823319788">Helskärm</translation>
 <translation id="857943718398505171">Tillåten (rekommenderas)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb
index 51f7135..8f730c7 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Ili uruhusu <ph name="APP_NAME" /> itumie Uhalisia Ulioboreshwa, washa pia kamera katika <ph name="BEGIN_LINK" />Mipangilio ya Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Kutoka <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Kipengele cha mahali kimezimwa kwenye kifaa hiki. Kiwashe katika <ph name="BEGIN_LINK" />Mipangilio ya Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Kata simu</translation>
 <translation id="1919345977826869612">Matangazo</translation>
 <translation id="1919950603503897840">Chagua anwani</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Ondoka</translation>
 <translation id="2687403674020088961">Zuia vidakuzi vyote (haipendekezwi)</translation>
 <translation id="2704606927547763573">Imenakiliwa</translation>
+<translation id="2713106313042589954">Zima kamera</translation>
 <translation id="2717722538473713889">Anwani za barua pepe</translation>
 <translation id="2750481671343847896">Tovuti inaweza kuonyesha vidokezo vya kuingia katika akaunti kutoka kwa huduma za utambulisho.</translation>
 <translation id="2785051990912111074">Chaguo hili litafuta vidakuzi vya <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Uliza kwanza kabla ya kuruhusu tovuti zitumie kamera yako (inapendekezwa)</translation>
 <translation id="4505788138578415521">URL imepanuliwa</translation>
 <translation id="4534723447064627427">Ili uruhusu <ph name="APP_NAME" /> ifikie maikrofoni yako, washa pia maikrofoni katika <ph name="BEGIN_LINK" />Mipangilio ya Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Zima maikrofoni</translation>
 <translation id="4570913071927164677">Maelezo</translation>
 <translation id="4645575059429386691">Inadhibitiwa na wazazi wako</translation>
 <translation id="4670064810192446073">Uhalisia pepe</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Chaguo linapatikana karibu na sehemu ya juu ya skrini</translation>
 <translation id="5197729504361054390">Anwani unazochagua zitashirikiwa na <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Ilitembelewa mara ya mwisho leo</translation>
+<translation id="5225463052809312700">Washa kamera</translation>
 <translation id="5264323282659631142">Ondoa '<ph name="CHIP_LABEL" />'</translation>
 <translation id="528192093759286357">Buruta kutoka juu na uguse kitufe cha kurudi nyuma ili uondoke kwenye skrini nzima.</translation>
 <translation id="5300589172476337783">Onyesha</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Kidakuzi kimoja kinatumika}other{Vidakuzi # vinatumika}}</translation>
 <translation id="8487700953926739672">Kinapatikana nje ya mtandao</translation>
 <translation id="848952951823693243">Omba tovuti katika mwonekano wa kifaa cha mkononi kila wakati</translation>
+<translation id="8499083585497694743">Washa maikrofoni</translation>
 <translation id="851751545965956758">Zuia tovuti zisiunganishe kwenye vifaa</translation>
 <translation id="8525306231823319788">Skrini nzima</translation>
 <translation id="857943718398505171">Imeruhusiwa (inapendekezwa)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
index 15bad41..2e78ac0 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">ARரைப் பயன்படுத்த <ph name="APP_NAME" /> ஆப்ஸை அனுமதிப்பதற்கு <ph name="BEGIN_LINK" />Android அமைப்புகளிலும்<ph name="END_LINK" /> கேமராவிற்கான அனுமதியை இயக்கவும்.</translation>
 <translation id="1864927262126810325">மூலம்: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">இந்தச் சாதனத்திற்கான இருப்பிட அணுகல் முடக்கப்பட்டுள்ளது. அதை <ph name="BEGIN_LINK" />Android அமைப்புகளில்<ph name="END_LINK" /> இயக்கவும்.</translation>
+<translation id="1915307458270490472">மூடுக</translation>
 <translation id="1919345977826869612">விளம்பரங்கள்</translation>
 <translation id="1919950603503897840">தொடர்புகளைத் தேர்ந்தெடுக்கவும்</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">வெளியேறு</translation>
 <translation id="2687403674020088961">அனைத்துக் குக்கீகளையும் தடுக்கும் (பரிந்துரைக்கப்படவில்லை)</translation>
 <translation id="2704606927547763573">நகலெடுக்கப்பட்டது</translation>
+<translation id="2713106313042589954">கேமராவை முடக்கு</translation>
 <translation id="2717722538473713889">மின்னஞ்சல் முகவரிகள்</translation>
 <translation id="2750481671343847896">அடையாளச் சேவைகளில் இருந்து வரும் உள்நுழைவு அறிவிப்புகளைத் தளங்கள் காட்டும்.</translation>
 <translation id="2785051990912111074">இதைச் செய்தால் <ph name="WEBSITE" /> தளத்திற்கான குக்கீகள் அழிக்கப்படும்</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">எனது கேமராவைப் பயன்படுத்தத் தளங்களை அனுமதிக்கும் முன் கேள் (பரிந்துரைக்கப்படுகிறது)</translation>
 <translation id="4505788138578415521">URL விரிவாக்கப்பட்டது</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> ஆப்ஸ் உங்கள் மைக்ரோஃபோனை அணுக அனுமதிப்பதற்கு <ph name="BEGIN_LINK" />Android அமைப்புகளிலும்<ph name="END_LINK" /> மைக்ரோஃபோனுக்கான அனுமதியை இயக்கவும்.</translation>
+<translation id="4566417217121906555">மைக்ரோஃபோனை ஒலியடக்கு</translation>
 <translation id="4570913071927164677">விவரங்கள்</translation>
 <translation id="4645575059429386691">உங்கள் பெற்றோரால் நிர்வகிக்கப்படுகிறது</translation>
 <translation id="4670064810192446073">விர்ச்சுவல் ரியாலிட்டி</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">அதற்கான விருப்பம் திரையின் மேற்பகுதியில் உள்ளது</translation>
 <translation id="5197729504361054390">நீங்கள் தேர்ந்தெடுக்கும் தொடர்புகள் <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> உடன் பகிரப்படும்.</translation>
 <translation id="5216942107514965959">கடைசியாகப் பார்த்தது: இன்று</translation>
+<translation id="5225463052809312700">கேமராவை இயக்கு</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />' ஐ அகற்றும்</translation>
 <translation id="528192093759286357">முழுத்திரையிலிருந்து வெளியேற, மேலிருந்து இழுத்து "முந்தையது" பட்டனைத் தொடவும்.</translation>
 <translation id="5300589172476337783">காண்பி</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 குக்கீ உபயோகத்தில் உள்ளது}other{# குக்கீகள் உபயோகத்தில் உள்ளன}}</translation>
 <translation id="8487700953926739672">ஆஃப்லைனில் இருக்கிறது</translation>
 <translation id="848952951823693243">எப்போதும் மொபைல் காட்சியில் காட்டப்படுபவை</translation>
+<translation id="8499083585497694743">மைக்ரோஃபோனின் ஒலியை இயக்கு</translation>
 <translation id="851751545965956758">சாதனங்களை இணைப்பதிலிருந்து தளங்களைத் தடுக்கும்</translation>
 <translation id="8525306231823319788">முழுத்திரை</translation>
 <translation id="857943718398505171">அனுமதிக்கப்பட்டது (பரிந்துரைத்தது)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
index d61c5db..08b821fd 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">ARని వినియోగించడానికి <ph name="APP_NAME" />ని అనుమతించేందుకు, <ph name="BEGIN_LINK" />Android సెట్టింగ్‌ల<ph name="END_LINK" />లో కూడా కెమెరాను ఆన్ చేయండి.</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> నుండి</translation>
 <translation id="1887786770086287077">ఈ పరికరానికి స్థానం యాక్సెస్ ఆఫ్ చేయబడింది. దీనిని <ph name="BEGIN_LINK" />Android సెట్టింగ్‌లు<ph name="END_LINK" />లో తిరిగి ఆన్ చేయండి.</translation>
+<translation id="1915307458270490472">కాల్‌ను ముగించు</translation>
 <translation id="1919345977826869612">యాడ్స్</translation>
 <translation id="1919950603503897840">కాంటాక్ట్‌లను ఎంచుకోండి</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">నిష్క్రమించండి</translation>
 <translation id="2687403674020088961">అన్ని కుక్కీలను బ్లాక్ చేయండి (సిఫార్సు చేయడం లేదు)</translation>
 <translation id="2704606927547763573">కాపీ చేయబడింది</translation>
+<translation id="2713106313042589954">కెమెరాను ఆఫ్ చేయి</translation>
 <translation id="2717722538473713889">ఈమెయిల్‌ అడ్రస్‌లు</translation>
 <translation id="2750481671343847896">గుర్తింపు సర్వీస్‌ల నుండి సైన్-ఇన్ ప్రాంప్ట్‌లను సైట్‌లు చూపగలవు.</translation>
 <translation id="2785051990912111074">దీనిని ఎంచుకోవడం ద్వారా <ph name="WEBSITE" />కు సంబంధించిన కుక్కీలు క్లియర్ చేయబడతాయి</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">మీ కెమెరాను ఏవైనా సైట్‌లు ఉపయోగించగలిగేలా వాటిని అనుమతించే ముందు, మిమ్మల్ని అడుగుతుంది (సిఫార్సు చేయబడింది)</translation>
 <translation id="4505788138578415521">URL విస్తరించబడింది</translation>
 <translation id="4534723447064627427">మీ మైక్రోఫోన్‌ను యాక్సెస్ చేయడానికి <ph name="APP_NAME" />ని అనుమతించేందుకు, <ph name="BEGIN_LINK" />Android సెట్టింగ్‌ల<ph name="END_LINK" />లో కూడా మైక్రోఫోన్‌ను ఆన్ చేయండి.</translation>
+<translation id="4566417217121906555">మైక్రోఫోన్‌ను మ్యూట్ చేయి</translation>
 <translation id="4570913071927164677">వివరాలు</translation>
 <translation id="4645575059429386691">మీ తల్లి/తండ్రి ద్వారా నిర్వహించబడుతోంది</translation>
 <translation id="4670064810192446073">వర్చువల్ రియాలిటీ</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">ఆప్షన్ స్క్రీన్ పైభాగానికి సమీపంలో అందుబాటులో ఉంటుంది</translation>
 <translation id="5197729504361054390">మీరు ఎంచుకున్న కాంటాక్ట్‌లు <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />తో షేర్ చేయబడతాయి.</translation>
 <translation id="5216942107514965959">చివరిగా ఈరోజు సందర్శించారు</translation>
+<translation id="5225463052809312700">కెమెరాను ఆన్ చేయి</translation>
 <translation id="5264323282659631142">'<ph name="CHIP_LABEL" />'ను తీసివేయండి</translation>
 <translation id="528192093759286357">ఫుల్-స్క్రీన్‌ నుండి నిష్క్రమించడానికి పైనుండి లాగి, వెనుకకు బటన్‌ను తాకండి.</translation>
 <translation id="5300589172476337783">చూపించు</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 కుక్కీ ఉపయోగంలో ఉంది}other{# కుక్కీలు ఉపయోగంలో ఉన్నాయి}}</translation>
 <translation id="8487700953926739672">ఆఫ్‌లైన్‌లో అందుబాటు</translation>
 <translation id="848952951823693243">ఎల్లప్పుడూ మొబైల్ సైట్ కోసం రిక్వెస్ట్ చేయండి</translation>
+<translation id="8499083585497694743">మైక్రోఫోన్‌ను అన్‌మ్యూట్ చేయి</translation>
 <translation id="851751545965956758">పరికరాలకు కనెక్ట్ కాకుండా సైట్‌లను బ్లాక్ చేస్తుంది</translation>
 <translation id="8525306231823319788">ఫుల్-స్క్రీన్‌</translation>
 <translation id="857943718398505171">అనుమతించబడింది (సిఫార్సు చేయబడింది)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb
index 84ce2b7..9d8e2830 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">หากต้องการอนุญาตให้ <ph name="APP_NAME" /> ใช้ AR ให้เปิดใช้กล้องใน<ph name="BEGIN_LINK" />การตั้งค่า Android<ph name="END_LINK" /> ด้วย</translation>
 <translation id="1864927262126810325">จาก <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">ตอนนี้ตำแหน่งสำหรับอุปกรณ์เครื่องนี้ปิดอยู่ เปิดตำแหน่งได้ใน<ph name="BEGIN_LINK" />การตั้งค่า Android<ph name="END_LINK" /></translation>
+<translation id="1915307458270490472">วางซ้อนไว้ด้านบน</translation>
 <translation id="1919345977826869612">โฆษณา</translation>
 <translation id="1919950603503897840">เลือกรายชื่อติดต่อ</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">ออก</translation>
 <translation id="2687403674020088961">บล็อกคุกกี้ทั้งหมด (ไม่แนะนำ)</translation>
 <translation id="2704606927547763573">คัดลอกแล้ว</translation>
+<translation id="2713106313042589954">ปิดกล้อง</translation>
 <translation id="2717722538473713889">อีเมล</translation>
 <translation id="2750481671343847896">เว็บไซต์สามารถแสดงข้อความแจ้งให้ลงชื่อเข้าใช้จากบริการระบุตัวตนได้</translation>
 <translation id="2785051990912111074">ตัวเลือกนี้จะล้างคุกกี้ของ <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">ถามก่อน ก่อนที่จะอนุญาตให้เว็บไซต์ใช้กล้องถ่ายรูปของคุณ (แนะนำ)</translation>
 <translation id="4505788138578415521">ขยาย URL แล้ว</translation>
 <translation id="4534723447064627427">หากต้องการอนุญาตให้ <ph name="APP_NAME" /> เข้าถึงไมโครโฟน ให้เปิดใช้ไมโครโฟนใน<ph name="BEGIN_LINK" />การตั้งค่า Android<ph name="END_LINK" /> ด้วย</translation>
+<translation id="4566417217121906555">ปิดเสียงไมโครโฟน</translation>
 <translation id="4570913071927164677">รายละเอียด</translation>
 <translation id="4645575059429386691">มีการจัดการโดยผู้ปกครอง</translation>
 <translation id="4670064810192446073">Virtual Reality</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">ตัวเลือกอยู่ตรงบริเวณด้านบนของหน้าจอ</translation>
 <translation id="5197729504361054390">ระบบจะแชร์รายชื่อติดต่อที่คุณเลือกกับ <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /></translation>
 <translation id="5216942107514965959">เข้าชมล่าสุดวันนี้</translation>
+<translation id="5225463052809312700">เปิดกล้อง</translation>
 <translation id="5264323282659631142">นำ "<ph name="CHIP_LABEL" />" ออก</translation>
 <translation id="528192093759286357">ลากจากด้านบน แล้วแตะปุ่มกลับเพื่อออกจากโหมดเต็มหน้าจอ</translation>
 <translation id="5300589172476337783">แสดง</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{ใช้คุกกี้อยู่ 1 รายการ}other{ใช้คุกกี้อยู่ # รายการ}}</translation>
 <translation id="8487700953926739672">ใช้งานแบบออฟไลน์ได้</translation>
 <translation id="848952951823693243">ขอเว็บไซต์เวอร์ชันอุปกรณ์เคลื่อนที่เสมอ</translation>
+<translation id="8499083585497694743">เปิดเสียงไมโครโฟน</translation>
 <translation id="851751545965956758">บล็อกเว็บไซต์ไม่ให้เชื่อมต่อกับอุปกรณ์</translation>
 <translation id="8525306231823319788">เต็มหน้าจอ</translation>
 <translation id="857943718398505171">อนุญาตแล้ว (แนะนำ)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb
index 6e183426..38dd07f49 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> uygulamasının artırılmış gerçekliği (AR) kullanması için <ph name="BEGIN_LINK" />Android Ayarlarında<ph name="END_LINK" /> kamerayı da açın.</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> kaynağından</translation>
 <translation id="1887786770086287077">Konum erişimi bu cihaz için kapalı. Konum erişimini <ph name="BEGIN_LINK" />Android Ayarları<ph name="END_LINK" />'ndan açın.</translation>
+<translation id="1915307458270490472">Kapat</translation>
 <translation id="1919345977826869612">Reklamlar</translation>
 <translation id="1919950603503897840">Kişi seçin</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Çık</translation>
 <translation id="2687403674020088961">Tüm çerezleri engelle (önerilmez)</translation>
 <translation id="2704606927547763573">Kopyalandı</translation>
+<translation id="2713106313042589954">Kamerayı kapat</translation>
 <translation id="2717722538473713889">E-posta adresleri</translation>
 <translation id="2750481671343847896">Siteler, kimlik hizmetlerinden gelen oturum açma istemlerini gösterebilir.</translation>
 <translation id="2785051990912111074">Bu tercih, <ph name="WEBSITE" /> çerezlerini temizler</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Sitelerin, kameranızı kullanmasına izin verilmeden önce size sorulsun (önerilir)</translation>
 <translation id="4505788138578415521">URL genişletildi</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> uygulamasının mikrofonunuza erişebilmesi için <ph name="BEGIN_LINK" />Android Ayarları<ph name="END_LINK" />'nda da mikrofonu açın.</translation>
+<translation id="4566417217121906555">Mikrofonun sesini kapat</translation>
 <translation id="4570913071927164677">Ayrıntılar</translation>
 <translation id="4645575059429386691">Ebeveyniniz tarafından yönetiliyor</translation>
 <translation id="4670064810192446073">Sanal gerçeklik</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Seçenek, ekranın üst kısmına yakın bir yerdedir</translation>
 <translation id="5197729504361054390">Seçtiğiniz kişiler <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> ile paylaşılacak.</translation>
 <translation id="5216942107514965959">En son bugün ziyaret edildi</translation>
+<translation id="5225463052809312700">Kamerayı aç</translation>
 <translation id="5264323282659631142">"<ph name="CHIP_LABEL" />" çipini kaldır</translation>
 <translation id="528192093759286357">Tam ekrandan çıkmak için yukarıdan sürükleyin ve geri düğmesine dokunun.</translation>
 <translation id="5300589172476337783">Göster</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Belirli bir sitede üçüncü taraf oturum açmayı engelleyin.</translation>
 <translation id="6388207532828177975">Temizle ve sıfırla</translation>
 <translation id="6398765197997659313">Tam ekrandan çık</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Sitelerin sanal gerçeklik cihazımı ve verilerimi kullanmasını engelle</translation>
 <translation id="6447842834002726250">Çerezler</translation>
 <translation id="6527303717912515753">Paylaş</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 çerez kullanımda}other{# çerez kullanımda}}</translation>
 <translation id="8487700953926739672">Çevrimdışı kullanılabilir</translation>
 <translation id="848952951823693243">Her zaman mobil siteyi iste</translation>
+<translation id="8499083585497694743">Mikrofonun sesini aç</translation>
 <translation id="851751545965956758">Sitelerin cihazlara bağlanmasını engelle</translation>
 <translation id="8525306231823319788">Tam ekran</translation>
 <translation id="857943718398505171">İzin verildi (önerilir)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
index f43ab37..263daec 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Щоб дозволити додатку <ph name="APP_NAME" /> використовувати доповнену реальність, увімкніть камеру в <ph name="BEGIN_LINK" />налаштуваннях Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Джерело: <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">На цьому пристрої вимкнено доступ до геоданих. Увімкніть його в <ph name="BEGIN_LINK" />налаштуваннях Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Закрити</translation>
 <translation id="1919345977826869612">Оголошення</translation>
 <translation id="1919950603503897840">Виберіть контакти</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Вийти</translation>
 <translation id="2687403674020088961">Блокувати всі файли cookie (не рекомендовано)</translation>
 <translation id="2704606927547763573">Скопійов.</translation>
+<translation id="2713106313042589954">Вимкнути камеру</translation>
 <translation id="2717722538473713889">Електронні адреси</translation>
 <translation id="2750481671343847896">Сайти можуть показувати підказки щодо входу від сервісів ідентифікації</translation>
 <translation id="2785051990912111074">Буде видалено файли cookie для веб-сайту <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Запитувати, перш ніж дозволити сайтам використовувати камеру (рекомендується)</translation>
 <translation id="4505788138578415521">URL-адресу розгорнуто</translation>
 <translation id="4534723447064627427">Щоб надати додатку <ph name="APP_NAME" /> доступ до мікрофона, також увімкніть його в <ph name="BEGIN_LINK" />налаштуваннях Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Вимкнути мікрофон</translation>
 <translation id="4570913071927164677">Деталі</translation>
 <translation id="4645575059429386691">Керується одним із батьків</translation>
 <translation id="4670064810192446073">Віртуальна реальність</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Для цього натисніть відповідну кнопку вгорі екрана</translation>
 <translation id="5197729504361054390">Веб-сайт <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> отримає доступ до вибраних контактів.</translation>
 <translation id="5216942107514965959">Останнє відвідування: сьогодні</translation>
+<translation id="5225463052809312700">Увімкнути камеру</translation>
 <translation id="5264323282659631142">Видалити запит "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Щоб вийти з повноекранного режиму, проведіть пальцем по екрану згори вниз і торкніться кнопки "Назад".</translation>
 <translation id="5300589172476337783">Показати</translation>
@@ -336,6 +340,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Використовується 1 файл cookie}one{Використовується # файл cookie}few{Використовуються # файли cookie}many{Використовуються # файлів cookie}other{Використовуються # файлу cookie}}</translation>
 <translation id="8487700953926739672">Доступ у режимі офлайн</translation>
 <translation id="848952951823693243">Завжди запитувати мобільний сайт</translation>
+<translation id="8499083585497694743">Увімкнути мікрофон</translation>
 <translation id="851751545965956758">Заборонити сайтам підключатися до пристроїв</translation>
 <translation id="8525306231823319788">На весь екран</translation>
 <translation id="857943718398505171">Дозволено (рекомендується)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb
index d7f6239a..e8a011b 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">‏<ph name="APP_NAME" /> کو AR کا استعمال کرنے دینے کے لیے، <ph name="BEGIN_LINK" />Android ترتیبات<ph name="END_LINK" /> میں بھی کیمرا آن کریں۔</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" /> سے</translation>
 <translation id="1887786770086287077">‏مقام کی رسائی اس آلہ کے لیے آف ہے۔ <ph name="BEGIN_LINK" />Android کی ترتیبات<ph name="END_LINK" />.میں اسے آن کریں۔</translation>
+<translation id="1915307458270490472">کال منقطع کریں</translation>
 <translation id="1919345977826869612">اشتہارات</translation>
 <translation id="1919950603503897840">رابطے منتخب کریں</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">چھوڑیں</translation>
 <translation id="2687403674020088961">سبھی کوکیز مسدود کریں (تجویز نہیں کی جاتی ہے)</translation>
 <translation id="2704606927547763573">کاپی کیا</translation>
+<translation id="2713106313042589954">کیمرا آف کریں</translation>
 <translation id="2717722538473713889">ای میل پتے</translation>
 <translation id="2750481671343847896">سائٹس شناختی سروسز سے سائن ان پرامپٹس دکھا سکتی ہیں۔</translation>
 <translation id="2785051990912111074">یہ انتخاب <ph name="WEBSITE" /> کے لیے کوکیز کو صاف کرے گا</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">سائٹس کو آپ کا کیمرا استعمال کرنے کی اجازت دینے سے پہلے پوچھیں (تجویز کردہ)</translation>
 <translation id="4505788138578415521">‏URL کو پھیلا دیا گیا</translation>
 <translation id="4534723447064627427">‏<ph name="APP_NAME" /> کو اپنے مائیکروفون تک رسائی دینے کے لیے، <ph name="BEGIN_LINK" />Android کی ترتیبات<ph name="END_LINK" /> میں بھی مائیکروفون آن کریں۔</translation>
+<translation id="4566417217121906555">مائیکروفون کو خاموش کریں</translation>
 <translation id="4570913071927164677">تفاصیل</translation>
 <translation id="4645575059429386691">آپ کے والدین کے زیر انتظام</translation>
 <translation id="4670064810192446073">ورچوئل رئیلٹی</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">اسکرین کے اوپری حصہ کے قریب اختیار دستیاب ہے</translation>
 <translation id="5197729504361054390">آپ کے منتخب کردہ رابطوں کا <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> کے ساتھ اشتراک کیا جائے گا۔</translation>
 <translation id="5216942107514965959">آخری بار آج ملاحظہ کیا گیا</translation>
+<translation id="5225463052809312700">کیمرا آن کریں</translation>
 <translation id="5264323282659631142">’<ph name="CHIP_LABEL" />‘ ہٹائیں</translation>
 <translation id="528192093759286357">پوری اسکرین سے باہر نکلنے کیلئے اوپر سے گھسیٹیں اور پیچھے جائیں بٹن کو ٹچ کریں۔</translation>
 <translation id="5300589172476337783">دکھائیں</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">کسی مخصوص سائٹ کیلئے فریق ثالث سائن ان کو مسدود کریں۔</translation>
 <translation id="6388207532828177975">صاف کریں اور ری سیٹ کریں</translation>
 <translation id="6398765197997659313">پوری سکرین سے خارج ہوں</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">سائٹس کو اپنا ورچوئل ریئلٹی آلہ اور ڈیٹا استعمال کرنے سے مسدود کریں</translation>
 <translation id="6447842834002726250">کوکیز</translation>
 <translation id="6527303717912515753">اشتراک کریں</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 زیر استعمال کوکی}other{# زیر استعمال کوکیز}}</translation>
 <translation id="8487700953926739672">آف لائن دستیاب ہے</translation>
 <translation id="848952951823693243">ہمیشہ موبائل سائٹ کی درخواست کریں</translation>
+<translation id="8499083585497694743">مائیکروفون کی آواز چالو کریں</translation>
 <translation id="851751545965956758">سائٹس کو آلات سے منسلک ہونے سے مسدود کریں</translation>
 <translation id="8525306231823319788">پوری اسکرین</translation>
 <translation id="857943718398505171">اجازت یافتہ (تجویز کردہ)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb
index 59f2f7b..38d5290 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587"><ph name="APP_NAME" /> AR ishlatishi uchun <ph name="BEGIN_LINK" />Android sozlamalari<ph name="END_LINK" /> orqali kamerani yoqing.</translation>
 <translation id="1864927262126810325"><ph name="SOURCE_NAME" />dan</translation>
 <translation id="1887786770086287077">Bu qurilmada Joylashuvni aniqlash xizmati yoqilmagan, uni <ph name="BEGIN_LINK" />Android sozlamalari<ph name="END_LINK" /> orqali yoqing.</translation>
+<translation id="1915307458270490472">Tugatish</translation>
 <translation id="1919345977826869612">Reklamalar</translation>
 <translation id="1919950603503897840">Kontaktlarni tanlash</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Tark etish</translation>
 <translation id="2687403674020088961">Barcha cookie fayllarini taqiqlash (tavsiya etilmaydi)</translation>
 <translation id="2704606927547763573">Nusxa olindi</translation>
+<translation id="2713106313042589954">Kamerani faolsizlantirish</translation>
 <translation id="2717722538473713889">Email manzillar</translation>
 <translation id="2750481671343847896">Saytlar shaxsni tasdiqlash xizmatlariga kirish oynalarini chiqarishi mumkin</translation>
 <translation id="2785051990912111074">Bunda <ph name="WEBSITE" /> cookie fayllari tozalanadi</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Kameradan foydalanishga ruxsat so‘ralsin (tavsiya etiladi)</translation>
 <translation id="4505788138578415521">URL manzil yoyildi</translation>
 <translation id="4534723447064627427"><ph name="APP_NAME" /> mikrofondan foydalanishiga ruxsat berish uchun <ph name="BEGIN_LINK" />Android sozlamalari<ph name="END_LINK" /> orqali mikrofonni yoqing.</translation>
+<translation id="4566417217121906555">Mikrofonni ovozsiz qilish</translation>
 <translation id="4570913071927164677">Tafsilotlar</translation>
 <translation id="4645575059429386691">Ota-onangiz tomonidan boshqariladi</translation>
 <translation id="4670064810192446073">Virtual reallik</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Parametr ekranning yuqoriroq qismida joylashgan</translation>
 <translation id="5197729504361054390">Tanlangan kontaktlar <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> saytiga ulashiladi.</translation>
 <translation id="5216942107514965959">Oxirgi tashrif: bugun</translation>
+<translation id="5225463052809312700">Kamerani yoqish</translation>
 <translation id="5264323282659631142">Olib tashlash: <ph name="CHIP_LABEL" /></translation>
 <translation id="528192093759286357">To‘liq ekran rejimidan chiqish uchun ekranni tepadan pastga torting va “Orqaga” tugmasini bosing.</translation>
 <translation id="5300589172476337783">Ko‘rsatish</translation>
@@ -337,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 ta cookie fayl ishlatilmoqda}other{# ta cookie fayl ishlatilmoqda}}</translation>
 <translation id="8487700953926739672">Internetsiz foydalanish mumkin</translation>
 <translation id="848952951823693243">Har doim mobil versiya ochilsin</translation>
+<translation id="8499083585497694743">Mikrofon ovozini yoqish</translation>
 <translation id="851751545965956758">Saytlarga qurilmalarga ulanishni taqiqlash</translation>
 <translation id="8525306231823319788">To‘liq ekran rejimi</translation>
 <translation id="857943718398505171">Ruxsat berilgan (tavsiya etiladi)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb
index 94737d3..51b70c11 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Để cho phép <ph name="APP_NAME" /> sử dụng công nghệ thực tế tăng cường (AR), hãy bật cả máy ảnh trong phần <ph name="BEGIN_LINK" />Cài đặt Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Từ <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Đã tắt quyền truy cập vị trí đối với thiết bị này. Hãy bật trong <ph name="BEGIN_LINK" />Cài đặt Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Kết thúc</translation>
 <translation id="1919345977826869612">Quảng cáo</translation>
 <translation id="1919950603503897840">Chọn mục liên hệ</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Rời khỏi</translation>
 <translation id="2687403674020088961">Chặn tất cả cookie (không khuyến nghị)</translation>
 <translation id="2704606927547763573">Đã sao chép</translation>
+<translation id="2713106313042589954">Tắt máy ảnh</translation>
 <translation id="2717722538473713889">Địa chỉ email</translation>
 <translation id="2750481671343847896">Các trang web có thể đưa ra lời nhắc đăng nhập từ các dịch vụ nhận dạng.</translation>
 <translation id="2785051990912111074">Lựa chọn này sẽ xóa cookie của <ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Hỏi trước trước khi cho phép các trang web sử dụng máy ảnh của bạn (được đề xuất)</translation>
 <translation id="4505788138578415521">URL đã được mở rộng</translation>
 <translation id="4534723447064627427">Để cho phép <ph name="APP_NAME" /> truy cập vào micrô của bạn, hãy bật cả micrô trong phần <ph name="BEGIN_LINK" />Cài đặt Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Tắt micrô</translation>
 <translation id="4570913071927164677">Chi tiết</translation>
 <translation id="4645575059429386691">Do cha mẹ của bạn quản lý</translation>
 <translation id="4670064810192446073">Thực tế ảo</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Tùy chọn này ở gần đầu màn hình</translation>
 <translation id="5197729504361054390">Những người liên hệ bạn chọn sẽ được chia sẻ với <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Lần truy cập gần đây nhất: hôm nay</translation>
+<translation id="5225463052809312700">Bật máy ảnh</translation>
 <translation id="5264323282659631142">Xóa "<ph name="CHIP_LABEL" />"</translation>
 <translation id="528192093759286357">Kéo từ trên xuống và chạm vào nút quay lại để thoát khỏi chế độ toàn màn hình.</translation>
 <translation id="5300589172476337783">Hiển thị</translation>
@@ -239,6 +243,7 @@
 <translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Không cho các trang web sử dụng dữ liệu và thiết bị thực tế ảo của bạn</translation>
 <translation id="6447842834002726250">Cookie</translation>
+<translation id="6467852467360539617">Xoá dữ liệu và đặt lại quyền</translation>
 <translation id="6527303717912515753">Chia sẻ</translation>
 <translation id="6545864417968258051">Quét tìm Bluetooth</translation>
 <translation id="6552800053856095716">{PERMISSIONS_SUMMARY_BLOCKED,plural, =1{Đã chặn <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> và <ph name="NUM_MORE" /> quyền khác}other{Đã chặn <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> và <ph name="NUM_MORE" /> quyền khác}}</translation>
@@ -278,6 +283,7 @@
 <translation id="7250468141469952378">Đã chọn <ph name="ITEM_COUNT" /></translation>
 <translation id="7260727271532453612">Đã cho phép <ph name="PERMISSION_1" /> và <ph name="PERMISSION_2" /></translation>
 <translation id="7302486331832100261">Bạn thường chặn các thông báo. Để cho phép, hãy nhấn vào Chi tiết.</translation>
+<translation id="7383715096023715447">Chế độ cài đặt cho <ph name="DOMAIN" /></translation>
 <translation id="7423098979219808738">Hỏi trước</translation>
 <translation id="7423538860840206698">Đã chặn quyền đọc bảng nhớ tạm</translation>
 <translation id="7425915948813553151">Giao diện tối cho các trang web</translation>
@@ -337,6 +343,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 cookie đang được sử dụng}other{# cookie đang được sử dụng}}</translation>
 <translation id="8487700953926739672">Có thể dùng khi không có mạng</translation>
 <translation id="848952951823693243">Luôn yêu cầu trang web dành cho thiết bị di động</translation>
+<translation id="8499083585497694743">Bật micrô</translation>
 <translation id="851751545965956758">Chặn các trang web kết nối với thiết bị</translation>
 <translation id="8525306231823319788">Toàn màn hình</translation>
 <translation id="857943718398505171">Được phép (nên dùng)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb
index 228bede..860db03 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">若要允许 <ph name="APP_NAME" /> 使用 AR 功能,您还需在 <ph name="BEGIN_LINK" />Android 设置<ph name="END_LINK" />中开启摄像头。</translation>
 <translation id="1864927262126810325">来自<ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">此设备的位置信息使用权已关闭;若想开启这项权限,请转到 <ph name="BEGIN_LINK" />Android 设置<ph name="END_LINK" />。</translation>
+<translation id="1915307458270490472">中止</translation>
 <translation id="1919345977826869612">广告</translation>
 <translation id="1919950603503897840">选择联系人</translation>
 <translation id="1923695749281512248">已下载 <ph name="BYTES_DOWNLOADED_WITH_UNITS" />,共 <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">离开</translation>
 <translation id="2687403674020088961">阻止所有 Cookie(不建议)</translation>
 <translation id="2704606927547763573">已复制</translation>
+<translation id="2713106313042589954">关闭摄像头</translation>
 <translation id="2717722538473713889">电子邮件地址</translation>
 <translation id="2750481671343847896">网站可以显示来自身份服务的登录提示。</translation>
 <translation id="2785051990912111074">此选项会清除 <ph name="WEBSITE" /> 的 Cookie</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">在允许网站使用您的摄像头前先询问(推荐)</translation>
 <translation id="4505788138578415521">网址已展开</translation>
 <translation id="4534723447064627427">若要允许 <ph name="APP_NAME" /> 使用您的麦克风,您还需在 <ph name="BEGIN_LINK" />Android 设置<ph name="END_LINK" />中开启麦克风。</translation>
+<translation id="4566417217121906555">将麦克风静音</translation>
 <translation id="4570913071927164677">详情</translation>
 <translation id="4645575059429386691">由您父母管理</translation>
 <translation id="4670064810192446073">虚拟实境</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">选项位于屏幕顶部附近</translation>
 <translation id="5197729504361054390">系统会将您所选联系人的详细信息分享给 <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />。</translation>
 <translation id="5216942107514965959">上次访问时间:今天</translation>
+<translation id="5225463052809312700">开启摄像头</translation>
 <translation id="5264323282659631142">移除“<ph name="CHIP_LABEL" />”</translation>
 <translation id="528192093759286357">从顶部向下拖动并触摸“返回”按钮,即可退出全屏模式。</translation>
 <translation id="5300589172476337783">显示</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">禁止使用第三方帐号登录特定网站。</translation>
 <translation id="6388207532828177975">清除并重置</translation>
 <translation id="6398765197997659313">退出全屏模式</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">禁止网站使用您的虚拟实境设备和数据</translation>
 <translation id="6447842834002726250">Cookie</translation>
 <translation id="6527303717912515753">分享</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{正在使用 1 个 Cookie}other{正在使用 # 个 Cookie}}</translation>
 <translation id="8487700953926739672">可离线使用</translation>
 <translation id="848952951823693243">始终请求访问移动网站</translation>
+<translation id="8499083585497694743">将麦克风取消静音</translation>
 <translation id="851751545965956758">禁止网站连接到设备</translation>
 <translation id="8525306231823319788">全屏</translation>
 <translation id="857943718398505171">允许(推荐)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb
index 5673d8a89..4a5abc8 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">如要讓 <ph name="APP_NAME" /> 使用 AR,請一併在 <ph name="BEGIN_LINK" />Android 設定<ph name="END_LINK" />中開啟相機。</translation>
 <translation id="1864927262126810325">來自「<ph name="SOURCE_NAME" />」</translation>
 <translation id="1887786770086287077">此裝置的位置資訊存取權已關閉,請在「<ph name="BEGIN_LINK" />Android 設定<ph name="END_LINK" />」中開啟。</translation>
+<translation id="1915307458270490472">結束通話</translation>
 <translation id="1919345977826869612">廣告</translation>
 <translation id="1919950603503897840">選取聯絡人</translation>
 <translation id="1923695749281512248">已下載:<ph name="BYTES_DOWNLOADED_WITH_UNITS" />,總大小:<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">離開</translation>
 <translation id="2687403674020088961">封鎖所有 Cookie (不建議)</translation>
 <translation id="2704606927547763573">已複製</translation>
+<translation id="2713106313042589954">關閉攝錄機</translation>
 <translation id="2717722538473713889">電郵地址</translation>
 <translation id="2750481671343847896">網站可顯示來自身分服務的登入提示。</translation>
 <translation id="2785051990912111074">此選項將會清除 <ph name="WEBSITE" /> 的 Cookie</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">允許網站使用相機前先詢問您 (建議)</translation>
 <translation id="4505788138578415521">展開咗網址</translation>
 <translation id="4534723447064627427">如要讓 <ph name="APP_NAME" /> 存取您的麥克風,請一併在 <ph name="BEGIN_LINK" />Android 設定<ph name="END_LINK" />中開啟麥克風。</translation>
+<translation id="4566417217121906555">將麥克風設定為靜音</translation>
 <translation id="4570913071927164677">詳細資料</translation>
 <translation id="4645575059429386691">由您的家長管理</translation>
 <translation id="4670064810192446073">虛擬實境</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">選項喺螢幕頂部附近</translation>
 <translation id="5197729504361054390">系統會將您選取的聯絡人向 <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> 提供。</translation>
 <translation id="5216942107514965959">上次瀏覽時間:今天</translation>
+<translation id="5225463052809312700">開啟攝錄機</translation>
 <translation id="5264323282659631142">移除「<ph name="CHIP_LABEL" />」</translation>
 <translation id="528192093759286357">由上而下拖曳,然後輕觸返回按鈕即可退出全螢幕。</translation>
 <translation id="5300589172476337783">顯示</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">禁止特定網站使用第三方登入功能。</translation>
 <translation id="6388207532828177975">清除並重設</translation>
 <translation id="6398765197997659313">退出全螢幕模式</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">禁止網站使用您的虛擬實境裝置和資料</translation>
 <translation id="6447842834002726250">Cookie</translation>
 <translation id="6527303717912515753">分享</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{1 個 Cookie 正在使用中}other{# 個 Cookie 正在使用中}}</translation>
 <translation id="8487700953926739672">可離線使用</translation>
 <translation id="848952951823693243">一律要求流動網站</translation>
+<translation id="8499083585497694743">將麥克風取消靜音</translation>
 <translation id="851751545965956758">禁止網站連接裝置</translation>
 <translation id="8525306231823319788">全螢幕</translation>
 <translation id="857943718398505171">允許 (建議)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb
index dad536c..bf33c99 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">如要允許 <ph name="APP_NAME" /> 使用 AR,請一併在 <ph name="BEGIN_LINK" />Android 設定<ph name="END_LINK" />中開啟攝影機。</translation>
 <translation id="1864927262126810325">來自 <ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">這部裝置的位置資訊存取權已關閉。請在 <ph name="BEGIN_LINK" />Android 設定<ph name="END_LINK" />中予以開啟。</translation>
+<translation id="1915307458270490472">掛斷</translation>
 <translation id="1919345977826869612">廣告</translation>
 <translation id="1919950603503897840">選取聯絡人</translation>
 <translation id="1923695749281512248">已下載:<ph name="BYTES_DOWNLOADED_WITH_UNITS" />,總大小:<ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">離開</translation>
 <translation id="2687403674020088961">封鎖所有 Cookie (不建議)</translation>
 <translation id="2704606927547763573">已複製</translation>
+<translation id="2713106313042589954">關閉攝影機</translation>
 <translation id="2717722538473713889">電子郵件地址</translation>
 <translation id="2750481671343847896">網站可以顯示身分識別服務的登入提示。</translation>
 <translation id="2785051990912111074">這會清除 <ph name="WEBSITE" /> 的 Cookie</translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">允許網站使用你的攝影機前,必須先詢問你 (建議)</translation>
 <translation id="4505788138578415521">已展開網址</translation>
 <translation id="4534723447064627427">如要允許 <ph name="APP_NAME" /> 存取裝置的麥克風,請一併在 <ph name="BEGIN_LINK" />Android 設定<ph name="END_LINK" />中開啟麥克風。</translation>
+<translation id="4566417217121906555">將麥克風設為靜音</translation>
 <translation id="4570913071927164677">詳細資料</translation>
 <translation id="4645575059429386691">你的家長已停用這項功能</translation>
 <translation id="4670064810192446073">虛擬實境</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">選項位於畫面頂端</translation>
 <translation id="5197729504361054390">系統會將你選取的聯絡人資訊提供給 <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />。</translation>
 <translation id="5216942107514965959">上次造訪日期:今天</translation>
+<translation id="5225463052809312700">開啟攝影機</translation>
 <translation id="5264323282659631142">移除「<ph name="CHIP_LABEL" />」</translation>
 <translation id="528192093759286357">從頂端拖曳並輕觸返回按鈕即可結束全螢幕模式。</translation>
 <translation id="5300589172476337783">顯示</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">禁止特定網站使用第三方登入功能。</translation>
 <translation id="6388207532828177975">清除並重設</translation>
 <translation id="6398765197997659313">退出全螢幕模式</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">禁止網站使用你的虛擬實境裝置和資料</translation>
 <translation id="6447842834002726250">Cookie</translation>
 <translation id="6527303717912515753">分享</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{目前使用 1 個 Cookie}other{目前使用 # 個 Cookie}}</translation>
 <translation id="8487700953926739672">可離線使用</translation>
 <translation id="848952951823693243">一律要求行動版網站</translation>
+<translation id="8499083585497694743">將麥克風取消靜音</translation>
 <translation id="851751545965956758">禁止網站連線至裝置</translation>
 <translation id="8525306231823319788">全螢幕</translation>
 <translation id="857943718398505171">已允許 (建議)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb
index f64a021..44d31e71 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb
@@ -32,6 +32,7 @@
 <translation id="1818308510395330587">Ukuze uvumele i-<ph name="APP_NAME" /> isebenzise i-AR, vula nekhamera <ph name="BEGIN_LINK" />Kumasethingi e-Android<ph name="END_LINK" />.</translation>
 <translation id="1864927262126810325">Kusuka ku-<ph name="SOURCE_NAME" /></translation>
 <translation id="1887786770086287077">Ukufinyelela kwendawo kuvalelwe le divayisi. Kuvule <ph name="BEGIN_LINK" />kuzilungiselelo ze-Android<ph name="END_LINK" />.</translation>
+<translation id="1915307458270490472">Vala ikholi</translation>
 <translation id="1919345977826869612">Izikhangiso</translation>
 <translation id="1919950603503897840">Khetha oxhumana nabo</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
@@ -78,6 +79,7 @@
 <translation id="2677748264148917807">Hamba</translation>
 <translation id="2687403674020088961">Vimbela wonke amakhukhi (akunconywa)</translation>
 <translation id="2704606927547763573">Kukopishiwe</translation>
+<translation id="2713106313042589954">Vala ikhamera</translation>
 <translation id="2717722538473713889">Amakheli we-imeyili</translation>
 <translation id="2750481671343847896">Amasayithi angabonisa imiyalo yokungena ngemvume kusukela kumasevisi kamazisi.</translation>
 <translation id="2785051990912111074">Le nketho izusula amakhukhi we-<ph name="WEBSITE" /></translation>
@@ -154,6 +156,7 @@
 <translation id="4479647676395637221">Buza kuqala ngaphambi kokuvumela amasayithi ukuthi asebenzise ikhamera yakho (kunconyiwe)</translation>
 <translation id="4505788138578415521">I-URL inwetshiwe</translation>
 <translation id="4534723447064627427">Ukuze uvumele i-<ph name="APP_NAME" /> ifinyelele imakrofoni yakho, vula nemakrofoni <ph name="BEGIN_LINK" />Kumasethingi e-Android<ph name="END_LINK" />.</translation>
+<translation id="4566417217121906555">Thulisa imakrofoni</translation>
 <translation id="4570913071927164677">Imininingwane</translation>
 <translation id="4645575059429386691">Kuphethwe umzali wakho</translation>
 <translation id="4670064810192446073">Into engekho ngokoqobo</translation>
@@ -178,6 +181,7 @@
 <translation id="5186036860380548585">Inketho iyatholakala eduze kwaphezulu kwesikrini</translation>
 <translation id="5197729504361054390">Oxhumana nabo obakhethayo bazokwabiwa no-<ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="5216942107514965959">Kugcine ukuvakashelwa namuhla</translation>
+<translation id="5225463052809312700">Vula ikhamera</translation>
 <translation id="5264323282659631142">Susa i-'<ph name="CHIP_LABEL" />'</translation>
 <translation id="528192093759286357">Hudula kusukela phezulu uphinde uthinte inkinobho yokubuyela emuva ukuze uphume kusikrini esigcwele.</translation>
 <translation id="5300589172476337783">Bonisa</translation>
@@ -236,6 +240,7 @@
 <translation id="6367753977865761591">Vimba ukungena ngemvume kwenkampani engahlangene ngqo kusayithi elithile.</translation>
 <translation id="6388207532828177975">Sula futhi usethe kabusha</translation>
 <translation id="6398765197997659313">Phuma kusikrini esigcwele</translation>
+<translation id="6405650995156823521"><ph name="FIRST_PART" /> • <ph name="SECOND_PART" /></translation>
 <translation id="6439114592976064011">Vimbela amasayithi ukuthi angasebenzisi idivayisi yakho yento engekho ngokoqobo nedatha</translation>
 <translation id="6447842834002726250">Amakhukhi</translation>
 <translation id="6527303717912515753">Yabelana</translation>
@@ -336,6 +341,7 @@
 <translation id="8451050538944905715">{NUM_SELECTED,plural, =1{Ikhukhi e-1 iyasebenza}one{Amakhukhi angu-# asebenzayo}other{Amakhukhi angu-# asebenzayo}}</translation>
 <translation id="8487700953926739672">Itholakala kokungaxhunyiwe ku-inthanethi</translation>
 <translation id="848952951823693243">Njalo cela isayithi leselula</translation>
+<translation id="8499083585497694743">Vula imakrofoni</translation>
 <translation id="851751545965956758">Vimbela amasayithi kusukela ekuxhumekeni kumadivayisi</translation>
 <translation id="8525306231823319788">Isikrini esigcwele</translation>
 <translation id="857943718398505171">Kuvunyelwe (kunconyiwe)</translation>
diff --git a/components/device_signals/core/BUILD.gn b/components/device_signals/core/BUILD.gn
index 408026a4..0fc3e52 100644
--- a/components/device_signals/core/BUILD.gn
+++ b/components/device_signals/core/BUILD.gn
@@ -7,9 +7,6 @@
   deps = [
     "//components/device_signals/core/browser:unit_tests",
     "//components/device_signals/core/common:unit_tests",
+    "//components/device_signals/core/system_signals:unit_tests",
   ]
-
-  if (is_win) {
-    deps += [ "//components/device_signals/core/system_signals/win:unit_tests" ]
-  }
 }
diff --git a/components/device_signals/core/common/BUILD.gn b/components/device_signals/core/common/BUILD.gn
index c66351e..1a808cf 100644
--- a/components/device_signals/core/common/BUILD.gn
+++ b/components/device_signals/core/common/BUILD.gn
@@ -4,29 +4,18 @@
 
 static_library("common") {
   public = [
-    "base_platform_delegate.h",
     "common_types.h",
-    "file_system_service.h",
-    "platform_delegate.h",
     "signals_constants.h",
   ]
 
   sources = [
-    "base_platform_delegate.cc",
     "common_types.cc",
-    "file_system_service.cc",
-    "hashing_utils.cc",
-    "hashing_utils.h",
-    "platform_delegate.cc",
     "signals_constants.cc",
   ]
 
   public_deps = [ "//third_party/abseil-cpp:absl" ]
 
-  deps = [
-    "//base",
-    "//crypto",
-  ]
+  deps = [ "//base" ]
 }
 
 source_set("features") {
@@ -37,34 +26,13 @@
   public_deps = [ "//base" ]
 }
 
-source_set("test_support") {
-  testonly = true
-  sources = [
-    "mock_file_system_service.cc",
-    "mock_file_system_service.h",
-    "mock_platform_delegate.cc",
-    "mock_platform_delegate.h",
-  ]
-
-  deps = [
-    ":common",
-    "//base",
-    "//testing/gmock",
-  ]
-}
-
 source_set("unit_tests") {
   testonly = true
-  sources = [
-    "base_platform_delegate_unittest.cc",
-    "file_system_service_unittest.cc",
-    "signals_features_unittest.cc",
-  ]
+  sources = [ "signals_features_unittest.cc" ]
 
   deps = [
     ":common",
     ":features",
-    ":test_support",
     "//base",
     "//base/test:test_support",
     "//testing/gmock",
diff --git a/components/device_signals/core/common/linux/linux_platform_delegate.h b/components/device_signals/core/common/linux/linux_platform_delegate.h
deleted file mode 100644
index 5980d6e..0000000
--- a/components/device_signals/core/common/linux/linux_platform_delegate.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2022 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 COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_LINUX_LINUX_PLATFORM_DELEGATE_H_
-#define COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_LINUX_LINUX_PLATFORM_DELEGATE_H_
-
-#include "components/device_signals/core/common/posix/posix_platform_delegate.h"
-
-namespace device_signals {
-
-class LinuxPlatformDelegate : public PosixPlatformDelegate {
- public:
-  LinuxPlatformDelegate();
-  ~LinuxPlatformDelegate() override;
-
-  // PlatformDelegate:
-  FilePathMap<ExecutableMetadata> GetAllExecutableMetadata(
-      const FilePathSet& file_paths) override;
-};
-
-}  // namespace device_signals
-
-#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_LINUX_LINUX_PLATFORM_DELEGATE_H_
diff --git a/components/device_signals/core/common/mac/mac_platform_delegate.h b/components/device_signals/core/common/mac/mac_platform_delegate.h
deleted file mode 100644
index 05d7be0e..0000000
--- a/components/device_signals/core/common/mac/mac_platform_delegate.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2022 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 COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_MAC_MAC_PLATFORM_DELEGATE_H_
-#define COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_MAC_MAC_PLATFORM_DELEGATE_H_
-
-#include "components/device_signals/core/common/posix/posix_platform_delegate.h"
-
-namespace device_signals {
-
-class MacPlatformDelegate : public PosixPlatformDelegate {
- public:
-  MacPlatformDelegate();
-  ~MacPlatformDelegate() override;
-
-  // FileSystemDelegate:
-  FilePathMap<ExecutableMetadata> GetAllExecutableMetadata(
-      const FilePathSet& file_paths) override;
-};
-
-}  // namespace device_signals
-
-#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_MAC_MAC_PLATFORM_DELEGATE_H_
diff --git a/components/device_signals/core/system_signals/BUILD.gn b/components/device_signals/core/system_signals/BUILD.gn
new file mode 100644
index 0000000..a33c4ac0
--- /dev/null
+++ b/components/device_signals/core/system_signals/BUILD.gn
@@ -0,0 +1,66 @@
+# Copyright 2022 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.
+
+static_library("system_signals") {
+  public = [
+    "base_platform_delegate.h",
+    "file_system_service.h",
+    "platform_delegate.h",
+  ]
+
+  sources = [
+    "base_platform_delegate.cc",
+    "file_system_service.cc",
+    "hashing_utils.cc",
+    "hashing_utils.h",
+    "platform_delegate.cc",
+  ]
+
+  public_deps = [ "//third_party/abseil-cpp:absl" ]
+
+  deps = [
+    "//base",
+    "//components/device_signals/core/common",
+    "//crypto",
+  ]
+}
+
+source_set("test_support") {
+  testonly = true
+  sources = [
+    "mock_file_system_service.cc",
+    "mock_file_system_service.h",
+    "mock_platform_delegate.cc",
+    "mock_platform_delegate.h",
+  ]
+
+  deps = [
+    ":system_signals",
+    "//base",
+    "//components/device_signals/core/common",
+    "//testing/gmock",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+  sources = [
+    "base_platform_delegate_unittest.cc",
+    "file_system_service_unittest.cc",
+  ]
+
+  deps = [
+    ":system_signals",
+    ":test_support",
+    "//base",
+    "//base/test:test_support",
+    "//components/device_signals/core/common",
+    "//testing/gmock",
+    "//testing/gtest",
+  ]
+
+  if (is_win) {
+    deps += [ "//components/device_signals/core/system_signals/win:unit_tests" ]
+  }
+}
diff --git a/components/device_signals/core/common/base_platform_delegate.cc b/components/device_signals/core/system_signals/base_platform_delegate.cc
similarity index 89%
rename from components/device_signals/core/common/base_platform_delegate.cc
rename to components/device_signals/core/system_signals/base_platform_delegate.cc
index e885d94..f66296c 100644
--- a/components/device_signals/core/common/base_platform_delegate.cc
+++ b/components/device_signals/core/system_signals/base_platform_delegate.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/device_signals/core/common/base_platform_delegate.h"
+#include "components/device_signals/core/system_signals/base_platform_delegate.h"
 
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
diff --git a/components/device_signals/core/common/base_platform_delegate.h b/components/device_signals/core/system_signals/base_platform_delegate.h
similarity index 66%
rename from components/device_signals/core/common/base_platform_delegate.h
rename to components/device_signals/core/system_signals/base_platform_delegate.h
index 6d41a43e..3d0ad19 100644
--- a/components/device_signals/core/common/base_platform_delegate.h
+++ b/components/device_signals/core/system_signals/base_platform_delegate.h
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_BASE_PLATFORM_DELEGATE_H_
-#define COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_BASE_PLATFORM_DELEGATE_H_
+#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_BASE_PLATFORM_DELEGATE_H_
+#define COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_BASE_PLATFORM_DELEGATE_H_
 
-#include "components/device_signals/core/common/platform_delegate.h"
+#include "components/device_signals/core/system_signals/platform_delegate.h"
 
 namespace device_signals {
 
@@ -25,4 +25,4 @@
 
 }  // namespace device_signals
 
-#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_BASE_PLATFORM_DELEGATE_H_
+#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_BASE_PLATFORM_DELEGATE_H_
diff --git a/components/device_signals/core/common/base_platform_delegate_unittest.cc b/components/device_signals/core/system_signals/base_platform_delegate_unittest.cc
similarity index 95%
rename from components/device_signals/core/common/base_platform_delegate_unittest.cc
rename to components/device_signals/core/system_signals/base_platform_delegate_unittest.cc
index 299343e..e8944d70 100644
--- a/components/device_signals/core/common/base_platform_delegate_unittest.cc
+++ b/components/device_signals/core/system_signals/base_platform_delegate_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/device_signals/core/common/base_platform_delegate.h"
+#include "components/device_signals/core/system_signals/base_platform_delegate.h"
 
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
diff --git a/components/device_signals/core/common/file_system_service.cc b/components/device_signals/core/system_signals/file_system_service.cc
similarity index 94%
rename from components/device_signals/core/common/file_system_service.cc
rename to components/device_signals/core/system_signals/file_system_service.cc
index cb957830..d638a868 100644
--- a/components/device_signals/core/common/file_system_service.cc
+++ b/components/device_signals/core/system_signals/file_system_service.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/device_signals/core/common/file_system_service.h"
+#include "components/device_signals/core/system_signals/file_system_service.h"
 
 #include <memory>
 #include <utility>
@@ -10,8 +10,8 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "components/device_signals/core/common/common_types.h"
-#include "components/device_signals/core/common/hashing_utils.h"
-#include "components/device_signals/core/common/platform_delegate.h"
+#include "components/device_signals/core/system_signals/hashing_utils.h"
+#include "components/device_signals/core/system_signals/platform_delegate.h"
 
 namespace device_signals {
 
diff --git a/components/device_signals/core/common/file_system_service.h b/components/device_signals/core/system_signals/file_system_service.h
similarity index 84%
rename from components/device_signals/core/common/file_system_service.h
rename to components/device_signals/core/system_signals/file_system_service.h
index c8f052a..f6a7903 100644
--- a/components/device_signals/core/common/file_system_service.h
+++ b/components/device_signals/core/system_signals/file_system_service.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_FILE_SYSTEM_SERVICE_H_
-#define COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_FILE_SYSTEM_SERVICE_H_
+#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_FILE_SYSTEM_SERVICE_H_
+#define COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_FILE_SYSTEM_SERVICE_H_
 
 #include <memory>
 #include <vector>
@@ -42,4 +42,4 @@
 
 }  // namespace device_signals
 
-#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_FILE_SYSTEM_SERVICE_H_
+#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_FILE_SYSTEM_SERVICE_H_
diff --git a/components/device_signals/core/common/file_system_service_unittest.cc b/components/device_signals/core/system_signals/file_system_service_unittest.cc
similarity index 97%
rename from components/device_signals/core/common/file_system_service_unittest.cc
rename to components/device_signals/core/system_signals/file_system_service_unittest.cc
index ba65ea8f..57fd867 100644
--- a/components/device_signals/core/common/file_system_service_unittest.cc
+++ b/components/device_signals/core/system_signals/file_system_service_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/device_signals/core/common/file_system_service.h"
+#include "components/device_signals/core/system_signals/file_system_service.h"
 
 #include <array>
 #include <vector>
@@ -13,8 +13,8 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "components/device_signals/core/common/common_types.h"
-#include "components/device_signals/core/common/mock_platform_delegate.h"
-#include "components/device_signals/core/common/platform_delegate.h"
+#include "components/device_signals/core/system_signals/mock_platform_delegate.h"
+#include "components/device_signals/core/system_signals/platform_delegate.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/components/device_signals/core/common/hashing_utils.cc b/components/device_signals/core/system_signals/hashing_utils.cc
similarity index 94%
rename from components/device_signals/core/common/hashing_utils.cc
rename to components/device_signals/core/system_signals/hashing_utils.cc
index 4da3a0c..3fd2ba6a43 100644
--- a/components/device_signals/core/common/hashing_utils.cc
+++ b/components/device_signals/core/system_signals/hashing_utils.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/device_signals/core/common/hashing_utils.h"
+#include "components/device_signals/core/system_signals/hashing_utils.h"
 
 #include <array>
 #include <string>
diff --git a/components/device_signals/core/common/hashing_utils.h b/components/device_signals/core/system_signals/hashing_utils.h
similarity index 72%
rename from components/device_signals/core/common/hashing_utils.h
rename to components/device_signals/core/system_signals/hashing_utils.h
index 7c572f6..92c7fee 100644
--- a/components/device_signals/core/common/hashing_utils.h
+++ b/components/device_signals/core/system_signals/hashing_utils.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_HASHING_UTILS_H_
-#define COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_HASHING_UTILS_H_
+#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_HASHING_UTILS_H_
+#define COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_HASHING_UTILS_H_
 
 #include <string>
 
@@ -21,4 +21,4 @@
 
 }  // namespace device_signals
 
-#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_HASHING_UTILS_H_
+#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_HASHING_UTILS_H_
diff --git a/components/device_signals/core/common/linux/BUILD.gn b/components/device_signals/core/system_signals/linux/BUILD.gn
similarity index 76%
rename from components/device_signals/core/common/linux/BUILD.gn
rename to components/device_signals/core/system_signals/linux/BUILD.gn
index 5011bf3..a8b4da3 100644
--- a/components/device_signals/core/common/linux/BUILD.gn
+++ b/components/device_signals/core/system_signals/linux/BUILD.gn
@@ -9,7 +9,8 @@
 
   public_deps = [
     "//components/device_signals/core/common",
-    "//components/device_signals/core/common/posix",
+    "//components/device_signals/core/system_signals",
+    "//components/device_signals/core/system_signals/posix",
   ]
 
   deps = [ "//base" ]
diff --git a/components/device_signals/core/common/linux/linux_platform_delegate.cc b/components/device_signals/core/system_signals/linux/linux_platform_delegate.cc
similarity index 87%
rename from components/device_signals/core/common/linux/linux_platform_delegate.cc
rename to components/device_signals/core/system_signals/linux/linux_platform_delegate.cc
index 6ed64ad..cfd8eb0 100644
--- a/components/device_signals/core/common/linux/linux_platform_delegate.cc
+++ b/components/device_signals/core/system_signals/linux/linux_platform_delegate.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/device_signals/core/common/linux/linux_platform_delegate.h"
+#include "components/device_signals/core/system_signals/linux/linux_platform_delegate.h"
 
 #include "base/files/file_path.h"
 #include "components/device_signals/core/common/common_types.h"
diff --git a/components/device_signals/core/system_signals/linux/linux_platform_delegate.h b/components/device_signals/core/system_signals/linux/linux_platform_delegate.h
new file mode 100644
index 0000000..b45fdcb575
--- /dev/null
+++ b/components/device_signals/core/system_signals/linux/linux_platform_delegate.h
@@ -0,0 +1,24 @@
+// Copyright 2022 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 COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_LINUX_LINUX_PLATFORM_DELEGATE_H_
+#define COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_LINUX_LINUX_PLATFORM_DELEGATE_H_
+
+#include "components/device_signals/core/system_signals/posix/posix_platform_delegate.h"
+
+namespace device_signals {
+
+class LinuxPlatformDelegate : public PosixPlatformDelegate {
+ public:
+  LinuxPlatformDelegate();
+  ~LinuxPlatformDelegate() override;
+
+  // PlatformDelegate:
+  FilePathMap<ExecutableMetadata> GetAllExecutableMetadata(
+      const FilePathSet& file_paths) override;
+};
+
+}  // namespace device_signals
+
+#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_LINUX_LINUX_PLATFORM_DELEGATE_H_
diff --git a/components/device_signals/core/common/mac/BUILD.gn b/components/device_signals/core/system_signals/mac/BUILD.gn
similarity index 75%
rename from components/device_signals/core/common/mac/BUILD.gn
rename to components/device_signals/core/system_signals/mac/BUILD.gn
index 51093e3..a9fe889f 100644
--- a/components/device_signals/core/common/mac/BUILD.gn
+++ b/components/device_signals/core/system_signals/mac/BUILD.gn
@@ -9,7 +9,8 @@
 
   public_deps = [
     "//components/device_signals/core/common",
-    "//components/device_signals/core/common/posix",
+    "//components/device_signals/core/system_signals",
+    "//components/device_signals/core/system_signals/posix",
   ]
 
   deps = [ "//base" ]
diff --git a/components/device_signals/core/system_signals/mac/mac_platform_delegate.h b/components/device_signals/core/system_signals/mac/mac_platform_delegate.h
new file mode 100644
index 0000000..72d91ce
--- /dev/null
+++ b/components/device_signals/core/system_signals/mac/mac_platform_delegate.h
@@ -0,0 +1,24 @@
+// Copyright 2022 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 COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_MAC_MAC_PLATFORM_DELEGATE_H_
+#define COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_MAC_MAC_PLATFORM_DELEGATE_H_
+
+#include "components/device_signals/core/system_signals/posix/posix_platform_delegate.h"
+
+namespace device_signals {
+
+class MacPlatformDelegate : public PosixPlatformDelegate {
+ public:
+  MacPlatformDelegate();
+  ~MacPlatformDelegate() override;
+
+  // FileSystemDelegate:
+  FilePathMap<ExecutableMetadata> GetAllExecutableMetadata(
+      const FilePathSet& file_paths) override;
+};
+
+}  // namespace device_signals
+
+#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_MAC_MAC_PLATFORM_DELEGATE_H_
diff --git a/components/device_signals/core/common/mac/mac_platform_delegate.mm b/components/device_signals/core/system_signals/mac/mac_platform_delegate.mm
similarity index 87%
rename from components/device_signals/core/common/mac/mac_platform_delegate.mm
rename to components/device_signals/core/system_signals/mac/mac_platform_delegate.mm
index c6c7ef7e..258e54d 100644
--- a/components/device_signals/core/common/mac/mac_platform_delegate.mm
+++ b/components/device_signals/core/system_signals/mac/mac_platform_delegate.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/device_signals/core/common/mac/mac_platform_delegate.h"
+#include "components/device_signals/core/system_signals/mac/mac_platform_delegate.h"
 
 #include "base/files/file_path.h"
 #include "components/device_signals/core/common/common_types.h"
diff --git a/components/device_signals/core/common/mock_file_system_service.cc b/components/device_signals/core/system_signals/mock_file_system_service.cc
similarity index 80%
rename from components/device_signals/core/common/mock_file_system_service.cc
rename to components/device_signals/core/system_signals/mock_file_system_service.cc
index b15ce75..0285aa5 100644
--- a/components/device_signals/core/common/mock_file_system_service.cc
+++ b/components/device_signals/core/system_signals/mock_file_system_service.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/device_signals/core/common/mock_file_system_service.h"
+#include "components/device_signals/core/system_signals/mock_file_system_service.h"
 
 namespace device_signals {
 
diff --git a/components/device_signals/core/common/mock_file_system_service.h b/components/device_signals/core/system_signals/mock_file_system_service.h
similarity index 70%
rename from components/device_signals/core/common/mock_file_system_service.h
rename to components/device_signals/core/system_signals/mock_file_system_service.h
index 20ea7fe..3b6badfc2 100644
--- a/components/device_signals/core/common/mock_file_system_service.h
+++ b/components/device_signals/core/system_signals/mock_file_system_service.h
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_MOCK_FILE_SYSTEM_SERVICE_H_
-#define COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_MOCK_FILE_SYSTEM_SERVICE_H_
+#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_MOCK_FILE_SYSTEM_SERVICE_H_
+#define COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_MOCK_FILE_SYSTEM_SERVICE_H_
 
-#include "components/device_signals/core/common/file_system_service.h"
+#include "components/device_signals/core/system_signals/file_system_service.h"
 
 #include "components/device_signals/core/common/common_types.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -29,4 +29,4 @@
 
 }  // namespace device_signals
 
-#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_MOCK_FILE_SYSTEM_SERVICE_H_
+#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_MOCK_FILE_SYSTEM_SERVICE_H_
diff --git a/components/device_signals/core/common/mock_platform_delegate.cc b/components/device_signals/core/system_signals/mock_platform_delegate.cc
similarity index 80%
rename from components/device_signals/core/common/mock_platform_delegate.cc
rename to components/device_signals/core/system_signals/mock_platform_delegate.cc
index 1da496f7..c15adac 100644
--- a/components/device_signals/core/common/mock_platform_delegate.cc
+++ b/components/device_signals/core/system_signals/mock_platform_delegate.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/device_signals/core/common/mock_platform_delegate.h"
+#include "components/device_signals/core/system_signals/mock_platform_delegate.h"
 
 namespace device_signals {
 
diff --git a/components/device_signals/core/common/mock_platform_delegate.h b/components/device_signals/core/system_signals/mock_platform_delegate.h
similarity index 74%
rename from components/device_signals/core/common/mock_platform_delegate.h
rename to components/device_signals/core/system_signals/mock_platform_delegate.h
index 5d8c3d9..a08ed546 100644
--- a/components/device_signals/core/common/mock_platform_delegate.h
+++ b/components/device_signals/core/system_signals/mock_platform_delegate.h
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_MOCK_PLATFORM_DELEGATE_H_
-#define COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_MOCK_PLATFORM_DELEGATE_H_
+#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_MOCK_PLATFORM_DELEGATE_H_
+#define COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_MOCK_PLATFORM_DELEGATE_H_
 
 #include "base/files/file_path.h"
 #include "components/device_signals/core/common/common_types.h"
-#include "components/device_signals/core/common/platform_delegate.h"
+#include "components/device_signals/core/system_signals/platform_delegate.h"
 #include "testing/gmock/include/gmock/gmock.h"
 
 namespace device_signals {
@@ -31,4 +31,4 @@
 
 }  // namespace device_signals
 
-#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_MOCK_PLATFORM_DELEGATE_H_
+#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_MOCK_PLATFORM_DELEGATE_H_
diff --git a/components/device_signals/core/common/platform_delegate.cc b/components/device_signals/core/system_signals/platform_delegate.cc
similarity index 89%
rename from components/device_signals/core/common/platform_delegate.cc
rename to components/device_signals/core/system_signals/platform_delegate.cc
index 5c94f4f..973ce71 100644
--- a/components/device_signals/core/common/platform_delegate.cc
+++ b/components/device_signals/core/system_signals/platform_delegate.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/device_signals/core/common/platform_delegate.h"
+#include "components/device_signals/core/system_signals/platform_delegate.h"
 
 #include "base/files/file_path.h"
 #include "build/build_config.h"
diff --git a/components/device_signals/core/common/platform_delegate.h b/components/device_signals/core/system_signals/platform_delegate.h
similarity index 87%
rename from components/device_signals/core/common/platform_delegate.h
rename to components/device_signals/core/system_signals/platform_delegate.h
index 6a218bf..3cc0ed1 100644
--- a/components/device_signals/core/common/platform_delegate.h
+++ b/components/device_signals/core/system_signals/platform_delegate.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_PLATFORM_DELEGATE_H_
-#define COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_PLATFORM_DELEGATE_H_
+#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_PLATFORM_DELEGATE_H_
+#define COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_PLATFORM_DELEGATE_H_
 
 #include "base/containers/flat_map.h"
 #include "base/containers/flat_set.h"
@@ -49,4 +49,4 @@
 
 }  // namespace device_signals
 
-#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_PLATFORM_DELEGATE_H_
+#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_PLATFORM_DELEGATE_H_
diff --git a/components/device_signals/core/common/posix/BUILD.gn b/components/device_signals/core/system_signals/posix/BUILD.gn
similarity index 70%
rename from components/device_signals/core/common/posix/BUILD.gn
rename to components/device_signals/core/system_signals/posix/BUILD.gn
index a7299f0..513f71a 100644
--- a/components/device_signals/core/common/posix/BUILD.gn
+++ b/components/device_signals/core/system_signals/posix/BUILD.gn
@@ -7,7 +7,10 @@
 
   sources = [ "posix_platform_delegate.cc" ]
 
-  public_deps = [ "//components/device_signals/core/common" ]
+  public_deps = [
+    "//components/device_signals/core/common",
+    "//components/device_signals/core/system_signals",
+  ]
 
   deps = [ "//base" ]
 }
diff --git a/components/device_signals/core/common/posix/posix_platform_delegate.cc b/components/device_signals/core/system_signals/posix/posix_platform_delegate.cc
similarity index 90%
rename from components/device_signals/core/common/posix/posix_platform_delegate.cc
rename to components/device_signals/core/system_signals/posix/posix_platform_delegate.cc
index 1eca802a..0b22a56f 100644
--- a/components/device_signals/core/common/posix/posix_platform_delegate.cc
+++ b/components/device_signals/core/system_signals/posix/posix_platform_delegate.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/device_signals/core/common/posix/posix_platform_delegate.h"
+#include "components/device_signals/core/system_signals/posix/posix_platform_delegate.h"
 
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
diff --git a/components/device_signals/core/common/posix/posix_platform_delegate.h b/components/device_signals/core/system_signals/posix/posix_platform_delegate.h
similarity index 60%
rename from components/device_signals/core/common/posix/posix_platform_delegate.h
rename to components/device_signals/core/system_signals/posix/posix_platform_delegate.h
index 0db5f50..feca476 100644
--- a/components/device_signals/core/common/posix/posix_platform_delegate.h
+++ b/components/device_signals/core/system_signals/posix/posix_platform_delegate.h
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_POSIX_POSIX_PLATFORM_DELEGATE_H_
-#define COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_POSIX_POSIX_PLATFORM_DELEGATE_H_
+#ifndef COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_POSIX_POSIX_PLATFORM_DELEGATE_H_
+#define COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_POSIX_POSIX_PLATFORM_DELEGATE_H_
 
-#include "components/device_signals/core/common/base_platform_delegate.h"
+#include "components/device_signals/core/system_signals/base_platform_delegate.h"
 
 namespace device_signals {
 
@@ -23,4 +23,4 @@
 
 }  // namespace device_signals
 
-#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_COMMON_POSIX_POSIX_PLATFORM_DELEGATE_H_
+#endif  // COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_POSIX_POSIX_PLATFORM_DELEGATE_H_
diff --git a/components/device_signals/core/system_signals/win/BUILD.gn b/components/device_signals/core/system_signals/win/BUILD.gn
index 394eae6..9c81e5b7 100644
--- a/components/device_signals/core/system_signals/win/BUILD.gn
+++ b/components/device_signals/core/system_signals/win/BUILD.gn
@@ -23,6 +23,7 @@
     "//base",
     "//components/device_signals/core/common",
     "//components/device_signals/core/common/win",
+    "//components/device_signals/core/system_signals",
     "//third_party/abseil-cpp:absl",
   ]
 }
diff --git a/components/device_signals/core/system_signals/win/win_platform_delegate.h b/components/device_signals/core/system_signals/win/win_platform_delegate.h
index ad453e1..86c4df2 100644
--- a/components/device_signals/core/system_signals/win/win_platform_delegate.h
+++ b/components/device_signals/core/system_signals/win/win_platform_delegate.h
@@ -5,7 +5,7 @@
 #ifndef COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_WIN_WIN_PLATFORM_DELEGATE_H_
 #define COMPONENTS_DEVICE_SIGNALS_CORE_SYSTEM_SIGNALS_WIN_WIN_PLATFORM_DELEGATE_H_
 
-#include "components/device_signals/core/common/base_platform_delegate.h"
+#include "components/device_signals/core/system_signals/base_platform_delegate.h"
 
 namespace device_signals {
 
diff --git a/components/exo/shell_surface_presentation_time_recorder_unittest.cc b/components/exo/shell_surface_presentation_time_recorder_unittest.cc
index 8136793..f848b8f9 100644
--- a/components/exo/shell_surface_presentation_time_recorder_unittest.cc
+++ b/components/exo/shell_surface_presentation_time_recorder_unittest.cc
@@ -110,6 +110,8 @@
         /*flags=*/0);
     recorder_->set_fake_feedback(feedback);
 
+    // Fake damage to ensure that Commit() generates a compositor frame.
+    root_surface()->Damage(gfx::Rect(0, 0, 32, 32));
     root_surface()->Commit();
     recorder_->WaitForFramePresented();
   }
@@ -134,9 +136,7 @@
   EXPECT_TRUE(recorder_->RequestNext());
 }
 
-// TODO(crbug.com/1349591): Revive this test.
-TEST_F(ShellSurfacePresentationTimeRecorderTest,
-       DISABLED_AckSkippedOrOutOfOrder) {
+TEST_F(ShellSurfacePresentationTimeRecorderTest, AckSkippedOrOutOfOrder) {
   // Issue 4 requests with configure serial 1-5.
   for (size_t i = 1u; i <= 5u; ++i) {
     recorder_->PrepareToRecord();
diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc
index b630f6a..2c7a211 100644
--- a/components/history/core/browser/history_backend.cc
+++ b/components/history/core/browser/history_backend.cc
@@ -1756,6 +1756,20 @@
   return ToAnnotatedVisits(visit_rows);
 }
 
+std::vector<ClusterVisit> HistoryBackend::ToClusterVisits(
+    const std::vector<VisitID>& visit_ids) {
+  auto annotated_visits = ToAnnotatedVisits(visit_ids);
+  std::vector<ClusterVisit> cluster_visits;
+  base::ranges::transform(annotated_visits, std::back_inserter(cluster_visits),
+                          [&](const auto& annotated_visit) {
+                            ClusterVisit cluster_visit = db_->GetClusterVisit(
+                                annotated_visit.visit_row.visit_id);
+                            cluster_visit.annotated_visit = annotated_visit;
+                            return cluster_visit;
+                          });
+  return cluster_visits;
+}
+
 base::Time HistoryBackend::FindMostRecentClusteredTime() {
   // TODO(manukh): Implement. Since we don't have persisted clustered visits
   //  yet, there are no visits to take the timestamp of.
@@ -1794,20 +1808,9 @@
   if (!db_)
     return {};
 
-  // TODO(manukh): `Cluster`s and `ClusterRow`s have more fields that should be
-  //  set here once we begin persisting them to DB.
-
-  Cluster cluster;
+  Cluster cluster = db_->GetCluster(cluster_id);
   cluster.cluster_id = cluster_id;
-
-  const auto visit_ids = db_->GetVisitIdsInCluster(cluster_id);
-  const auto annotated_visits = ToAnnotatedVisits(visit_ids);
-  base::ranges::transform(annotated_visits, std::back_inserter(cluster.visits),
-                          [&](const auto& annotated_visit) {
-                            ClusterVisit cluster_visit;
-                            cluster_visit.annotated_visit = annotated_visit;
-                            return cluster_visit;
-                          });
+  cluster.visits = ToClusterVisits(db_->GetVisitIdsInCluster(cluster_id));
   return cluster;
 }
 
diff --git a/components/history/core/browser/history_backend.h b/components/history/core/browser/history_backend.h
index 4ef62c4..68e61b6 100644
--- a/components/history/core/browser/history_backend.h
+++ b/components/history/core/browser/history_backend.h
@@ -469,6 +469,10 @@
   std::vector<AnnotatedVisit> ToAnnotatedVisits(
       const std::vector<VisitID>& visit_ids);
 
+  // Utility method to Construct `ClusterVisit`s.
+  std::vector<ClusterVisit> ToClusterVisits(
+      const std::vector<VisitID>& visit_ids);
+
   // Returns the time of the most recent clustered visits; i.e. the boundary
   // until which visits have been clustered. It's possible for there to be
   // unclustered visits older than this boundary, since synced visits older than
diff --git a/components/history/core/browser/history_backend_unittest.cc b/components/history/core/browser/history_backend_unittest.cc
index 163afcad..99ee2f5d 100644
--- a/components/history/core/browser/history_backend_unittest.cc
+++ b/components/history/core/browser/history_backend_unittest.cc
@@ -3968,10 +3968,27 @@
 TEST_F(HistoryBackendTest, GetCluster) {
   AddAnnotatedVisit(0);
   AddAnnotatedVisit(1);
-  AddCluster({1, 2});
 
-  VerifyCluster(backend_->GetCluster(1), {1, {2, 1}});
-  VerifyCluster(backend_->GetCluster(2), {2});
+  ClusterVisit visit_1;
+  visit_1.annotated_visit.visit_row.visit_id = 1;
+  // Verify the cluster visits are being flushed out.
+  visit_1.url_for_display = u"url_for_display";
+  ClusterVisit visit_2;
+  visit_2.annotated_visit.visit_row.visit_id = 2;
+  // A cluster visit without a corresponding annotated visit shouldn't be
+  // returned.
+  ClusterVisit visit_3;
+  visit_3.annotated_visit.visit_row.visit_id = 3;
+  backend_->db_->AddClusters(
+      {{0, {visit_1, visit_2, visit_3}, {}, false, u"label"}});
+
+  const auto cluster = backend_->GetCluster(1);
+  VerifyCluster(cluster, {1, {2, 1}});
+  EXPECT_EQ(cluster.cluster_id, 1);
+  EXPECT_EQ(cluster.label, u"label");
+  EXPECT_EQ(cluster.visits[1].url_for_display, u"url_for_display");
+
+  VerifyCluster(backend_->GetCluster(3), {3});
 }
 
 TEST_F(HistoryBackendTest, ReplaceClusters) {
diff --git a/components/history/core/browser/history_types.cc b/components/history/core/browser/history_types.cc
index 5cd74637..395e8f0 100644
--- a/components/history/core/browser/history_types.cc
+++ b/components/history/core/browser/history_types.cc
@@ -477,13 +477,21 @@
                  const base::flat_map<std::u16string, ClusterKeywordData>&
                      keyword_to_data_map,
                  bool should_show_on_prominent_ui_surfaces,
-                 absl::optional<std::u16string> label)
+                 absl::optional<std::u16string> label,
+                 absl::optional<std::u16string> raw_label,
+                 query_parser::Snippet::MatchPositions label_match_positions,
+                 std::vector<std::string> related_searches,
+                 float search_match_score)
     : cluster_id(cluster_id),
       visits(visits),
       keyword_to_data_map(keyword_to_data_map),
       should_show_on_prominent_ui_surfaces(
           should_show_on_prominent_ui_surfaces),
-      label(label) {}
+      label(label),
+      raw_label(raw_label),
+      label_match_positions(label_match_positions),
+      related_searches(related_searches),
+      search_match_score(search_match_score) {}
 Cluster::Cluster(const Cluster&) = default;
 Cluster::Cluster(Cluster&&) = default;
 Cluster& Cluster::operator=(const Cluster&) = default;
@@ -498,21 +506,4 @@
   return keywords;
 }
 
-ClusterRow::ClusterRow() = default;
-ClusterRow::ClusterRow(int64_t cluster_id) : cluster_id(cluster_id) {}
-ClusterRow::ClusterRow(const ClusterRow&) = default;
-ClusterRow& ClusterRow::operator=(const ClusterRow&) = default;
-ClusterRow::~ClusterRow() = default;
-
-ClusterIdsAndAnnotatedVisitsResult::ClusterIdsAndAnnotatedVisitsResult() =
-    default;
-ClusterIdsAndAnnotatedVisitsResult::ClusterIdsAndAnnotatedVisitsResult(
-    std::vector<int64_t> cluster_ids,
-    std::vector<AnnotatedVisit> annotated_visits)
-    : cluster_ids(cluster_ids), annotated_visits(annotated_visits) {}
-ClusterIdsAndAnnotatedVisitsResult::ClusterIdsAndAnnotatedVisitsResult(
-    const ClusterIdsAndAnnotatedVisitsResult&) = default;
-ClusterIdsAndAnnotatedVisitsResult::~ClusterIdsAndAnnotatedVisitsResult() =
-    default;
-
 }  // namespace history
diff --git a/components/history/core/browser/history_types.h b/components/history/core/browser/history_types.h
index 197e421c..ad088a7 100644
--- a/components/history/core/browser/history_types.h
+++ b/components/history/core/browser/history_types.h
@@ -970,9 +970,13 @@
   Cluster(int64_t cluster_id,
           const std::vector<ClusterVisit>& visits,
           const base::flat_map<std::u16string, ClusterKeywordData>&
-              keyword_to_data_map,
+              keyword_to_data_map = {},
           bool should_show_on_prominent_ui_surfaces = true,
-          absl::optional<std::u16string> label = absl::nullopt);
+          absl::optional<std::u16string> label = absl::nullopt,
+          absl::optional<std::u16string> raw_label = absl::nullopt,
+          query_parser::Snippet::MatchPositions label_match_positions = {},
+          std::vector<std::string> related_searches = {},
+          float search_match_score = 0);
   Cluster(const Cluster&);
   Cluster(Cluster&&);
   Cluster& operator=(const Cluster&);
@@ -1016,36 +1020,6 @@
   float search_match_score = 0.0;
 };
 
-// A minimal representation of `Cluster` used when retrieving them from
-// `VisitAnnotationsDatabase`.
-// TODO(manukh): Also use this representation when inserting them into the DB,
-//  since the additional information in a `Cluster` isn't necessary.
-struct ClusterRow {
-  ClusterRow();
-  explicit ClusterRow(int64_t cluster_id);
-  ClusterRow(const ClusterRow&);
-  ClusterRow& operator=(const ClusterRow&);
-  ~ClusterRow();
-
-  int64_t cluster_id;
-  std::vector<VisitID> visit_ids;
-};
-
-// Sets of `Cluster` IDs and `AnnotatedVisit`s. This is convenient in that,
-// unlike a vector of `Cluster`s, it contains a flat vector of unique
-// `AnnotatedVisit`s.
-struct ClusterIdsAndAnnotatedVisitsResult {
-  ClusterIdsAndAnnotatedVisitsResult();
-  ClusterIdsAndAnnotatedVisitsResult(
-      std::vector<int64_t> cluster_ids,
-      std::vector<AnnotatedVisit> annotated_visits);
-  ClusterIdsAndAnnotatedVisitsResult(const ClusterIdsAndAnnotatedVisitsResult&);
-  ~ClusterIdsAndAnnotatedVisitsResult();
-
-  std::vector<int64_t> cluster_ids;
-  std::vector<AnnotatedVisit> annotated_visits;
-};
-
 }  // namespace history
 
 #endif  // COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_TYPES_H_
diff --git a/components/history/core/browser/visit_annotations_database.cc b/components/history/core/browser/visit_annotations_database.cc
index b1d75e60c..1d4b70b1 100644
--- a/components/history/core/browser/visit_annotations_database.cc
+++ b/components/history/core/browser/visit_annotations_database.cc
@@ -28,6 +28,11 @@
 #define HISTORY_CONTEXT_ANNOTATIONS_ROW_FIELDS                    \
   " visit_id,context_annotation_flags,duration_since_last_visit," \
   "page_end_reason,total_foreground_duration "
+#define HISTORY_CLUSTER_ROW_FIELDS \
+  " cluster_id,should_show_on_prominent_ui_surfaces,label,raw_label "
+#define HISTORY_CLUSTER_VISIT_ROW_FIELDS                              \
+  " visit_id,score,engagement_score,url_for_deduping,normalized_url," \
+  "url_for_display "
 
 // Converts the serialized categories into a vector of (`id`, `weight`)
 // pairs.
@@ -446,6 +451,38 @@
   }
 }
 
+Cluster VisitAnnotationsDatabase::GetCluster(int64_t cluster_id) {
+  sql::Statement statement(GetDB().GetCachedStatement(
+      SQL_FROM_HERE,
+      "SELECT" HISTORY_CLUSTER_ROW_FIELDS "FROM clusters WHERE cluster_id=?"));
+  statement.BindInt64(0, cluster_id);
+
+  if (!statement.Step())
+    return {};
+
+  VisitID received_cluster_id = statement.ColumnInt64(0);
+  DCHECK_EQ(cluster_id, received_cluster_id);
+
+  // The `VisitID` in column 0 is intentionally ignored, as it's not part of
+  // `VisitContextAnnotations`.
+  Cluster cluster;
+  cluster.cluster_id = received_cluster_id;
+  cluster.should_show_on_prominent_ui_surfaces = statement.ColumnBool(1);
+  // The DB can't represent `nullopt` labels, so they're persisted as u"" but
+  // retrieved as `nullopt` for consistency with their original values and the
+  // consumer expectations.
+  // TODO(manukh): Look into returning u"" instead of `nullopt` in the
+  //  clustering code, and likewise expect u"" instead of `nullopt` in the
+  //  clustering UI code.
+  cluster.label = statement.ColumnString16(2);
+  if (cluster.label->empty())
+    cluster.label = absl::nullopt;
+  cluster.raw_label = statement.ColumnString16(3);
+  if (cluster.raw_label->empty())
+    cluster.raw_label = absl::nullopt;
+  return cluster;
+}
+
 std::vector<int64_t> VisitAnnotationsDatabase::GetRecentClusterIds(
     base::Time minimum_time) {
   // Using `EXISTS` instead of `IN` would result in a full scan of
@@ -506,6 +543,31 @@
   return visit_ids;
 }
 
+ClusterVisit VisitAnnotationsDatabase::GetClusterVisit(VisitID visit_id) {
+  sql::Statement statement(GetDB().GetCachedStatement(
+      SQL_FROM_HERE, "SELECT" HISTORY_CLUSTER_VISIT_ROW_FIELDS
+                     "FROM clusters_and_visits WHERE visit_id=?"));
+  statement.BindInt64(0, visit_id);
+
+  if (!statement.Step())
+    return {};
+
+  VisitID received_visit_id = statement.ColumnInt64(0);
+  DCHECK_EQ(visit_id, received_visit_id);
+
+  // The `VisitID` in column 0 is intentionally ignored, as it's not part of
+  // `VisitContextAnnotations`.
+  ClusterVisit cluster_visit;
+  cluster_visit.annotated_visit.visit_row.visit_id = received_visit_id;
+  cluster_visit.score = static_cast<float>(statement.ColumnDouble(1));
+  cluster_visit.engagement_score =
+      static_cast<float>(statement.ColumnDouble(2));
+  cluster_visit.url_for_deduping = GURL(statement.ColumnString(3));
+  cluster_visit.normalized_url = GURL(statement.ColumnString(4));
+  cluster_visit.url_for_display = statement.ColumnString16(5);
+  return cluster_visit;
+}
+
 bool VisitAnnotationsDatabase::IsVisitClustered(VisitID visit_id) {
   DCHECK_GT(visit_id, 0);
   sql::Statement statement(
diff --git a/components/history/core/browser/visit_annotations_database.h b/components/history/core/browser/visit_annotations_database.h
index 79b5a16..2448bec 100644
--- a/components/history/core/browser/visit_annotations_database.h
+++ b/components/history/core/browser/visit_annotations_database.h
@@ -76,6 +76,9 @@
   // entries for any `Cluster` that it failed to add.
   void AddClusters(const std::vector<Cluster>& clusters);
 
+  // Get a `Cluster`.
+  Cluster GetCluster(int64_t cluster_id);
+
   // Get recent `Cluster`s' IDs newer than `minimum_time`.
   std::vector<int64_t> GetRecentClusterIds(base::Time minimum_time);
 
@@ -88,6 +91,9 @@
   // Get `VisitID`s in a cluster.
   std::vector<VisitID> GetVisitIdsInCluster(int64_t cluster_id);
 
+  // Get a `ClusterVisit`.
+  ClusterVisit GetClusterVisit(VisitID visit_id);
+
   // Return whether `visit_id` belongs to any cluster.
   bool IsVisitClustered(VisitID visit_id);
 
diff --git a/components/history/core/browser/visit_annotations_database_unittest.cc b/components/history/core/browser/visit_annotations_database_unittest.cc
index 7645c41..71c530d 100644
--- a/components/history/core/browser/visit_annotations_database_unittest.cc
+++ b/components/history/core/browser/visit_annotations_database_unittest.cc
@@ -19,6 +19,7 @@
 namespace {
 
 using ::testing::ElementsAre;
+using ::testing::UnorderedElementsAre;
 
 }  // namespace
 
@@ -215,6 +216,90 @@
   EXPECT_EQ(final.alternative_title, "New alternative title");
 }
 
+TEST_F(VisitAnnotationsDatabaseTest, AddClusters_GetCluster_GetClusterVisit) {
+  // Test `AddClusters()`.
+
+  // Cluster without visits shouldn't be added.
+  std::vector<Cluster> clusters;
+  // Cluster ID shouldn't matter, it should be auto-incremented in the db.
+  clusters.push_back({10, {}});
+
+  // Clusters with visits should be added.
+  ClusterVisit visit_1;
+  // Visit ID should matter, they should not be auto-incremented in the db.
+  visit_1.annotated_visit.visit_row.visit_id = 20;
+  visit_1.score = .4;
+  visit_1.engagement_score = .3;
+  visit_1.url_for_deduping = GURL{"url_for_deduping"};
+  visit_1.normalized_url = GURL{"normalized_url"};
+  visit_1.url_for_display = u"url_for_display";
+  // `matches_search_query` and `hidden` shouldn't matter, they are not
+  // persisted.
+  visit_1.matches_search_query = true;
+  visit_1.hidden = true;
+
+  ClusterVisit visit_2;
+  visit_2.annotated_visit.visit_row.visit_id = 21;
+  visit_2.score = .2;
+  visit_2.engagement_score = .1;
+  visit_2.url_for_deduping = GURL{"url_for_deduping_2"};
+  visit_2.normalized_url = GURL{"normalized_url_2"};
+  visit_2.url_for_display = u"url_for_display_2";
+
+  // `search_match_score` shouldn't matter, it is not persisted.
+  clusters.push_back(
+      {11, {visit_1, visit_2}, {}, false, u"label", u"raw_label", {}, {}, .6});
+
+  // Empty or `nullopt` labels should both be retrieved as `nullopt`.
+  clusters.push_back(
+      {11, {visit_1, visit_2}, {}, false, u"", absl::nullopt, {}, {}, .6});
+  AddClusters(clusters);
+
+  // Test `GetCluster()`
+
+  // Should return the non-empty cluster2.
+  const auto cluster_1 = GetCluster(1);
+  EXPECT_EQ(cluster_1.cluster_id, 1);
+  EXPECT_EQ(cluster_1.should_show_on_prominent_ui_surfaces, false);
+  EXPECT_EQ(cluster_1.label, u"label");
+  EXPECT_EQ(cluster_1.raw_label, u"raw_label");
+  // Should not populate visits.
+  EXPECT_TRUE(cluster_1.visits.empty());
+  EXPECT_THAT(GetVisitIdsInCluster(1), UnorderedElementsAre(20, 21));
+  // Should not populate the non-persisted `search_match_score` field.
+  EXPECT_EQ(cluster_1.search_match_score, 0);
+
+  const auto cluster_2 = GetCluster(2);
+  EXPECT_EQ(cluster_2.cluster_id, 2);
+  EXPECT_EQ(cluster_2.label, absl::nullopt);
+  EXPECT_EQ(cluster_2.raw_label, absl::nullopt);
+
+  // There should be no other cluster.
+  EXPECT_EQ(GetCluster(3).cluster_id, 0);
+
+  // Test `GetClusterVisit()`.
+
+  const auto visit_1_retrieved = GetClusterVisit(20);
+  EXPECT_EQ(visit_1_retrieved.annotated_visit.visit_row.visit_id, 20);
+  EXPECT_EQ(visit_1_retrieved.score, .4f);
+  EXPECT_EQ(visit_1_retrieved.engagement_score, .3f);
+  EXPECT_EQ(visit_1_retrieved.url_for_deduping, GURL{"url_for_deduping"});
+  EXPECT_EQ(visit_1_retrieved.normalized_url, GURL{"normalized_url"});
+  EXPECT_EQ(visit_1_retrieved.url_for_display, u"url_for_display");
+  // Should not populate the non-persisted `matches_search_query` and `hidden`
+  // fields.
+  EXPECT_EQ(visit_1_retrieved.matches_search_query, false);
+  EXPECT_EQ(visit_1_retrieved.hidden, false);
+
+  const auto visit_2_retrieved = GetClusterVisit(21);
+  EXPECT_EQ(visit_2_retrieved.annotated_visit.visit_row.visit_id, 21);
+  EXPECT_EQ(visit_2_retrieved.score, .2f);
+  EXPECT_EQ(visit_2_retrieved.engagement_score, .1f);
+  EXPECT_EQ(visit_2_retrieved.url_for_deduping, GURL{"url_for_deduping_2"});
+  EXPECT_EQ(visit_2_retrieved.normalized_url, GURL{"normalized_url_2"});
+  EXPECT_EQ(visit_2_retrieved.url_for_display, u"url_for_display_2");
+}
+
 TEST_F(VisitAnnotationsDatabaseTest, GetRecentClusterIds) {
   AddCluster(
       {AddVisitWithTime(IntToTime(11)), AddVisitWithTime(IntToTime(12))});
@@ -246,7 +331,7 @@
             std::vector<int64_t>({3}));
 }
 
-TEST_F(VisitAnnotationsDatabaseTest, GetVisitsInCluster_IsVisitClustered) {
+TEST_F(VisitAnnotationsDatabaseTest, GetVisitIdsInCluster_IsVisitClustered) {
   // Add unclustered visits.
   AddVisitWithTime(IntToTime(0));
   AddVisitWithTime(IntToTime(2));
diff --git a/components/history/core/test/visit_annotations_test_utils.cc b/components/history/core/test/visit_annotations_test_utils.cc
index 96d0fe8..4d640f6 100644
--- a/components/history/core/test/visit_annotations_test_utils.cc
+++ b/components/history/core/test/visit_annotations_test_utils.cc
@@ -66,11 +66,4 @@
   return clusters;
 }
 
-ClusterRow CreateClusterRow(int64_t cluster_id,
-                            const std::vector<int64_t>& visit_ids) {
-  ClusterRow cluster{cluster_id};
-  cluster.visit_ids = visit_ids;
-  return cluster;
-}
-
 }  // namespace history
diff --git a/components/history/core/test/visit_annotations_test_utils.h b/components/history/core/test/visit_annotations_test_utils.h
index 0b28b7f..55c874d8 100644
--- a/components/history/core/test/visit_annotations_test_utils.h
+++ b/components/history/core/test/visit_annotations_test_utils.h
@@ -32,10 +32,6 @@
 std::vector<Cluster> CreateClusters(
     const std::vector<std::vector<int64_t>>& visit_ids_per_cluster);
 
-// Construct a `ClusterRow` with the specified ids.
-ClusterRow CreateClusterRow(int64_t cluster_id,
-                            const std::vector<int64_t>& visit_ids);
-
 }  // namespace history
 
 #endif  // COMPONENTS_HISTORY_CORE_TEST_VISIT_ANNOTATIONS_TEST_UTILS_H_
diff --git a/components/net_log/net_export_file_writer.cc b/components/net_log/net_export_file_writer.cc
index c21c4959..de7ee7c13 100644
--- a/components/net_log/net_export_file_writer.cc
+++ b/components/net_log/net_export_file_writer.cc
@@ -226,12 +226,11 @@
   ResetExporterThenSetStateNotLogging();
 }
 
-std::unique_ptr<base::DictionaryValue> NetExportFileWriter::GetState() const {
+base::Value::Dict NetExportFileWriter::GetState() const {
   DCHECK(thread_checker_.CalledOnValidThread());
 
-  auto dict = std::make_unique<base::DictionaryValue>();
-
-  dict->SetStringKey("file", base::UTF16ToUTF8(log_path_.LossyDisplayName()));
+  base::Value::Dict dict;
+  dict.Set("file", base::UTF16ToUTF8(log_path_.LossyDisplayName()));
 
   base::StringPiece state_string;
   switch (state_) {
@@ -254,11 +253,11 @@
       state_string = "STOPPING_LOG";
       break;
   }
-  dict->SetStringKey("state", state_string);
+  dict.Set("state", state_string);
 
-  dict->SetBoolKey("logExists", log_exists_);
-  dict->SetBoolKey("logCaptureModeKnown", log_capture_mode_known_);
-  dict->SetStringKey("captureMode", CaptureModeToString(log_capture_mode_));
+  dict.Set("logExists", log_exists_);
+  dict.Set("logCaptureModeKnown", log_capture_mode_known_);
+  dict.Set("captureMode", CaptureModeToString(log_capture_mode_));
 
   return dict;
 }
@@ -311,9 +310,9 @@
 
 void NetExportFileWriter::NotifyStateObservers() {
   DCHECK(thread_checker_.CalledOnValidThread());
-  std::unique_ptr<base::DictionaryValue> state = GetState();
+  base::Value::Dict state = GetState();
   for (StateObserver& observer : state_observer_list_) {
-    observer.OnNewState(*state);
+    observer.OnNewState(state);
   }
 }
 
diff --git a/components/net_log/net_export_file_writer.h b/components/net_log/net_export_file_writer.h
index 92c6158..0fd663aa 100644
--- a/components/net_log/net_export_file_writer.h
+++ b/components/net_log/net_export_file_writer.h
@@ -66,7 +66,7 @@
   // of NetExportFileWriter's state changes.
   class StateObserver {
    public:
-    virtual void OnNewState(const base::DictionaryValue& state) = 0;
+    virtual void OnNewState(const base::Value::Dict& state) = 0;
   };
 
   // Struct used to store the results of setting up the default log directory
@@ -127,7 +127,7 @@
   void StopNetLog(base::Value::Dict polled_data = base::Value::Dict());
 
   // Creates a DictionaryValue summary of the state of the NetExportFileWriter
-  std::unique_ptr<base::DictionaryValue> GetState() const;
+  base::Value::Dict GetState() const;
 
   // Gets the log filepath. |path_callback| will be used to notify the caller
   // when the filepath is retrieved. |path_callback| will be executed with an
diff --git a/components/net_log/net_export_file_writer_unittest.cc b/components/net_log/net_export_file_writer_unittest.cc
index 15817d36e..4913f107 100644
--- a/components/net_log/net_export_file_writer_unittest.cc
+++ b/components/net_log/net_export_file_writer_unittest.cc
@@ -107,14 +107,14 @@
 
 // Checks the "state" string of a NetExportFileWriter state.
 [[nodiscard]] ::testing::AssertionResult VerifyState(
-    std::unique_ptr<base::DictionaryValue> state,
+    base::Value::Dict state,
     const std::string& expected_state_string) {
-  std::string actual_state_string;
-  if (!state->GetString("state", &actual_state_string)) {
+  const std::string* actual_state_string = state.FindString("state");
+  if (!actual_state_string) {
     return ::testing::AssertionFailure()
            << "State is missing \"state\" string.";
   }
-  if (actual_state_string != expected_state_string) {
+  if (*actual_state_string != expected_state_string) {
     return ::testing::AssertionFailure()
            << "\"state\" string of state does not match expected." << std::endl
            << "    Actual: " << actual_state_string << std::endl
@@ -127,25 +127,23 @@
 // "captureMode" string; that field is only checked if
 // |expected_log_capture_mode_known| is true.
 [[nodiscard]] ::testing::AssertionResult VerifyState(
-    std::unique_ptr<base::DictionaryValue> state,
+    base::Value::Dict state,
     const std::string& expected_state_string,
     bool expected_log_exists,
     bool expected_log_capture_mode_known,
     const std::string& expected_log_capture_mode_string) {
-  base::DictionaryValue expected_state;
-  expected_state.SetStringKey("state", expected_state_string);
-  expected_state.SetBoolKey("logExists", expected_log_exists);
-  expected_state.SetBoolKey("logCaptureModeKnown",
-                            expected_log_capture_mode_known);
+  base::Value::Dict expected_state;
+  expected_state.Set("state", expected_state_string);
+  expected_state.Set("logExists", expected_log_exists);
+  expected_state.Set("logCaptureModeKnown", expected_log_capture_mode_known);
   if (expected_log_capture_mode_known) {
-    expected_state.SetStringKey("captureMode",
-                                expected_log_capture_mode_string);
+    expected_state.Set("captureMode", expected_log_capture_mode_string);
   } else {
-    state->RemoveKey("captureMode");
+    state.Remove("captureMode");
   }
 
   // Remove "file" field which is only added in debug mode.
-  state->RemoveKey("file");
+  state.Remove("file");
 
   std::string expected_state_json_string;
   JSONStringValueSerializer expected_state_serializer(
@@ -154,7 +152,7 @@
 
   std::string actual_state_json_string;
   JSONStringValueSerializer actual_state_serializer(&actual_state_json_string);
-  actual_state_serializer.Serialize(*state);
+  actual_state_serializer.Serialize(state);
 
   if (actual_state_json_string != expected_state_json_string) {
     return ::testing::AssertionFailure()
@@ -242,20 +240,19 @@
 class TestStateObserver : public NetExportFileWriter::StateObserver {
  public:
   // NetExportFileWriter::StateObserver implementation
-  void OnNewState(const base::DictionaryValue& state) override {
+  void OnNewState(const base::Value::Dict& state) override {
     test_closure_.closure().Run();
-    result_state_ = state.CreateDeepCopy();
+    result_state_ = state.Clone();
   }
 
-  std::unique_ptr<base::DictionaryValue> WaitForNewState() {
+  base::Value::Dict WaitForNewState() {
     test_closure_.WaitForResult();
-    DCHECK(result_state_);
     return std::move(result_state_);
   }
 
  private:
   net::TestClosure test_closure_;
-  std::unique_ptr<base::DictionaryValue> result_state_;
+  base::Value::Dict result_state_;
 };
 
 // A class that wraps around TestClosure. Provides the ability to wait on a
@@ -339,8 +336,7 @@
       bool expected_initialize_success,
       bool expected_log_exists) {
     file_writer_.Initialize();
-    std::unique_ptr<base::DictionaryValue> state =
-        test_state_observer_.WaitForNewState();
+    base::Value::Dict state = test_state_observer_.WaitForNewState();
     ::testing::AssertionResult result =
         VerifyState(std::move(state), kStateInitializingString);
     if (!result) {
@@ -376,8 +372,7 @@
     file_writer_.StartNetLog(custom_log_path, capture_mode, kMaxLogSizeBytes,
                              base::CommandLine::StringType(), kChannelString,
                              network_context);
-    std::unique_ptr<base::DictionaryValue> state =
-        test_state_observer_.WaitForNewState();
+    base::Value::Dict state = test_state_observer_.WaitForNewState();
     ::testing::AssertionResult result =
         VerifyState(std::move(state), kStateStartingLogString);
     if (!result) {
@@ -415,8 +410,7 @@
       base::Value::Dict polled_data,
       const std::string& expected_capture_mode_string) {
     file_writer_.StopNetLog(std::move(polled_data));
-    std::unique_ptr<base::DictionaryValue> state =
-        test_state_observer_.WaitForNewState();
+    base::Value::Dict state = test_state_observer_.WaitForNewState();
     ::testing::AssertionResult result =
         VerifyState(std::move(state), kStateStoppingLogString);
     if (!result) {
@@ -831,8 +825,7 @@
   // Now run the main message loop. Make sure StartNetLog() was ignored by
   // checking that the next two states are "initializing" followed by
   // "not-logging".
-  std::unique_ptr<base::DictionaryValue> state =
-      test_state_observer()->WaitForNewState();
+  base::Value::Dict state = test_state_observer()->WaitForNewState();
   ASSERT_TRUE(VerifyState(std::move(state), kStateInitializingString));
   state = test_state_observer()->WaitForNewState();
   ASSERT_TRUE(
@@ -863,8 +856,7 @@
   // ignored by checking that the next two states are "stopping-log" followed by
   // "not-logging". Also make sure the capture mode matches that of the first
   // StartNetLog() call (called by StartThenVerifyState()).
-  std::unique_ptr<base::DictionaryValue> state =
-      test_state_observer()->WaitForNewState();
+  base::Value::Dict state = test_state_observer()->WaitForNewState();
   ASSERT_TRUE(VerifyState(std::move(state), kStateStoppingLogString));
   state = test_state_observer()->WaitForNewState();
   ASSERT_TRUE(VerifyState(std::move(state), kStateNotLoggingString, true, true,
@@ -882,8 +874,7 @@
   // Break the pipe, as if network service crashed.
   fake_network_context.Disconnect();
 
-  std::unique_ptr<base::DictionaryValue> state =
-      test_state_observer()->WaitForNewState();
+  base::Value::Dict state = test_state_observer()->WaitForNewState();
   ASSERT_TRUE(VerifyState(std::move(state), kStateNotLoggingString));
 }
 
diff --git a/components/payments/content/android/java/src/org/chromium/components/payments/BrowserPaymentRequest.java b/components/payments/content/android/java/src/org/chromium/components/payments/BrowserPaymentRequest.java
index d9a06a1..bbf9979 100644
--- a/components/payments/content/android/java/src/org/chromium/components/payments/BrowserPaymentRequest.java
+++ b/components/payments/content/android/java/src/org/chromium/components/payments/BrowserPaymentRequest.java
@@ -88,13 +88,6 @@
     void onSpecValidated(PaymentRequestSpec spec);
 
     /**
-     * Adds the PaymentAppFactory(s) specified by the implementers to the given PaymentAppService.
-     * @param service The PaymentAppService to be added with the factories.
-     * @param delegate The delegate of payment app factory.
-     */
-    void addPaymentAppFactories(PaymentAppService service, PaymentAppFactoryDelegate delegate);
-
-    /**
      * @return Whether at least one payment app (including basic-card payment app) is available
      *         (excluding the pending apps).
      */
diff --git a/components/payments/content/android/java/src/org/chromium/components/payments/PaymentRequestService.java b/components/payments/content/android/java/src/org/chromium/components/payments/PaymentRequestService.java
index 93df09ae..e8fc65c 100644
--- a/components/payments/content/android/java/src/org/chromium/components/payments/PaymentRequestService.java
+++ b/components/payments/content/android/java/src/org/chromium/components/payments/PaymentRequestService.java
@@ -583,7 +583,6 @@
 
     private void startPaymentAppService() {
         PaymentAppService service = mDelegate.getPaymentAppService();
-        mBrowserPaymentRequest.addPaymentAppFactories(service, /*delegate=*/this);
 
         String paymentAppServiceBridgeId = PaymentAppServiceBridge.class.getName();
         if (!service.containsFactory(paymentAppServiceBridgeId)) {
diff --git a/components/policy/core/browser/policy_pref_mapping_test.cc b/components/policy/core/browser/policy_pref_mapping_test.cc
index 14649f1d..0ac3e7e 100644
--- a/components/policy/core/browser/policy_pref_mapping_test.cc
+++ b/components/policy/core/browser/policy_pref_mapping_test.cc
@@ -206,9 +206,13 @@
     if (policies_settings)
       policies_settings_ = policies_settings->Clone();
     if (prefs) {
-      for (auto pref_setting : prefs->DictItems())
-        prefs_.push_back(std::make_unique<PrefTestCase>(pref_setting.first,
-                                                        pref_setting.second));
+      for (auto [name, setting] : prefs->DictItems()) {
+        if (!setting.is_dict()) {
+          ADD_FAILURE() << "prefs item " << name << " is not dict";
+          continue;
+        }
+        prefs_.push_back(std::make_unique<PrefTestCase>(name, setting));
+      }
     }
     if (prefs_.empty()) {
       ADD_FAILURE() << "missing |prefs|";
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json
index 52a6dcb..f435b489 100644
--- a/components/policy/resources/policy_templates.json
+++ b/components/policy/resources/policy_templates.json
@@ -11206,6 +11206,16 @@
         'dynamic_refresh': True,
         'per_profile': False,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Enable trust in certificates issued by Symantec Corporation Legacy PKI',
+        },
+        {
+          'value': False,
+          'caption': 'Disable trust in certificates issued by Symantec Corporation Legacy PKI',
+        },
+      ],
       'deprecated': True,
       'example_value': False,
       'id': 413,
@@ -11229,6 +11239,21 @@
         'dynamic_refresh': False,
         'per_profile': False,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Use the built-in certificate verifier',
+        },
+        {
+          'value': False,
+          'caption': 'Use the legacy platform certificate verifier',
+        },
+        {
+          'value': None,
+          'caption': 'Use any certificate verifier',
+        },
+      ],
+      'default': None,
       'example_value': False,
       'id': 575,
       'caption': '''Determines whether the built-in certificate verifier will be used to verify server certificates''',
@@ -11287,6 +11312,16 @@
         'dynamic_refresh': False,
         'per_profile': True,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Clear profile data on disk when user session ends',
+        },
+        {
+          'value': False,
+          'caption': 'Persist profile data on disk when user session ends',
+        },
+      ],
       'example_value': True,
       'id': 245,
       'caption': '''Ephemeral profile''',
@@ -11495,6 +11530,16 @@
       'features': {
         'dynamic_refresh': True,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Enable device version info reporting',
+        },
+        {
+          'value': False,
+          'caption': 'Disable device version info reporting',
+        },
+      ],
       'example_value': False,
       'id': 119,
       'caption': '''Report OS and firmware version''',
@@ -11515,6 +11560,16 @@
       'features': {
         'dynamic_refresh': True,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Enable device activity time reporting',
+        },
+        {
+          'value': False,
+          'caption': 'Disable device activity time reporting',
+        },
+      ],
       'example_value': False,
       'id': 120,
       'caption': '''Report device activity times''',
@@ -11590,6 +11645,16 @@
       'features': {
         'dynamic_refresh': True,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Enable device boot mode reporting',
+        },
+        {
+          'value': False,
+          'caption': 'Disable device boot mode reporting',
+        },
+      ],
       'example_value': False,
       'id': 121,
       'caption': '''Report device boot mode''',
@@ -11610,13 +11675,25 @@
       'features': {
         'dynamic_refresh': True,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Enable device location reporting',
+        },
+        {
+          'value': False,
+          'caption': 'Disable device location reporting',
+        },
+      ],
       'example_value': False,
       'id': 143,
       'caption': '''Report device location''',
       'tags': ['admin-sharing'],
       'desc': '''Report the geographic location of the device.
 
-      If the policy is not set, or set to false, the location will not be reported.''',
+      Setting the policy to Enabled has enrolled devices periodically report their location.
+
+      Setting the policy to Disabled or leaving it unset means enrolled devices don't report their location.''',
       'arc_support': 'This policy has no effect on the logging done by Android.',
     },
     {
@@ -11663,13 +11740,25 @@
       'features': {
         'dynamic_refresh': True,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Enable device network interface reporting',
+        },
+        {
+          'value': False,
+          'caption': 'Disable device network interface reporting',
+        },
+      ],
       'example_value': False,
       'id': 224,
       'caption': '''Report device network interfaces''',
       'tags': ['admin-sharing'],
       'desc': '''This policy is deprecated in M96. Please use <ph name="REPORT_DEVICE_NETWORK_CONFIGURATION">ReportDeviceNetworkConfiguration</ph> and <ph name="REPORT_DEVICE_NETWORK_STATUS">ReportDeviceNetworkStatus</ph> instead.
 
-      Setting the policy to Enabled or leaving it unset has enrolled devices report the list of network interfaces with their types and hardware addresses. Setting the policy to Disabled means enrolled devices don't report the network interface.''',
+      Setting the policy to Enabled or leaving it unset has enrolled devices report the list of network interfaces with their types and hardware addresses.
+
+      Setting the policy to Disabled means enrolled devices don't report the network interface.''',
       'arc_support': 'This policy has no effect on the logging done by Android.',
     },
     {
@@ -11761,6 +11850,16 @@
       'features': {
         'dynamic_refresh': True,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Enable device users reporting',
+        },
+        {
+          'value': False,
+          'caption': 'Disable device users reporting',
+        },
+      ],
       'example_value': False,
       'id': 248,
       'caption': '''Report device users''',
@@ -11782,13 +11881,25 @@
       'features': {
         'dynamic_refresh': True,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Enable device hardware status reporting',
+        },
+        {
+          'value': False,
+          'caption': 'Disable device hardware status reporting',
+        },
+      ],
       'example_value': False,
       'id': 290,
       'caption': '''Report hardware status''',
       'tags': ['admin-sharing'],
       'desc': '''This policy is deprecated as of M96. Please use <ph name="REPORT_DEVICE_CPU_INFO">ReportDeviceCpuInfo</ph>, <ph name="REPORT_DEVICE_MEMORY_INFO">ReportDeviceMemoryInfo</ph>, <ph name="REPORT_DEVICE_STORAGE_STATUS">ReportDeviceStorageStatus</ph>, <ph name="REPORT_DEVICE_SECURITY_STATUS">ReportDeviceSecurityStatus</ph>, and <ph name="REPORT_DEVICE_AUDIO_STATUS">ReportDeviceAudioStatus</ph> instead.
 
-      Setting the policy to Enabled or leaving it unset has enrolled devices report hardware statistics such as CPU/RAM usage. Setting the policy to Disabled means enrolled devices don't report the hardware statistics.''',
+      Setting the policy to Enabled or leaving it unset has enrolled devices report hardware statistics such as CPU/RAM usage.
+
+      Setting the policy to Disabled means enrolled devices don't report the hardware statistics.''',
       'arc_support': 'This policy has no effect on the logging done by Android.',
     },
     {
@@ -11802,6 +11913,16 @@
       'features': {
         'dynamic_refresh': True,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Enable device kiosk session reporting',
+        },
+        {
+          'value': False,
+          'caption': 'Disable device kiosk session reporting',
+        },
+      ],
       'example_value': False,
       'id': 291,
       'caption': '''Report information about active kiosk sessions''',
@@ -11854,6 +11975,16 @@
       'features': {
         'dynamic_refresh': True,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Enable device graphics status reporting',
+        },
+        {
+          'value': False,
+          'caption': 'Disable device graphics status reporting',
+        },
+      ],
       'example_value': False,
       'id': 660,
       'caption': '''Report display and graphics statuses''',
@@ -11877,6 +12008,16 @@
       'features': {
         'dynamic_refresh': True,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Enable device crash report information reporting',
+        },
+        {
+          'value': False,
+          'caption': 'Disable device crash report information reporting',
+        },
+      ],
       'example_value': False,
       'id': 665,
       'caption': '''Report information about crash reports.''',
@@ -11900,6 +12041,16 @@
       'features': {
         'dynamic_refresh': True,
       },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Enable device OS update status reporting',
+        },
+        {
+          'value': False,
+          'caption': 'Disable device OS update status reporting',
+        },
+      ],
       'example_value': False,
       'id': 602,
       'caption': '''Report OS update status''',
@@ -22294,7 +22445,7 @@
       'owners': ['swapnilgupta@google.com', 'file://components/policy/resources/OWNERS'],
       'type': 'main',
       'schema': { 'type': 'boolean' },
-      'supported_on': ['chrome_os:85-'],
+      'supported_on': ['chrome_os:85-106'],
       'supported_chrome_os_management': ['google_cloud'],
       'features': {
         'dynamic_refresh': True,
@@ -25330,7 +25481,7 @@
 
           If this policy is set, the "Kerberos username" field shows the prefilled domain on the right. If the user enters their username it is going to be concatenated with the prefilled domain. If the user's input contains "@", the prefilled domain is not shown and does not affect the input.
 
-          If this policy is unset, no adittional information is shown and creating the ticket works as usual.''',
+          If this policy is unset, no additional information is shown and creating the ticket works as usual.''',
     },
     {
       'name': 'CommandLineFlagSecurityWarningsEnabled',
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index ae3cc6cf..94125b02 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -100,6 +100,7 @@
 <translation id="1095209545735032039">Bloquea la API de Serial en estos sitios</translation>
 <translation id="1096105751829466145">Proveedor de búsqueda predeterminado</translation>
 <translation id="1099282607296956954">Permite el aislamiento de todos los sitios</translation>
+<translation id="1100840127293327071">No marcar la opción para conservar los datos de navegación existentes de forma predeterminada</translation>
 <translation id="1105572260329131950">Usar los íconos predeterminados para conexiones seguras</translation>
 <translation id="1107538157073168076">Inhabilitar la extensión de estadísticas</translation>
 <translation id="1110426799149444997">Inhabilitar la búsqueda parcial de <ph name="GOOGLE_LENS_PRODUCT_NAME" /></translation>
@@ -748,6 +749,14 @@
 <translation id="1781356041596378058">Esta política también controla el acceso a las Opciones para programador de Android. Si habilitas esta política, los usuarios no podrán acceder a las Opciones para programador. Si estableces esta política como falsa o no la estableces, los usuarios podrán acceder a las Opciones para programador al presionar siete veces el número de compilación en la app de Configuración de Android.</translation>
 <translation id="1787790976045065845">Esta política solo tiene efecto cuando se establece la política <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> como <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> o <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />, y un usuario que se autentica mediante una tarjeta inteligente quita esa tarjeta. Luego, esta política especifica el tiempo (expresado en segundos) durante el cual se muestra una notificación con la que se informa al usuario sobre la acción inminente. Esta notificación bloquea la pantalla. La acción ocurrirá solo cuando caduque esta notificación. El usuario puede impedir que ocurra la acción reinsertando la tarjeta inteligente antes de que caduque la notificación. Si estableces esta política en cero, no se mostrará ninguna notificación y la acción ocurrirá de forma inmediata.</translation>
 <translation id="1793346220873697538">Desactiva la impresión con PIN de forma predeterminada</translation>
+<translation id="1794457906032475749">Si habilitas esta política, la opción para conservar los datos de navegación existentes cuando se cree un perfil empresarial estará marcada de forma predeterminada.
+
+Si no la estableces o la inhabilitas, la opción para conservar los datos de navegación existentes cuando se cree un perfil empresarial no estará marcada de forma predeterminada.
+
+Más allá del valor, el usuario podrá decidir si desea conservar o no los datos de navegación existentes cuando cree un perfil empresarial.
+
+Esta política no tiene efecto si la opción para conservar los datos de navegación existentes no está disponible. Esto sucede si la separación del perfil empresarial se aplica de manera forzosa o si los datos provienen de un perfil ya administrado.
+</translation>
 <translation id="179694024208061102">Si habilitas esta política, <ph name="PRODUCT_NAME" /> intentará ejecutar algunas URL en un navegador alternativo, como <ph name="IE_PRODUCT_NAME" />. Esta función está configurada conforme a las políticas del grupo <ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />.
 
       Si inhabilitas la política o no la estableces, <ph name="PRODUCT_NAME" /> no intentará ejecutar las URL designadas en un navegador alternativo.</translation>
@@ -1641,6 +1650,7 @@
 
       En <ph name="MS_WIN_NAME" />, esta funcionalidad solo está disponible en instancias vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o inscritas en la Administración en la nube para el navegador Chrome. En <ph name="MAC_OS_NAME" />, esta funcionalidad solo está disponible en instancias administradas mediante MDM o vinculadas a un dominio a través de MCX.</translation>
 <translation id="2623014935069176671">Esperar actividad inicial del usuario</translation>
+<translation id="2625026032335150744">Marcar la opción para conservar los datos de navegación existentes de forma predeterminada</translation>
 <translation id="2625398797484317969">Configuración de los controles de Respuestas rápidas.</translation>
 <translation id="262740370354162807">Habilitar el envío de documentos a <ph name="CLOUD_PRINT_NAME" /></translation>
 <translation id="2633084400146331575">Habilitar los comentarios de voz</translation>
@@ -2061,6 +2071,7 @@
       Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> no es un valor aceptado para esta política.</translation>
 <translation id="305106159605171619">Se inhabilita la reducción de usuario-agente, y las pruebas de campo o de origen no la habilitan</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
+<translation id="3063302084011279315">Inhabilitar Screencast</translation>
 <translation id="3064530882228745118">Usar la búsqueda de CNAME durante la autenticación de Kerberos</translation>
 <translation id="3066446511111537292">Permite que los usuarios afiliados de este dispositivo apliquen la transferencia de ADB</translation>
 <translation id="3070119171976169951">Impedir que las imágenes de terceros muestren una solicitud de autenticación</translation>
@@ -2279,6 +2290,7 @@
 <translation id="3255762580838224124">Si estableces la política, las pantallas rotarán a la orientación especificada cada vez que se reinicie el dispositivo y la primera vez que se conecten después de cambiar el valor de la política. Después de acceder, los usuarios podrán cambiar la rotación de las pantallas en la página de configuración, pero volverá a cambiar la próxima vez que se reinicie el dispositivo. Esta política se aplica a la pantalla principal y a la secundaria.
 
       Si no la estableces, el valor predeterminado será 0 grados y los usuarios podrán cambiarlo. Si deciden hacerlo, no se volverá a aplicar el valor predeterminado cuando se reinicie el dispositivo.</translation>
+<translation id="3257786863492892609">Controla las políticas para Screencast.</translation>
 <translation id="3258380413685430793">Ejecutar todo el contenido de <ph name="FLASH_PLUGIN_NAME" /></translation>
 <translation id="325883417142483505">Si estableces la política, se especificará la lista de URL de acceso empresarial (solo protocolos HTTP y HTTPS). El servicio de protección de contraseñas capturará los hash con sal de las contraseñas de estas URL y los usará para detectar la reutilización de contraseñas. Para que <ph name="PRODUCT_NAME" /> capture correctamente los hash con sal de las contraseñas, asegúrate de que tus páginas de acceso cumplan con los lineamientos ( https://www.chromium.org/developers/design-documents/create-amazing-password-forms ).
 
@@ -3255,6 +3267,7 @@
 <translation id="441686537793821907">Bloquear la instalación de extensiones externas</translation>
 <translation id="4423597592074154136">Especificar manualmente la configuración del proxy</translation>
 <translation id="4424004842303301809">Inhabilitar la generación de informes para los eventos de prevención de filtración de datos</translation>
+<translation id="4426601693403743089">Inhabilitar la prueba interna de Screencast para los usuarios de Family Link</translation>
 <translation id="4427173305799125784">El visor de PDF no puede agregar anotaciones en archivos PDF</translation>
 <translation id="4432762137771104529">Habilitar el informe extendido de Navegación segura</translation>
 <translation id="443454694385851356">Heredados (inseguro)</translation>
@@ -4869,6 +4882,7 @@
       Cada elemento de la lista de la política es un string que contiene un ID de extensión y, de forma opcional, una URL de actualización separada por un punto y coma (<ph name="SEMICOLON" />). El ID de extensión es la string de 32 letras que se encuentra, p. ej., en <ph name="CHROME_EXTENSIONS_LINK" />, en el modo de desarrollador. Si se especifica, la URL de actualización debe direccionarte a un documento XML del manifiesto de actualización, como se describe en <ph name="LINK_TO_EXTENSION_DOC1" />. De forma predeterminada, se usa la URL de actualización de Chrome Web Store (actualmente es "https://clients2.google.com/service/update2/crx"). Ten en cuenta que la URL de actualización que se establece en esta política solo se usa para la instalación inicial; las actualizaciones posteriores de la extensión utilizan la URL de actualización que se indica en el manifiesto de la extensión.
 
       Por ejemplo, <ph name="LOGIN_SCREEN_EXTENSION_POLICY_EXAMPLE" /> instala la app de <ph name="SMART_CARD_CONNECTOR_APP_NAME" /> desde la dirección URL de actualización estándar de Chrome Web Store. Para obtener más información sobre las extensiones de host, consulta: <ph name="LINK_TO_EXTENSION_DOC2" />.</translation>
+<translation id="6274202259872570803">Screencast</translation>
 <translation id="6275497712828649588">Oculta las advertencias de seguridad cuando se utilizan marcas de la línea de comandos potencialmente peligrosas</translation>
 <translation id="6275833043726517413">Utiliza la implementación heredada de <ph name="CORS" /> en lugar de la nueva implementación de <ph name="CORS" />.
 
@@ -4902,7 +4916,15 @@
 
       <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> solo tiene efecto si estableces <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> como falsa.</translation>
 <translation id="6305373713165475629">Si estableces la política, se anulará el modo predeterminado de impresión a color. Si el modo no está disponible, se ignorará esta política.</translation>
+<translation id="6308109234708949641">Esta política habilita la función Screencast para los usuarios de Family Link y le permite crear y transcribir grabaciones de pantalla para luego subirlas a Drive.
+      Esta política no afecta a otros tipos de usuarios.
+      Esta política no afecta la política <ph name="PROJECTOR_ENABLED_POLICY_NAME" /> para los usuarios empresariales.
+
+      Si habilitas la política, se habilitará la prueba interna de Screencast para los usuarios de Family Link.
+      Si inhabilitas la política, se inhabilitará la prueba interna de Screencast para los usuarios de Family Link.
+      Si no estableces la política, se inhabilitará la prueba interna de Screencast para los usuarios de Family Link de forma predeterminada.</translation>
 <translation id="6310223829319187614">Habilitar la opción de autocompletar el nombre de dominio durante el accceso del usuario</translation>
+<translation id="6310756730808079944">Habilitar Screencast</translation>
 <translation id="631081324835911099">Fuerza el cierre de sesión del usuario cuando el token de autenticación de la cuenta principal deja de ser válido.
         Esta política puede proteger al usuario del acceso a contenido restringido en propiedades web de Google.
         Si se establece esta política como verdadera, se cerrará la sesión del usuario cuando el token de autenticación deje de ser válido y fallen los intentos para restablecerlo.
@@ -5290,6 +5312,12 @@
           Si está configurada en falso o si no está configurada, la creación y el acceso de usuarios supervisados estarán inhabilitados. Todos los usuarios supervisados existentes estarán ocultos.
 
           NOTA: El comportamiento predeterminado en dispositivos para consumidores y empresas difiere: en los dispositivos para consumidores, los usuarios supervisados están habilitados de forma predeterminada; en cambio, en los dispositivos para empresas, los usuarios supervisados están inhabilitados de forma predeterminada.</translation>
+<translation id="6648746349186337075">Esta política le da a Screencast permiso para crear y transcribir grabaciones de pantalla y subirlas a Drive para usuarios empresariales.
+      Esta política no afecta a los usuarios de Family Link.
+      Esta política no afecta la política <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" /> para los usuarios de Family Link.
+
+      Si no estableces ni habilitas la política, se habilitará Screencast.
+      Si inhabilitas la política, se inhabilitará Screencast.</translation>
 <translation id="665023848306499203">Permitir que los dispositivos seleccionen una versión específica para realizar la actualización</translation>
 <translation id="6652197835259177259">Configuración de los usuarios administrados localmente</translation>
 <translation id="6653897159826215341">Si habilitas la política, <ph name="PRODUCT_NAME" /> abrirá el diálogo de impresión del sistema en lugar de la vista previa de impresión integrada cuando los usuarios soliciten realizar una impresión.
@@ -6190,6 +6218,7 @@
       Si habilitas la política o no la estableces, se habilitará la conversión de unidades de Respuestas rápidas.
       Si inhabilitas la política, se inhabilitará la conversión de unidades de Respuestas rápidas.</translation>
 <translation id="7587345076013230465">Notificar al usuario que debe seleccionar el certificado de cliente cada vez que la política de selección automática coincida con varios certificados en la pantalla de acceso</translation>
+<translation id="7587921466180902617">Habilitar la prueba interna de Screencast para los usuarios de Family Link</translation>
 <translation id="759957074386651883">Configuración de Navegación segura</translation>
 <translation id="7604169113182304895">Las apps de Android pueden respetar esta lista de forma voluntaria, pero no puedes forzarlas a que lo hagan.</translation>
 <translation id="7612157962821894603">Marcas que se deben aplicar al iniciar <ph name="PRODUCT_NAME" /> en todo el sistema</translation>
@@ -6437,6 +6466,7 @@
 
       Recomendación: Para bloquear la pantalla cuando está inactiva, activa el bloqueo de pantalla en el modo de suspensión y que se suspenda <ph name="PRODUCT_OS_NAME" /> después del tiempo de espera de inactividad. Esta política solo debe usarse si el bloqueo de pantalla ocurre mucho antes que la suspensión o si no se desea la suspensión por inactividad.</translation>
 <translation id="7895553628261067384">Acceso remoto</translation>
+<translation id="7900469325540540107">Conservar los datos de navegación de forma predeterminada cuando se cree un perfil empresarial</translation>
 <translation id="7902040092815978832">Muestra el teclado numérico para la contraseña</translation>
 <translation id="7904177352786629708">Si habilitas la política, se omitirá la búsqueda de CNAME. Se usará el nombre del servidor tal como se haya introducido al generar el SPN de Kerberos.
 
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index 4c489cb8..3b0fd07 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -100,6 +100,7 @@
 <translation id="1095209545735032039">Bloquear la API Serial en estos sitios web</translation>
 <translation id="1096105751829466145">Proveedor de búsquedas predeterminadas</translation>
 <translation id="1099282607296956954">Habilitar el aislamiento de todos los sitios web</translation>
+<translation id="1100840127293327071">No marcar la opción de conservar los datos de navegación previos de forma predeterminada</translation>
 <translation id="1105572260329131950">Usar iconos predeterminados en el caso de las conexiones seguras</translation>
 <translation id="1107538157073168076">Inhabilitar extensión de estadísticas</translation>
 <translation id="1110426799149444997">Inhabilitar la búsqueda por sección de <ph name="GOOGLE_LENS_PRODUCT_NAME" />.</translation>
@@ -747,6 +748,14 @@
 <translation id="1781356041596378058">Esta política también controla el acceso a las Opciones para Desarrolladores de Android. Si se asigna el valor true a esta política, los usuarios no podrán acceder a las Opciones para Desarrolladores. Si se le asigna el valor false o no se configura, los usuarios podrán tocar siete veces el número de compilación en la aplicación Ajustes de Android para acceder a esas opciones.</translation>
 <translation id="1787790976045065845">Esta política solo tiene validez si se le asigna el valor <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> o <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> a la política <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> y si un usuario que se autentica mediante una tarjeta inteligente quita dicha tarjeta. Esta política especifica durante cuántos segundos se muestra una notificación que informa al usuario de la acción que tendrá lugar a continuación. La notificación bloquea la pantalla. La acción solo se realizará una vez que caduque la notificación. El usuario puede impedir que se produzca la acción volviendo a insertar la tarjeta inteligente antes de que caduque la notificación. Si se le asigna el valor cero a esta política, no se mostrará ninguna notificación y la acción ocurrirá inmediatamente.</translation>
 <translation id="1793346220873697538">Inhabilitar la impresión con PIN de forma predeterminada</translation>
+<translation id="1794457906032475749">Si se habilita esta política, la opción de conservar los datos de navegación previos al crear un perfil de empresa estará marcada de forma predeterminada.
+
+Si esta política se inhabilita o no se establece, la opción de conservar los datos de navegación previos al crear un perfil de empresa no estará marcada de forma predeterminada.
+
+Independientemente del valor que se asigne, el usuario podrá decidir si quiere conservar o no los datos de navegación previos al crear un perfil de empresa.
+
+Esta política no tendrá efecto si la opción de conservar los datos de navegación no está disponible. Esto ocurre si la separación de perfiles de empresa es estrictamente obligatoria o si los datos proceden de un perfil que ya está gestionado.
+</translation>
 <translation id="179694024208061102">Si se asigna el valor "Habilitada" a esta política, <ph name="PRODUCT_NAME" /> intentará abrir algunas URL en un navegador alternativo, como <ph name="IE_PRODUCT_NAME" />. Esta función se configura a través de las políticas del grupo de <ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />.
 
       Si se le asigna el valor "Inhabilitada" o no se le asigna ninguno, <ph name="PRODUCT_NAME" /> no intentará abrir las URL designadas en un navegador alternativo.</translation>
@@ -1644,6 +1653,7 @@
 
       En <ph name="MS_WIN_NAME" />, esta función solo está disponible en instancias que estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o que se hayan registrado en Gestión en la nube del navegador Chrome. En <ph name="MAC_OS_NAME" />, esta función solo está disponible en instancias que se gestionen mediante MDM o que estén vinculadas a un dominio a través de MCX.</translation>
 <translation id="2623014935069176671">Esperar actividad inicial del usuario</translation>
+<translation id="2625026032335150744">Marcar la opción de conservar los datos de navegación previos de forma predeterminada</translation>
 <translation id="2625398797484317969">Controla los ajustes de Respuestas rápidas.</translation>
 <translation id="262740370354162807">Habilitar el envío de documentos a <ph name="CLOUD_PRINT_NAME" /></translation>
 <translation id="2633084400146331575">Habilitar mensajes de voz</translation>
@@ -2067,6 +2077,7 @@
       Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> no es un valor aceptado para esta política.</translation>
 <translation id="305106159605171619">La reducción de user-agent está inhabilitada. No se habilita mediante pruebas de campo ni de origen.</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
+<translation id="3063302084011279315">Inhabilitar Grabación de pantalla</translation>
 <translation id="3064530882228745118">Usar la búsqueda de CNAME durante la autenticación Kerberos</translation>
 <translation id="3066446511111537292">Permite que los usuarios afiliados de este dispositivo usen la instalación de fuente desconocida adb</translation>
 <translation id="3070119171976169951">Evitar que las imágenes de terceros muestren una solicitud de autenticación</translation>
@@ -2284,6 +2295,7 @@
 <translation id="3255762580838224124">Si se asigna un valor a esta política, cada pantalla rotará después de cada reinicio según la orientación especificada y también rotará la primera vez que se conecte después de que cambies el valor de la política. Los usuarios podrán cambiar la rotación de la pantalla a través de la página de configuración después de iniciar sesión, pero, en el siguiente reinicio, se volverá a establecer el valor definido en la política. Esta política se aplica a las pantallas principales y secundarias.
 
       Si no se le asigna ningún valor, el valor predeterminado será 0 grados y los usuarios podrán cambiarlo. En este caso, no se volverá a aplicar el valor predeterminado tras reiniciar.</translation>
+<translation id="3257786863492892609">Controla las políticas de Grabación de pantalla.</translation>
 <translation id="3258380413685430793">Ejecutar todo el contenido de <ph name="FLASH_PLUGIN_NAME" /></translation>
 <translation id="325883417142483505">Si se define esta política, se configura la lista de las URL de acceso empresarial (únicamente con protocolos HTTP y HTTPS). El servicio de protección de contraseñas capturará los hashes con salt de las contraseñas en estas URL y las usará para detectar si la contraseña se reutiliza. Para que <ph name="PRODUCT_NAME" /> capture correctamente los hashes con salt de las contraseñas, tus páginas de inicio de sesión deben seguir las directrices incluidas en https://www.chromium.org/developers/design-documents/create-amazing-password-forms.
 
@@ -3265,6 +3277,7 @@
 <translation id="441686537793821907">Bloquear la instalación de extensiones externas</translation>
 <translation id="4423597592074154136">Especificar configuración de proxy manualmente</translation>
 <translation id="4424004842303301809">Inhabilitar informes de eventos de prevención de filtración de datos</translation>
+<translation id="4426601693403743089">Inhabilitar dogfood de Grabación de pantalla para usuarios de Family Link</translation>
 <translation id="4427173305799125784">El visor de PDF no puede anotar PDFs</translation>
 <translation id="4432762137771104529">Habilita los informes ampliados de Navegación segura</translation>
 <translation id="443454694385851356">Antiguos (no seguro)</translation>
@@ -4877,6 +4890,7 @@
       Cada elemento de la lista de la política es una cadena que contiene un ID de extensión y, opcionalmente, una URL de "actualización" separados por punto y coma (<ph name="SEMICOLON" />). El ID de extensión es la cadena de 32 letras que aparece, por ejemplo, en <ph name="CHROME_EXTENSIONS_LINK" /> cuando está habilitado el modo desarrollador. La URL de "actualización", si se especifica, debe dirigir a un documento XML de un archivo de manifiesto de actualización, como se describe en <ph name="LINK_TO_EXTENSION_DOC1" />. De forma predeterminada, se utiliza la URL de "actualización" de Chrome Web Store, que actualmente es "https://clients2.google.com/service/update2/crx". Ten en cuenta que la URL de "actualización" definida en esta política solo se usa en la instalación inicial. Las actualizaciones posteriores de la extensión usarán la URL de "actualización" indicada en el archivo de manifiesto de la extensión.
 
       Por ejemplo, <ph name="LOGIN_SCREEN_EXTENSION_POLICY_EXAMPLE" /> instala la aplicación <ph name="SMART_CARD_CONNECTOR_APP_NAME" /> desde la URL de "actualización" estándar de Chrome Web Store. Para obtener más información sobre cómo alojar extensiones, consulta <ph name="LINK_TO_EXTENSION_DOC2" />.</translation>
+<translation id="6274202259872570803">Grabación de pantalla</translation>
 <translation id="6275497712828649588">Ocultar las advertencias de seguridad si se utilizan instrucciones de línea de comandos potencialmente peligrosas</translation>
 <translation id="6275833043726517413">Permite usar la implementación antigua de <ph name="CORS" /> en vez de la nueva implementación de <ph name="CORS" />.
 
@@ -4910,7 +4924,15 @@
 
       Definir <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> solo tendrá efecto si se le asigna el valor "False" a <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" />.</translation>
 <translation id="6305373713165475629">Si se establece esta política, se anula el modo predeterminado de impresión en color. Si el modo no está disponible, se ignorará esta política.</translation>
+<translation id="6308109234708949641">Esta política habilita la función Grabación de pantalla para usuarios de Family Link y le da permiso para crear y transcribir grabaciones de pantalla, así como para subir archivos a Drive.
+      Esta política no afecta a otros tipos de usuarios.
+      Esta política no afecta a la política <ph name="PROJECTOR_ENABLED_POLICY_NAME" /> para usuarios de empresa.
+
+      Si se habilita esta política, la versión dogfood de Grabación de pantalla se habilitará para usuarios de Family Link.
+      Si se inhabilita esta política, la versión dogfood de Grabación de pantalla se inhabilitará para usuarios de Family Link.
+      Si no se establece esta política, la versión dogfood de Grabación de pantalla se inhabilitará de forma predeterminada para usuarios de Family Link.</translation>
 <translation id="6310223829319187614">Habilitar la opción de autocompletar nombre de dominio durante el inicio de sesión del usuario</translation>
+<translation id="6310756730808079944">Habilitar Grabación de pantalla</translation>
 <translation id="631081324835911099">Forzar el cierre de la sesión del usuario si el token de autenticación de su cuenta principal deja de ser válido.
         Esta política puede proteger al usuario frente al acceso a contenido restringido en propiedades web de Google.
         Si se asigna el valor "true" a esta política, se cerrará la sesión del usuario en cuanto su token de autenticación deje de ser válido e intente restaurar este error de token.
@@ -5298,6 +5320,12 @@
           Si se establece el valor "false" o no se configura la política, se inhabilitarán el inicio de sesión y la creación de usuarios supervisados y se ocultarán todos los usuarios supervisados creados anteriormente.
 
           NOTA: El comportamiento predeterminado es diferente según el dispositivo: en los dispositivos de clientes particulares, los usuarios supervisados están habilitados de forma predeterminada, mientras que en los dispositivos de empresa, están inhabilitados de forma predeterminada.</translation>
+<translation id="6648746349186337075">Esta política concede permiso a Grabación de pantalla para crear y transcribir grabaciones de pantalla y subirlas a Drive para los usuarios de empresa.
+      Esta política no afecta a los usuarios de Family Link.
+      Esta política no afecta a la política <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" /> para usuarios de Family Link.
+
+      Si esta política se habilita o no se establece, se habilitará Grabación de pantalla.
+      Si se inhabilita esta política, se inhabilitará Grabación de pantalla.</translation>
 <translation id="665023848306499203">Permitir que los dispositivos seleccionen una versión concreta a la que actualizarse</translation>
 <translation id="6652197835259177259">Configuración de usuarios administrados de forma local</translation>
 <translation id="6653897159826215341">Si se habilita la política, <ph name="PRODUCT_NAME" /> abre el cuadro de diálogo de impresión del sistema en lugar de la vista previa de impresión integrada cuando los usuarios solicitan que se imprima.
@@ -6203,6 +6231,7 @@
       Si se habilita esta política o no se establece, se activará la conversión de unidades de Respuestas rápidas.
       Si se inhabilita esta política, no se activará la conversión de unidades de Respuestas rápidas.</translation>
 <translation id="7587345076013230465">Pedir al usuario que seleccione el certificado de cliente cuando la política de selección automática encuentre coincidencias con varios certificados en la pantalla de inicio de sesión</translation>
+<translation id="7587921466180902617">Habilitar dogfood de Grabación de pantalla para usuarios de Family Link</translation>
 <translation id="759957074386651883">Configuración de Navegación segura</translation>
 <translation id="7604169113182304895">Las aplicaciones para Android pueden aceptar esta lista voluntariamente. No se les puede forzar a que lo hagan.</translation>
 <translation id="7612157962821894603">Opciones que se deben aplicar al iniciar <ph name="PRODUCT_NAME" /> en todo el sistema</translation>
@@ -6451,6 +6480,7 @@
 
       Recomendación: Bloquea la pantalla en modo de inactividad activando el bloqueo de pantalla en el modo de suspensión y configurando <ph name="PRODUCT_OS_NAME" /> para que realice la suspensión después del periodo de inactividad indicado. Utiliza esta política únicamente si el bloqueo de la pantalla debería producirse mucho antes que la suspensión, o cuando no quieras que se produzca la suspensión en modo de inactividad.</translation>
 <translation id="7895553628261067384">Acceso remoto</translation>
+<translation id="7900469325540540107">Conservar datos de navegación de forma predeterminada al crear un perfil de empresa</translation>
 <translation id="7902040092815978832">Muestra el teclado numérico para introducir la contraseña</translation>
 <translation id="7904177352786629708">Si se asigna el valor "Enabled" a esta política, se omitirá la consulta de CNAME. El nombre del servidor se usará tal como se haya introducido al generar el SPN de Kerberos.
 
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 72e0265..0e022c3 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -100,6 +100,7 @@
 <translation id="1095209545735032039">Bloquer l'API Serial sur ces sites</translation>
 <translation id="1096105751829466145">Moteur de recherche par défaut</translation>
 <translation id="1099282607296956954">Activer l'isolation des sites pour tous les sites</translation>
+<translation id="1100840127293327071">Ne pas cocher l'option permettant de conserver les données de navigation existantes par défaut</translation>
 <translation id="1105572260329131950">Utiliser les icônes par défaut pour les connexions sécurisées</translation>
 <translation id="1107538157073168076">Désactiver l'extension des insights</translation>
 <translation id="1110426799149444997">Désactiver la recherche par zone <ph name="GOOGLE_LENS_PRODUCT_NAME" />.</translation>
@@ -744,6 +745,14 @@
 <translation id="1781356041596378058">Cette règle permet également de contrôler l'accès aux options pour les développeurs Android. Si vous définissez cette règle sur "True", les utilisateurs ne pourront pas accéder aux options pour les développeurs. Si vous la définissez sur "False" ou si vous ne la modifiez pas, les utilisateurs pourront accéder aux options pour les développeurs en appuyant sept fois sur le numéro de version dans l'application des paramètres Android.</translation>
 <translation id="1787790976045065845">Cette règle ne prend effet que si la règle <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> est définie sur <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> ou <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />, et si un utilisateur qui s'authentifie au moyen d'une carte à puce retire celle-ci. Elle indique alors la durée d'affichage, en secondes, d'une notification informant l'utilisateur de l'action qui va être exécutée. Cette notification bloque l'écran. L'action ne s'exécute que lorsque la notification disparaît. L'utilisateur peut empêcher l'action de s'exécuter en réinsérant la carte à puce avant que la notification disparaisse. Si cette règle est définie sur zéro, aucune notification ne s'affiche, et l'action s'exécute immédiatement.</translation>
 <translation id="1793346220873697538">Désactiver l'impression par code définie par défaut</translation>
+<translation id="1794457906032475749">Si cette règle est activée, l'option permettant de conserver les données de navigation existantes lors de la création d'un profil d'entreprise sera cochée par défaut.
+
+Si cette règle n'est pas définie ou est désactivée, l'option permettant de conserver les données de navigation existantes lors de la création d'un profil d'entreprise ne sera pas cochée par défaut.
+
+Quelle que soit la valeur, l'utilisateur pourra décider de conserver ou non les données de navigation existantes lors de la création d'un profil d'entreprise.
+
+Cette règle n'a aucun effet si l'option permettant de conserver les données de navigation existantes n'est pas disponible. Cela se produit si la séparation des profils d'entreprise est strictement appliquée, ou si les données proviennent d'un profil déjà géré.
+</translation>
 <translation id="179694024208061102">Si cette règle est activée, <ph name="PRODUCT_NAME" /> tente d'ouvrir certaines URL dans un autre navigateur (par exemple, <ph name="IE_PRODUCT_NAME" />). Cette fonctionnalité est configurée à l'aide des règles du groupe <ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />.
 
       Si cette règle est désactivée ou qu'elle n'est pas configurée, <ph name="PRODUCT_NAME" /> ne tente pas d'ouvrir les URL indiquées dans un autre navigateur.</translation>
@@ -1637,6 +1646,7 @@
 
       Sous <ph name="MS_WIN_NAME" />, cette règle n'est disponible que sur les instances associées à un domaine <ph name="MS_AD_NAME" />, exécutées sous Windows 10 Pro ou qui bénéficient de la gestion cloud du navigateur Chrome. Sous <ph name="MAC_OS_NAME" />, elle n'est disponible que sur les instances gérées via MDM ou associées à un domaine via MCX.</translation>
 <translation id="2623014935069176671">Attendre l'activité utilisateur initiale</translation>
+<translation id="2625026032335150744">Cocher l'option permettant de conserver les données de navigation existantes par défaut</translation>
 <translation id="2625398797484317969">Contrôle les paramètres de Réponses rapides.</translation>
 <translation id="262740370354162807">Activer l'envoi de documents à <ph name="CLOUD_PRINT_NAME" /></translation>
 <translation id="2633084400146331575">Activer les commentaires audio</translation>
@@ -2059,6 +2069,7 @@
       Pour en savoir plus sur les formats <ph name="URL_LABEL" /> valides, veuillez consulter la page https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. La valeur <ph name="WILDCARD_VALUE" /> n'est pas acceptée pour cette règle.</translation>
 <translation id="305106159605171619">La réduction user-agent est désactivée et ne peut pas être activée par les tests en conditions réelles ni la phase d'évaluation.</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
+<translation id="3063302084011279315">Désactiver l'enregistreur d'écran</translation>
 <translation id="3064530882228745118">Utiliser la consultation CNAME lors de l'authentification Kerberos</translation>
 <translation id="3066446511111537292">Permet aux utilisateurs affiliés de cet appareil d'utiliser le téléchargement indépendant adb</translation>
 <translation id="3070119171976169951">Empêcher les images tierces d'afficher une commande d'authentification</translation>
@@ -2276,6 +2287,7 @@
 <translation id="3255762580838224124">Si cette règle est configurée, chaque écran pivote en fonction de l'orientation spécifiée, à chaque redémarrage ainsi que la première fois qu'il est affiché après une modification de la valeur de cette règle. Une fois connectés, les utilisateurs peuvent modifier le paramètre de rotation d'écran. Toutefois, le paramètre initial sera rétabli au redémarrage suivant. Cette règle s'applique à l'écran principal, ainsi qu'aux écrans secondaires.
 
       Si cette règle n'est pas configurée, la valeur par défaut est de 0 degré, et les utilisateurs sont libres de la modifier. Dans ce cas, la valeur par défaut n'est pas rétablie au redémarrage.</translation>
+<translation id="3257786863492892609">Contrôle les règles pour l'enregistreur d'écran.</translation>
 <translation id="3258380413685430793">Exécuter tout le contenu <ph name="FLASH_PLUGIN_NAME" /></translation>
 <translation id="325883417142483505">Permet de dresser la liste des URL de connexion d'entreprise (protocoles HTTP et HTTPS uniquement). Le service de protection par mot de passe enregistre des copies hachées et après salage des mots de passe au niveau de ces URL afin de détecter les mots de passe réutilisés. Pour que <ph name="PRODUCT_NAME" /> enregistre correctement ces copies, vérifiez que vos pages de connexion respectent bien les consignes détaillées sur https://www.chromium.org/developers/design-documents/create-amazing-password-forms.
 
@@ -3238,6 +3250,7 @@
 <translation id="441686537793821907">Bloquer l'installation d'extensions externes</translation>
 <translation id="4423597592074154136">Spécifier manuellement les paramètres de proxy</translation>
 <translation id="4424004842303301809">Désactiver la création de rapports sur les événements de prévention des fuites de données</translation>
+<translation id="4426601693403743089">Désactiver la version dogfood de l'enregistreur d'écran pour les utilisateurs de Family Link</translation>
 <translation id="4427173305799125784">La visionneuse de PDF ne peut pas annoter les PDF</translation>
 <translation id="4432762137771104529">Autoriser la création de rapports détaillés dans le cadre de la navigation sécurisée</translation>
 <translation id="443454694385851356">Anciens types de chiffrement (option non sécurisée)</translation>
@@ -4834,6 +4847,7 @@
       Chaque élément de la règle correspond à une chaîne constituée d'un ID d'extension et éventuellement d'une URL de mise à jour séparés par un point-virgule (<ph name="SEMICOLON" />). L'ID d'extension est la chaîne de 32 lettres qui se trouve, par exemple, dans <ph name="CHROME_EXTENSIONS_LINK" /> en mode développeur. Lorsqu'elle est indiquée, l'URL de mise à jour doit renvoyer à un fichier manifeste au format XML, comme décrit sur la page <ph name="LINK_TO_EXTENSION_DOC1" />. Par défaut, l'URL de mise à jour du Chrome Web Store est utilisée (il s'agit actuellement de "https://clients2.google.com/service/update2/crx"). Sachez que l'URL de mise à jour spécifiée dans cette règle n'est utilisée que pour l'installation initiale. Toute mise à jour ultérieure de l'extension est effectuée avec l'URL indiquée dans le fichier manifeste de l'extension.
 
       Par exemple, <ph name="LOGIN_SCREEN_EXTENSION_POLICY_EXAMPLE" /> installe l'application <ph name="SMART_CARD_CONNECTOR_APP_NAME" /> à partir de l'URL de mise à jour standard du Chrome Web Store. Pour en savoir plus sur l'hébergement des extensions, consultez la page <ph name="LINK_TO_EXTENSION_DOC2" />.</translation>
+<translation id="6274202259872570803">Enregistreur d'écran</translation>
 <translation id="6275497712828649588">Masquer les avertissements de sécurité lorsque des indicateurs de ligne de commande potentiellement dangereux sont utilisés</translation>
 <translation id="6275833043726517413">Permet d'utiliser l'ancienne mise en œuvre de <ph name="CORS" /> au lieu de la nouvelle mise en œuvre de <ph name="CORS" />.
 
@@ -4867,7 +4881,15 @@
 
       La configuration de la règle <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> n'est effective que si la règle <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> est définie sur "False".</translation>
 <translation id="6305373713165475629">Lorsque cette règle est définie, le mode d'impression couleur par défaut est ignoré. Si le mode est indisponible, cette règle est ignorée.</translation>
+<translation id="6308109234708949641">Cette règle active l'enregistreur d'écran pour les utilisateurs de Family Link et lui permet de créer et transcrire un enregistrement d'écran, puis de l'importer dans Drive.
+      Cette règle n'affecte pas les autres types d'utilisateurs.
+      Cette règle n'affecte pas la règle <ph name="PROJECTOR_ENABLED_POLICY_NAME" /> pour les utilisateurs de la version Entreprise.
+
+      Si cette règle est activée, la version dogfood de l'enregistreur d'écran sera activée pour les utilisateurs de Family Link.
+      Si cette règle est désactivée, la version dogfood de l'enregistreur d'écran sera désactivée pour les utilisateurs de Family Link.
+      Si cette règle n'est pas définie, la version dogfood de l'enregistreur d'écran sera désactivée par défaut pour les utilisateurs de Family Link.</translation>
 <translation id="6310223829319187614">Activer la saisie automatique du nom de domaine lors de la connexion de l'utilisateur</translation>
+<translation id="6310756730808079944">Activer l'enregistreur d'écran</translation>
 <translation id="631081324835911099">Forcer la déconnexion de l'utilisateur lorsque le jeton d'authentification de son compte principal n'est plus valide.
         Cette règle peut empêcher l'utilisateur d'accéder à un contenu soumis à des restrictions sur les propriétés Web Google.
         Si cette règle est définie sur "True", l'utilisateur est déconnecté dès que son jeton d'authentification n'est plus valide et que les tentatives de restauration de ce jeton échouent.
@@ -5242,6 +5264,12 @@
           Si elle est associée à la valeur "false" ou si elle n'est pas configurée, la création et la connexion des comptes utilisateur supervisés sont désactivées. Tous les utilisateurs supervisés existants sont alors masqués.
 
           REMARQUE : Le comportement par défaut des appareils grand public diffère de celui des appareils professionnels : sur les appareils grand public, les comptes utilisateur supervisés sont autorisés par défaut, contrairement aux appareils professionnels.</translation>
+<translation id="6648746349186337075">Cette règle autorise l'enregistreur d'écran à créer et transcrire un enregistrement d'écran et à l'importer dans Drive pour les utilisateurs de la version Entreprise.
+      Cette règle n'affecte pas les utilisateurs de Family Link.
+      Cette règle n'affecte pas la règle <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" /> pour les utilisateurs de Family Link.
+
+      Si elle n'est pas configurée ou si elle est activée, l'enregistreur d'écran sera activé.
+      Si elle est désactivée, l'enregistreur d'écran sera désactivé.</translation>
 <translation id="665023848306499203">Autorisez les appareils à sélectionner une version de mise à jour</translation>
 <translation id="6652197835259177259">Paramètres des utilisateurs gérés en local</translation>
 <translation id="6653897159826215341">Lorsque cette règle est activée, <ph name="PRODUCT_NAME" /> ouvre la boîte de dialogue d'impression du système au lieu de l'aperçu avant impression intégré lorsqu'un utilisateur souhaite imprimer une page.
@@ -6146,6 +6174,7 @@
       Si elle est activée ou si elle n'est pas configurée, la conversion d'unités pour Réponses rapides est activée.
       Si elle est désactivée, la conversion d'unités pour Réponses rapides est désactivée.</translation>
 <translation id="7587345076013230465">Demander à l'utilisateur de sélectionner le certificat client chaque fois que la règle de sélection automatique établit une correspondance avec plusieurs certificats sur l'écran de connexion</translation>
+<translation id="7587921466180902617">Active la version dogfood de l'enregistreur d'écran pour les utilisateurs de Family Link</translation>
 <translation id="759957074386651883">Paramètres de navigation sécurisée</translation>
 <translation id="7604169113182304895">Les applications Android peuvent avoir été volontairement conçues pour respecter cette liste, mais vous ne pouvez pas les forcer à effectuer cette opération.</translation>
 <translation id="7612157962821894603">Options système à appliquer au démarrage de <ph name="PRODUCT_NAME" /></translation>
@@ -6394,6 +6423,7 @@
 
       Recommandation : Pour verrouiller l'écran en cas d'inactivité, activez le verrouillage de l'écran lors de l'arrêt temporaire, et configurez l'arrêt temporaire de <ph name="PRODUCT_OS_NAME" /> au terme du délai d'inactivité. N'utilisez cette règle que lorsque le verrouillage de l'écran doit intervenir bien avant l'arrêt temporaire de l'appareil ou lorsque vous ne voulez pas que l'appareil soit arrêté temporairement en cas d'inactivité.</translation>
 <translation id="7895553628261067384">Accès à distance</translation>
+<translation id="7900469325540540107">Conserver les données de navigation lors de la création d'un profil d'entreprise par défaut</translation>
 <translation id="7902040092815978832">Afficher le clavier numérique pour la saisie du mot de passe</translation>
 <translation id="7904177352786629708">Si cette règle est activée, la recherche du CNAME est ignorée. Le nom du serveur est utilisé tel qu'il a été saisi lors de la génération du SPN Kerberos.
 
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index 6df43ab..b6daed2 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -263,6 +263,7 @@
       Jika kebijakan tidak disetel atau jika nilai setelah substitusi bukan berupa hostname yang valid, tidak ada hostname yang akan disetel dalam permintaan DHCP.</translation>
 <translation id="1257550411839719984">Setel direktori download default</translation>
 <translation id="1265053460044691532">Batasi waktu bagi pengguna yang diautentikasi melalui SAML untuk dapat masuk saat offline.</translation>
+<translation id="1271811620059192171">Aktifkan grup atom kebijakan</translation>
 <translation id="127264587838521316">Mengaktifkan permintaan penginstalan ekstensi <ph name="PRODUCT_NAME" /></translation>
 <translation id="1272798957154751008">Mengaktifkan migrasi perangkat Chromad ke pengelolaan cloud</translation>
 <translation id="1274997165432133392">Cookie dan data situs lainnya</translation>
@@ -2892,6 +2893,7 @@
       Jika kebijakan ini disetel ke Nonaktif atau tidak disetel, pengguna mungkin hanya diminta saat tidak ada sertifikat yang cocok dengan pemilihan otomatis.</translation>
 <translation id="3950110092991281616">Mengaktifkan autentikasi pasif di sesi reguler saja.</translation>
 <translation id="3950239119790560549">Memperbarui Batasan Waktu</translation>
+<translation id="3956243291190637924">Sembunyikan header dan footer dalam pratinjau cetak</translation>
 <translation id="3956573780915784996">Izinkan pengguna mengumpulkan jejak performa di seluruh sistem.</translation>
 <translation id="3956686688560604829">Gunakan kebijakan SiteList Internet Explorer untuk Dukungan Browser Lama.</translation>
 <translation id="3958586912393694012">Izinkan Smart Lock digunakan</translation>
@@ -3140,6 +3142,18 @@
       Jika kebijakan disetel ke Nonaktif atau tidak disetel, pengguna akan dapat mentransfer file ke Drive melalui koneksi seluler.</translation>
 <translation id="4248277954659222481">Izinkan pemutaran otomatis media pada pola URL yang diizinkan</translation>
 <translation id="4250680216510889253">Tidak</translation>
+<translation id="4259636715493757956">Mengizinkan Anda menentukan konfigurasi untuk URL autentikasi di <ph name="WEBVIEW_PRODUCT_NAME" />.
+
+      URL Autentikasi ini akan diperlakukan khusus oleh <ph name="WEBVIEW_PRODUCT_NAME" />. Dengan begitu, saat halaman web dalam <ph name="WEBVIEW_PRODUCT_NAME" />
+      membuka URL autentikasi, aplikasi pengautentikasi Penyedia Identitas terkait yang dapat menangani URL autentikasi ini akan diluncurkan selama autentikasi berlangsung.
+
+      Alur peluncuran aplikasi pengautentikasi Penyedia Identitas ini akan digunakan oleh Penyedia Identitas untuk mengaktifkan
+      kasus penggunaan, seperti menyediakan SSO di seluruh aplikasi atau memberikan keamanan yang lebih baik dengan mengumpulkan sinyal perangkat zero-trust untuk memahami postur perangkat selama autentikasi.
+
+      Jika tidak ada aplikasi valid yang diinstal untuk menangani URL autentikasi di perangkat, navigasi akan dilanjutkan di <ph name="WEBVIEW_PRODUCT_NAME" />.
+
+      Pola URL autentikasi harus diformat sesuai dengan https://www.chromium.org/administrators/url-blocklist-filter-format.
+      </translation>
 <translation id="4260027436474745627">Jika kebijakan ini disetel, setiap asal bernama dalam daftar yang dipisahkan koma akan berjalan dalam proses khusus. Setiap proses asal bernama hanya akan diizinkan untuk memuat dokumen dari asal tersebut dan subdomainnya. Misalnya, menentukan https://a1.example.com/ akan mengizinkan https://a2.a1.example.com/ dalam proses yang sama, tetapi tidak mengizinkan https://example.com atau https://b.example.com.
 
       Sejak <ph name="PRODUCT_NAME" /> 77, Anda juga dapat menentukan rentang asal yang akan diisolasi menggunakan karakter pengganti. Misalnya, menentukan https://[*.]corp.example.com akan memberi setiap asal di bawah https://corp.example.com proses khususnya sendiri, termasuk https://corp.example.com itu sendiri, https://a1.corp.example.com, dan https://a2.a1.corp.example.com.
@@ -3280,6 +3294,7 @@
 <translation id="4432762137771104529">Aktifkan Pelaporan Lengkap Safe Browsing</translation>
 <translation id="443454694385851356">Lama (tidak aman)</translation>
 <translation id="443665821428652897">Hapus data situs saat browser ditutup (tidak digunakan lagi)</translation>
+<translation id="4436941175475497595">Nonaktifkan pratinjau cetak</translation>
 <translation id="4439336120285389675">Menentukan daftar fitur platform web yang tak digunakan lagi untuk diaktifkan kembali secara sementara.
 
       Kebijakan ini memberikan administrator kemampuan untuk mengaktifkan kembali fitur platform web yang tak digunakan lagi dalam waktu yang terbatas. Fitur diidentifikasi dengan tag string dan fitur yang sesuai dengan tag yang disertakan dalam daftar yang ditentukan oleh kebijakan ini akan diaktifkan kembali.
@@ -4327,6 +4342,7 @@
       Catatan: Pisahkan beberapa nama server dengan koma. Karakter pengganti, <ph name="WILDCARD_VALUE" />, diizinkan.</translation>
 <translation id="5645779841392247734">Izinkan cookie di situs ini</translation>
 <translation id="5646234199535103501">Kebijakan konfigurasi untuk Chrome Enterprise Connector OnBulkDataEntry</translation>
+<translation id="5648016151508002741">Cegah pelaksanaan pemeriksaan <ph name="OCSP_CRL_LABEL" /> online</translation>
 <translation id="5649046890958064703">Jika <ph name="PRINTERS_BLACKLIST" /> dipilih untuk <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, menyetel <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" /> akan menentukan printer yang tidak dapat digunakan oleh pengguna. Semua printer diberikan kepada pengguna kecuali ID yang tercantum dalam kebijakan ini. ID harus sesuai dengan kolom <ph name="ID_FIELD" /> atau <ph name="GUID_FIELD" /> dalam file yang ditentukan di <ph name="DEVICE_PRINTERS_POLICY_NAME" />.
 
       Kebijakan ini tidak digunakan lagi. Sebagai gantinya, gunakan <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />.</translation>
@@ -4593,6 +4609,7 @@
 <translation id="5893303508158298667">Jika <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> disetel ke Aktif, menyetel <ph name="REMOTE_ACCESS_HOST_ALLOW_RELAYED_CONNECTION_POLICY_NAME" /> ke Aktif atau tidak menyetelnya akan mengizinkan klien jarak jauh untuk menggunakan server relai agar terhubung ke perangkat ini saat koneksi langsung tidak tersedia, misalnya karena batasan firewall.
 
       Jika kebijakan disetel ke Nonaktif, akses jarak jauh tidak akan dinonaktifkan, tetapi koneksi hanya akan diizinkan dari jaringan yang sama (bukan NAT traversal atau relai).</translation>
+<translation id="5897234314586602143">Tampilkan header dan footer dalam pratinjau cetak</translation>
 <translation id="5897913798715600338">Mengisi daya baterai menggunakan teknologi pengisian daya cepat.</translation>
 <translation id="5898486742390981550">Ketika beberapa pengguna masuk, hanya pengguna utama yang dapat menggunakan aplikasi Android.</translation>
 <translation id="5899751601113377553">Cegah pengguna menggunakan <ph name="LACROS_NAME" /></translation>
@@ -5113,6 +5130,13 @@
 <translation id="6478258366184919502">Asal layar login</translation>
 <translation id="6478261301433199402">Menyetel kebijakan akan menentukan image <ph name="PLUGIN_VM_NAME" /> bagi pengguna. Tentukan kebijakan ini sebagai string berformat JSON, dengan <ph name="URL_PLUGIN_VM_IMAGE_FIELD" /> yang menyatakan tempat mendownload image dan <ph name="HASH_PLUGIN_VM_IMAGE_FIELD" /> sebagai hash SHA-256 yang digunakan untuk memverifikasi integritas download.</translation>
 <translation id="6481245670325946423">Izinkan penggunaan Mode Headless</translation>
+<translation id="648158446793103284">Jika kebijakan disetel, pengguna akan dapat memilih salah satu metode input untuk sesi <ph name="PRODUCT_OS_NAME" /> yang Anda tentukan.
+
+       Jika kebijakan tidak disetel atau disetel ke daftar kosong, pengguna akan dapat memilih semua metode input yang didukung.
+
+       Mulai versi M106, metode input yang diizinkan akan diaktifkan secara otomatis di sesi kios.
+
+      Catatan: Jika metode input saat ini tidak didukung, metode akan beralih ke tata letak keyboard hardware (jika diizinkan) atau entri pertama yang valid dalam daftar ini. Metode yang tidak valid atau tidak didukung akan diabaikan.</translation>
 <translation id="6489084406497912050">Mengontrol apakah pengguna dapat menambahkan akun Kerberos.
 
           Jika kebijakan ini diaktifkan atau tidak disetel, pengguna dapat menambahkan akun Kerberos melalui Setelan akun Kerberos di halaman setelan Kerberos. Pengguna dapat sepenuhnya mengontrol akun yang mereka tambahkan serta dapat memodifikasi atau menghapusnya.
@@ -5341,6 +5365,7 @@
       Jika kebijakan ini disetel ke Salah (False), tampilan URL default akan diterapkan.
       Jika kebijakan ini tidak disetel, tampilan URL default akan diterapkan dan pengguna akan dapat beralih antara tampilan URL lengkap dan default dengan opsi menu konteks.
       </translation>
+<translation id="6670794785040100077">Nonaktifkan pengiriman dokumen ke <ph name="CLOUD_PRINT_NAME" /></translation>
 <translation id="6672070613706645316">Izinkan pengguna menyesuaikan latar belakang di halaman Tab Baru</translation>
 <translation id="6672630473862787247">Mengaktifkan autentikasi pasif di sesi reguler, samaran, dan tamu.</translation>
 <translation id="6685903773201985073">Mengaktifkan autentikasi pasif di sesi tamu dan reguler.</translation>
@@ -5428,6 +5453,7 @@
       Jika <ph name="DEFAULT_SEARCH_PROVIDER_SEARCH_URL_POST_PARAMS_POLICY_NAME" /> tidak disetel, permintaan penelusuran akan dikirimkan menggunakan metode GET.</translation>
 <translation id="6757613329154374267">Pencadangan dan pemulihan diaktifkan</translation>
 <translation id="6758659208493449452">Kebijakan ini mengontrol apakah pengguna yang terdaftar dalam Program Perlindungan Lanjutan menerima perlindungan tambahan. Beberapa fitur ini dapat mencakup pembagian data kepada Google (misalnya, pengguna Perlindungan Lanjutan akan dapat mengirimkan hasil downloadnya ke Google untuk pemindaian malware). Jika ditetapkan ke Benar atau tidak ditetapkan, pengguna terdaftar akan menerima perlindungan tambahan. Jika ditetapkan ke Salah, pengguna Perlindungan Lanjutan hanya akan menerima fitur konsumen standar.</translation>
+<translation id="6763023079133439068">Izinkan sertifikat yang tidak dilengkapi ekstensi subjectAlternativeName saat dikeluarkan oleh trust anchor lokal</translation>
 <translation id="6766216162565713893">Izinkan situs meminta pengguna memberikan akses ke perangkat Bluetooth di sekitar</translation>
 <translation id="6770454900105963262">Melaporkan informasi tentang sesi kios aktif</translation>
 <translation id="6782977971207381602">Jika kebijakan disetel ke Aktif, perangkat dapat menjalankan mesin virtual di <ph name="PRODUCT_OS_NAME" />. <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> dan <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> harus disetel ke Aktif untuk menggunakan <ph name="PRODUCT_CROSTINI_NAME" />. Jika kebijakan disetel ke Nonaktif, perangkat tidak dapat menjalankan mesin virtual. Jika setelan diubah ke Nonaktif, kebijakan mulai diterapkan ke mesin virtual baru yang akan dijalankan, bukan yang sudah berjalan.
@@ -6049,6 +6075,7 @@
 <translation id="7458437477941640506">Jangan kembalikan ke versi target jika versi OS lebih baru daripada target. Update juga dinonaktifkan.</translation>
 <translation id="7459601923199346224">Mengontrol kebijakan pengguna dan perangkat untuk pengelolaan sertifikat.</translation>
 <translation id="7459633275230216698">Izinkan dialog pemilihan file</translation>
+<translation id="7464058117970792805">Aktifkan pratinjau cetak</translation>
 <translation id="7464991223784276288">Membatasi cookie dari URL yang cocok ke sesi saat ini</translation>
 <translation id="7468182772656807573">Menyetel kebijakan akan menentukan frekuensi pengiriman paket jaringan pemantauan, dalam milidetik. Rentang intervalnya dari 30 detik hingga 24 jam. Nilai di luar rentang ini akan dibulatkan ke rentang ini.
 
@@ -6426,6 +6453,7 @@
 <translation id="7823902813460802031">Jika kebijakan ini disetel ke Aktif, <ph name="PRODUCT_OS_NAME" /> akan menghentikan perangkat beralih ke mode Developer.
 
        Jika kebijakan ini disetel ke Nonaktif atau tidak disetel, mode Developer akan tersedia untuk perangkat.</translation>
+<translation id="7824000841504721945">Nonaktifkan grup atom kebijakan</translation>
 <translation id="782661371433719637">Jangan izinkan situs apa pun meminta akses baca ke file dan direktori melalui File System API</translation>
 <translation id="7827127381981620448">Aplikasi platform</translation>
 <translation id="7833148823006528332">ID aplikasi Android, mis. "com.google.android.gm" untuk Gmail.</translation>
@@ -6511,6 +6539,7 @@
 <translation id="793473937901685727">Menyetel ketersediaan sertifikat untuk aplikasi ARC</translation>
 <translation id="7936302526928951356">String Agen Pengguna tidak akan membekukan versi utama.</translation>
 <translation id="7937766917976512374">Izinkan atau tolak penangkapan video</translation>
+<translation id="7941528208359969119">Izinkan pelaksanaan pemeriksaan <ph name="OCSP_CRL_LABEL" /> online</translation>
 <translation id="7941975817681987555">Jangan memprediksi tindakan jaringan di koneksi jaringan apa pun</translation>
 <translation id="7946350455013548764">Jika kebijakan disetel ke 3, situs akan diizinkan meminta akses ke perangkat HID. Jika kebijakan disetel ke 2, situs akan dilarang meminta akses ke perangkat HID.
 
@@ -6893,6 +6922,7 @@
 
       Jika <ph name="DEFAULT_SEARCH_PROVIDER_IMAGE_URL_POST_PARMS_POLICY_NAME" /> tidak disetel, permintaan penelusuran gambar akan dikirimkan menggunakan metode GET.</translation>
 <translation id="8314214821702356835">Memungkinkan pengguna memutar media saat perangkat terkunci</translation>
+<translation id="8316940611391250886">Larang sertifikat yang tidak dilengkapi ekstensi subjectAlternativeName</translation>
 <translation id="8319678975002906774">Menyetel nilai konfigurasi terkelola bagi situs untuk sumber tertentu</translation>
 <translation id="8320149248919453401">Mode pengisian daya baterai</translation>
 <translation id="8327651196906278510">Mengizinkan tangkapan Tab berdasarkan asal berikut</translation>
@@ -7637,6 +7667,7 @@
 <translation id="9135033364005346124">Mengaktifkan proxy <ph name="CLOUD_PRINT_NAME" /></translation>
 <translation id="9136212796239682721">Nonaktifkan UI balon download</translation>
 <translation id="9136399279941091445">Interval di luar jam kerja saat kebijakan perangkat yang ditentukan dirilis</translation>
+<translation id="9148720248753722892">Larang sertifikat yang ditandatangani SHA-1</translation>
 <translation id="9150416707757015439">Kebijakan ini sudah tidak digunakan lagi. Gunakan IncognitoModeAvailability sebagai gantinya. Aktifkan mode Samaran di <ph name="PRODUCT_NAME" />. Jika setelan ini diaktifkan atau tidak dikonfigurasi, pengguna dapat membuka halaman web dalam mode samaran. Jika setelan ini dinonaktifkan, pengguna tidak dapat membuka halaman web dalam mode samaran. Jika kebijakan ini dibiarkan tanpa disetel, kebijakan ini akan diaktifkan dan pengguna akan dapat menggunakan mode samaran.</translation>
 <translation id="9152473318295429890">Aktifkan saran kontekstual halaman terkait</translation>
 <translation id="9153446010242995516">Roll back dan tetap menggunakan versi target jika versi OS lebih baru dari. Mencoba untuk menerapkan konfigurasi tingkat perangkat (termasuk kredensial jaringan) melalui proses rollback, jika memungkinkan, tetapi melakukan rollback dengan powerwash penuh meskipun pemulihan data tidak memungkinkan (karena versi target tidak mendukung pemulihan data atau karena perubahan tidak kompatibel untuk dikembalikan).
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 950d750..952a2a0 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -264,6 +264,7 @@
       Se il criterio non viene configurato o se il valore dopo la sostituzione non è un nome host valido, non viene impostato nessun nome host nella richiesta DHCP.</translation>
 <translation id="1257550411839719984">Imposta directory di download predefinita</translation>
 <translation id="1265053460044691532">Limita il tempo per cui un utente autenticato tramite SAML può eseguire l'accesso offline</translation>
+<translation id="1271811620059192171">Attiva gruppi atomici di criteri</translation>
 <translation id="127264587838521316">Attiva le richieste di installazione delle estensioni di <ph name="PRODUCT_NAME" /></translation>
 <translation id="1272798957154751008">Attiva la migrazione dei dispositivi Chromad nella gestione del cloud</translation>
 <translation id="1274997165432133392">Cookie e altri dati dei siti</translation>
@@ -2881,6 +2882,7 @@
       Se viene impostato su Disattivato o se non viene configurato, all'utente può essere richiesta la selezione solo quando nessun certificato corrisponde alla selezione automatica.</translation>
 <translation id="3950110092991281616">Attiva l'autenticazione ambientale solo nelle sessioni standard.</translation>
 <translation id="3950239119790560549">Limitazioni relative alla data/ora di aggiornamento</translation>
+<translation id="3956243291190637924">Nascondi intestazioni e piè di pagina nell'anteprima di stampa</translation>
 <translation id="3956573780915784996">Gli utenti possono raccogliere dati di rilevamento del rendimento a livello di sistema.</translation>
 <translation id="3956686688560604829">Utilizza la norma SiteList di Internet Explorer per il Supporto dei browser precedenti.</translation>
 <translation id="3958586912393694012">Consenti l'utilizzo di Smart Lock</translation>
@@ -3117,6 +3119,16 @@
       Se il criterio viene impostato su Disattivato o se non viene configurato, gli utenti potranno trasferire i file su Drive tramite la connessione a una rete cellulare.</translation>
 <translation id="4248277954659222481">Consenti la riproduzione automatica dei contenuti multimediali per una lista consentita di pattern URL</translation>
 <translation id="4250680216510889253">No</translation>
+<translation id="4259636715493757956">Ti consente di specificare le configurazioni per gli URL di autenticazione in <ph name="WEBVIEW_PRODUCT_NAME" />.
+
+      Questi URL di autenticazione vengono trattati in modo speciale da <ph name="WEBVIEW_PRODUCT_NAME" /> in modo che, quando durante l'autenticazione una pagina web in <ph name="WEBVIEW_PRODUCT_NAME" /> indirizza agli URL di autenticazione, venga avviata l'app di autenticazione dei provider di identità corrispondente che può gestire l'URL di autenticazione in questione.
+
+      Questo flusso di avvio dell'app di autenticazione dei provider di identità viene utilizzato dai provider di identità per consentire casi d'uso come fornire SSO nelle app oppure per garantire maggiore sicurezza raccogliendo indicatori dei dispositivi Zero Trust per comprendere il comportamento dei dispositivi durante l'autenticazione.
+
+      Se sul dispositivo non è installata alcuna app valida per la gestione dell'URL di autenticazione, la navigazione continua in <ph name="WEBVIEW_PRODUCT_NAME" />.
+
+      Il pattern dell'URL di autenticazione deve essere nel formato indicato all'indirizzo https://www.chromium.org/administrators/url-blocklist-filter-format.
+      </translation>
 <translation id="4260027436474745627">Se il criterio viene configurato, ciascuna delle origini denominate in un elenco separato da virgole viene eseguita in un processo dedicato. Il processo di ogni origine denominata potrà contenere solo documenti provenienti da tale origine e i relativi sottodomini. Ad esempio, specificare https://a1.example.com/ consente https://a2.a1.example.com/ nello stesso processo, ma non https://example.com o https://b.example.com.
 
       A partire da <ph name="PRODUCT_NAME" /> 77, puoi specificare anche un intervallo di origini da isolare utilizzando un carattere jolly. Ad esempio, specificare https://[*.]corp.example.com consentirà a ogni origine al di sotto di https://corp.example.com il proprio processo dedicato, inclusi https://corp.example.com stesso, https://a1.corp.example.com e https://a2.a1.corp.example.com.
@@ -3257,6 +3269,7 @@
 <translation id="4432762137771104529">Attiva rapporti estesi su Navigazione sicura</translation>
 <translation id="443454694385851356">Precedente (non sicuro)</translation>
 <translation id="443665821428652897">Cancella i dati del sito alla chiusura del browser (obsoleta)</translation>
+<translation id="4436941175475497595">Disattiva anteprima di stampa</translation>
 <translation id="4439336120285389675">Consente di specificare un elenco di funzioni ritirate della piattaforma web da riattivare temporaneamente.
 
       Questa norma consente agli amministratori di riattivare funzioni ritirate della piattaforma web per un periodo di tempo limitato. Le funzioni sono identificate da un tag string e le funzioni corrispondenti ai tag inclusi nell'elenco specificato tramite questa norma verranno riattivate.
@@ -4305,6 +4318,7 @@
       Nota: se ci sono più server, separane i nomi utilizzando virgole. I caratteri jolly (<ph name="WILDCARD_VALUE" />) sono consentiti.</translation>
 <translation id="5645779841392247734">Consenti i cookie in questi siti</translation>
 <translation id="5646234199535103501">Criterio di configurazione per il connettore OnBulkDataEntry di Chrome Enterprise</translation>
+<translation id="5648016151508002741">Impedisci l'esecuzione dei controlli <ph name="OCSP_CRL_LABEL" /> online</translation>
 <translation id="5649046890958064703">Se per il criterio <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> viene scelta l'opzione <ph name="PRINTERS_BLACKLIST" />, la configurazione del criterio <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" /> consente di specificare le stampanti che gli utenti non possono usare. Gli utenti avranno a disposizione tutte le stampanti, tranne quelle i cui ID sono elencati in questo criterio. Gli ID devono corrispondere ai campi <ph name="ID_FIELD" /> o <ph name="GUID_FIELD" /> del file specificato nel criterio <ph name="DEVICE_PRINTERS_POLICY_NAME" />.
 
       Questo criterio è deprecato. Usa il criterio <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />.</translation>
@@ -4560,6 +4574,7 @@
 <translation id="5893303508158298667">Se il criterio <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> è impostato su Attivato e il criterio <ph name="REMOTE_ACCESS_HOST_ALLOW_RELAYED_CONNECTION_POLICY_NAME" /> viene impostato su Attivato o non viene configurato, viene consentito l'utilizzo di client remoti per usare relay server per collegarsi al computer quando non è disponibile una connessione diretta, ad esempio a causa di limitazioni del firewall.
 
       Se il criterio viene impostato su Disattivato, non viene disattivato l'accesso remoto, ma sono consentite soltanto connessioni dalla stessa rete (non da NAT Traversal o relay).</translation>
+<translation id="5897234314586602143">Mostra intestazioni e piè di pagina nell'anteprima di stampa</translation>
 <translation id="5897913798715600338">Carica la batteria con la tecnologia di ricarica veloce.</translation>
 <translation id="5898486742390981550">Quando più utenti eseguono l'accesso, solo l'utente principale può utilizzare le app Android.</translation>
 <translation id="5899751601113377553">Impedisci agli utenti di usare <ph name="LACROS_NAME" /></translation>
@@ -5069,6 +5084,13 @@
 <translation id="6478258366184919502">Origini della schermata di accesso</translation>
 <translation id="6478261301433199402">La configurazione del criterio consente di specificare l'immagine <ph name="PLUGIN_VM_NAME" /> per un utente. È necessario specificare il criterio come stringa in formato JSON, con <ph name="URL_PLUGIN_VM_IMAGE_FIELD" /> che specifica da dove viene scaricata l'immagine e l'hash SHA-256 <ph name="HASH_PLUGIN_VM_IMAGE_FIELD" /> utilizzato per verificare l'integrità del download.</translation>
 <translation id="6481245670325946423">È consentito l'uso della modalità headless</translation>
+<translation id="648158446793103284">Se il criterio viene impostato, gli utenti possono scegliere uno dei metodi di immissione per le sessioni <ph name="PRODUCT_OS_NAME" /> specificate.
+
+       Se il criterio non viene configurato o se è impostato su un elenco vuoto, gli utenti possono selezionare tutti i metodi di immissione supportati.
+
+       A partire dalla versione M106, i metodi di immissione consentiti vengono attivati automaticamente nella sessione kiosk.
+
+      Nota: se il metodo di immissione corrente non è supportato, il criterio passa automaticamente al layout della tastiera hardware (se consentito) o alla prima voce valida in questo elenco. I metodi non supportati o non validi vengono ignorati.</translation>
 <translation id="6489084406497912050">Consente di stabilire se gli utenti possono o meno aggiungere account Kerberos.
 
           Se questo criterio viene attivato o se non viene configurato, gli utenti possono aggiungere account Kerberos tramite le impostazioni relative agli account Kerberos nella pagina di impostazioni Kerberos. Gli utenti hanno il controllo completo degli account che hanno aggiunto e possono modificarli o rimuoverli.
@@ -5297,6 +5319,7 @@
       Se questo criterio viene impostato su False, viene applicata la visualizzazione dell'URL predefinita.
       Se questo criterio non viene configurato, viene applicata la visualizzazione dell'URL predefinita e l'utente può passare dalla visualizzazione predefinita all'URL completo e viceversa tramite un menu contestuale.
       </translation>
+<translation id="6670794785040100077">Disattiva l'invio di documenti a <ph name="CLOUD_PRINT_NAME" /></translation>
 <translation id="6672070613706645316">Consenti agli utenti di personalizzare lo sfondo della pagina Nuova scheda</translation>
 <translation id="6672630473862787247">Attiva l'autenticazione ambientale nelle sessioni standard, Ospite e in modalità in incognito.</translation>
 <translation id="6685903773201985073">Attiva l'autenticazione ambientale nelle sessioni standard e Ospite.</translation>
@@ -5384,6 +5407,7 @@
       Se il criterio <ph name="DEFAULT_SEARCH_PROVIDER_SEARCH_URL_POST_PARAMS_POLICY_NAME" /> non viene configurato, le richieste di ricerca vengono inviate utilizzando il metodo Get.</translation>
 <translation id="6757613329154374267">Backup e ripristino attivato</translation>
 <translation id="6758659208493449452">Questo criterio consente di stabilire se gli utenti registrati al programma di protezione avanzata ricevono o meno ulteriori livelli di protezione. Alcune di queste funzionalità potrebbero prevedere la condivisione di dati con Google (ad esempio, gli utenti che usano la protezione avanzata potranno inviare i propri download a Google per verificare l'eventuale presenza di malware). Se questo criterio viene impostato su True o non viene impostato, gli utenti registrati al programma riceveranno ulteriori livelli di protezione. Se viene impostato su False, gli utenti che usano la protezione avanzata riceveranno soltanto le funzionalità standard per i consumatori.</translation>
+<translation id="6763023079133439068">Consenti i certificati privi di un'estensione subjectAlternativeName se sono stati emessi da trust anchor locali</translation>
 <translation id="6766216162565713893">Consenti ai siti di chiedere all'utente di concedere l'accesso a un dispositivo Bluetooth nelle vicinanze.</translation>
 <translation id="6770454900105963262">Segnala informazioni sulle sessioni kiosk attive</translation>
 <translation id="6782977971207381602">Se il criterio viene impostato su Attivato, al dispositivo viene consentito di eseguire macchine virtuali su <ph name="PRODUCT_OS_NAME" />. I criteri <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> e <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> devono essere impostati su Attivato per utilizzare <ph name="PRODUCT_CROSTINI_NAME" />. Se il criterio viene impostato su Disattivato, significa che il dispositivo non può eseguire macchine virtuali. Impostando il criterio su Disattivato, questo viene applicato all'avvio di nuove macchine virtuali, non a quelle già in esecuzione.
@@ -6006,6 +6030,7 @@
 <translation id="7458437477941640506">Non eseguire il rollback alla versione target se la versione del sistema operativo è più nuova del target. Anche gli aggiornamenti sono disattivati.</translation>
 <translation id="7459601923199346224">Consente di controllare i criteri relativi agli utenti e ai dispositivi per la gestione dei certificati.</translation>
 <translation id="7459633275230216698">Consenti finestre di dialogo per la selezione di file</translation>
+<translation id="7464058117970792805">Attiva anteprima di stampa</translation>
 <translation id="7464991223784276288">Limita i cookie degli URL corrispondenti alla sessione corrente</translation>
 <translation id="7468182772656807573">Questo criterio consente di stabilire la frequenza di invio, in millisecondi, dei pacchetti di rete di monitoraggio. Gli intervalli sono compresi tra 30 secondi e 24 ore. I valori che non rientrano in questo intervallo verranno fatti rientrare nei limiti.
 
@@ -6383,6 +6408,7 @@
 <translation id="7823902813460802031">Se il criterio viene impostato su Attivato, <ph name="PRODUCT_OS_NAME" /> impedisce al dispositivo di avviare la modalità sviluppatore.
 
        Se il criterio viene impostato su Disattivato o se non viene configurato, la modalità sviluppatore continua a essere disponibile per il dispositivo.</translation>
+<translation id="7824000841504721945">Disattiva gruppi atomici di criteri</translation>
 <translation id="782661371433719637">Non consentire a nessun sito di richiedere l'accesso di lettura di file e directory tramite l'API file system</translation>
 <translation id="7827127381981620448">App della piattaforma</translation>
 <translation id="7833148823006528332">Identificatore dell'app Android, ad esempio "com.google.android.gm" per Gmail.</translation>
@@ -6468,6 +6494,7 @@
 <translation id="793473937901685727">Imposta la disponibilità dei certificati per le app ARC</translation>
 <translation id="7936302526928951356">La stringa dello user agent non bloccherà la versione principale.</translation>
 <translation id="7937766917976512374">Consenti o nega acquisizione video</translation>
+<translation id="7941528208359969119">Consenti l'esecuzione dei controlli <ph name="OCSP_CRL_LABEL" /> online</translation>
 <translation id="7941975817681987555">Non prevedere le azioni di rete su qualsiasi connessione di rete</translation>
 <translation id="7946350455013548764">Se il criterio viene impostato su 3, i siti web possono richiedere l'accesso ai dispositivi HID. Se il criterio viene impostato su 2, viene negato l'accesso ai dispositivi HID.
 
@@ -6844,6 +6871,7 @@
 
       Se il criterio <ph name="DEFAULT_SEARCH_PROVIDER_IMAGE_URL_POST_PARMS_POLICY_NAME" /> non viene configurato, la richiesta di ricerca di immagini viene inviata utilizzando il metodo Get.</translation>
 <translation id="8314214821702356835">Permette di consentire agli utenti di riprodurre contenuti multimediali con il dispositivo bloccato</translation>
+<translation id="8316940611391250886">Non consentire i certificati privi di un'estensione subjectAlternativeName</translation>
 <translation id="8319678975002906774">Imposta valori Managed Configuration per siti web corrispondenti a origini specifiche</translation>
 <translation id="8320149248919453401">Modalità di carica della batteria</translation>
 <translation id="8327651196906278510">Consenti acquisizione schede in base a queste origini</translation>
@@ -7586,6 +7614,7 @@
 <translation id="9135033364005346124">Attiva proxy <ph name="CLOUD_PRINT_NAME" /></translation>
 <translation id="9136212796239682721">Disattiva l'UI del fumetto dei download</translation>
 <translation id="9136399279941091445">Intervalli di orari di minore attività quando vengono rilasciati i criteri del dispositivo specificati</translation>
+<translation id="9148720248753722892">Non consentire i certificati con firma SHA-1</translation>
 <translation id="9150416707757015439">Questa norma è obsoleta. Utilizza IncognitoModeAvailability. Consente di attivare la modalità di navigazione in incognito in <ph name="PRODUCT_NAME" />. Se questa impostazione viene attivata o non viene configurata, gli utenti potranno aprire le pagine web in modalità di navigazione in incognito. Se l'impostazione viene disattivata, gli utenti non potranno aprire le pagine web in modalità di navigazione in incognito. Se questa norma non viene impostata, l'impostazione verrà attivata e gli utenti potranno utilizzare la modalità di navigazione in incognito.</translation>
 <translation id="9152473318295429890">Attiva i suggerimenti contestuali delle pagine web correlate</translation>
 <translation id="9153446010242995516">Esegui il rollback e rimani nella versione target se la versione del sistema operativo è più recente di quella target. Prova a trasferire la configurazione a livello di dispositivo (incluse le credenziali di rete) tramite la procedura di rollback, se possibile, ma esegui il rollback con Powerwash completo anche se il ripristino dei dati non è possibile (perché la versione target non supporta il ripristino dei dati o a causa di una modifica non compatibile con le versioni precedenti).
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 06cfa77..66f63a2 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -263,6 +263,7 @@
       정책을 설정하지 않거나 대체 값이 유효한 호스트 이름이 아닌 경우 DHCP 요청에서 호스트 이름이 설정되지 않습니다.</translation>
 <translation id="1257550411839719984">기본 다운로드 디렉터리 설정</translation>
 <translation id="1265053460044691532">SAML을 통해 인증한 사용자가 오프라인에서 로그인할 수 있는 기간을 제한</translation>
+<translation id="1271811620059192171">정책 전체 그룹 사용 설정</translation>
 <translation id="127264587838521316"><ph name="PRODUCT_NAME" /> 확장 프로그램 설치 요청 사용</translation>
 <translation id="1272798957154751008">Chromad 기기를 클라우드 관리로 이전할 수 있도록 합니다.</translation>
 <translation id="1274997165432133392">쿠키 및 기타 사이트 데이터</translation>
@@ -2888,6 +2889,7 @@
       정책을 사용 안함으로 설정하거나 설정하지 않으면 자동 선택과 일치하는 인증서가 없을 때만 사용자에게 메시지가 표시됩니다.</translation>
 <translation id="3950110092991281616">일반 세션에서만 수동 인증을 사용 설정합니다.</translation>
 <translation id="3950239119790560549">시간제한 업데이트</translation>
+<translation id="3956243291190637924">인쇄 미리보기에서 머리글 및 바닥글 숨기기</translation>
 <translation id="3956573780915784996">사용자가 시스템 전체의 성능 흔적을 수집하도록 허용</translation>
 <translation id="3956686688560604829">이전 브라우저 지원에 Internet Explorer의 SiteList 정책을 사용합니다.</translation>
 <translation id="3958586912393694012">Smart Lock 사용 허용</translation>
@@ -3136,6 +3138,16 @@
       정책을 '사용 안함'으로 설정하거나 설정하지 않으면 모바일 데이터에 연결되어 있을 때도 사용자가 드라이브로 파일을 전송하도록 허용합니다.</translation>
 <translation id="4248277954659222481">URL 패턴의 허용 목록에서 미디어 자동 재생 허용</translation>
 <translation id="4250680216510889253">아니요</translation>
+<translation id="4259636715493757956"><ph name="WEBVIEW_PRODUCT_NAME" />에서 인증 URL 구성을 지정할 수 있습니다.
+
+      이러한 인증 URL은 <ph name="WEBVIEW_PRODUCT_NAME" />에 의해 특별하게 처리됩니다. 즉, 인증 과정 중 <ph name="WEBVIEW_PRODUCT_NAME" />에 표시되는 웹페이지에서 인증 URL로 리디렉션되면 이 인증 URL을 처리할 수 있는 해당 ID 공급업체의 OTP 앱이 실행됩니다.
+
+      ID 공급업체에서는 이러한 OTP 앱 실행 흐름을 사용해 다양한 앱에서 SSO를 제공하는 사용 사례를 지원하거나 인증 중 제로 트러스트 기기 신호를 수집하여 기기 상태를 파악함으로써 보안을 강화합니다.
+
+      인증 URL을 처리할 수 있는 유효한 앱이 기기에 설치되어 있지 않으면 <ph name="WEBVIEW_PRODUCT_NAME" />에서 탐색이 계속됩니다.
+
+      인증 URL 패턴은 https://www.chromium.org/administrators/url-blocklist-filter-format에 따라 형식이 지정되어야 합니다.
+      </translation>
 <translation id="4260027436474745627">정책을 설정하면 쉼표로 구분된 목록의 이름이 지정된 각 출처가 전용 프로세스로 실행됩니다. 이름이 지정된 각 출처의 프로세스에는 해당 출처와 하위 도메인의 문서만 포함될 수 있습니다. 예를 들어 https://a1.example.com/을 지정하면 동일한 프로세스에는 https://a2.a1.example.com/만 허용되며 https://example.com 또는 https://b.example.com은 허용되지 않습니다.
 
       <ph name="PRODUCT_NAME" /> 77부터 와일드 카드를 사용해 격리할 출처의 범위를 지정할 수도 있습니다. 예를 들어 https://[*.]corp.example.com을 지정하면 https://corp.example.com 자체와 https://a1.corp.example.com, https://a2.a1.corp.example.com 등 https://corp.example.com에 속한 모든 출처에 전용 프로세스가 제공됩니다.
@@ -3276,6 +3288,7 @@
 <translation id="4432762137771104529">세이프 브라우징 확장 보고 사용 설정</translation>
 <translation id="443454694385851356">이전(안전하지 않음)</translation>
 <translation id="443665821428652897">브라우저 종료 시 사이트 데이터 지우기(지원 중단)</translation>
+<translation id="4436941175475497595">인쇄 미리보기 사용 안함</translation>
 <translation id="4439336120285389675">지원 중단된 웹 플랫폼 기능 중 일시적으로 다시 사용 설정할 기능을 지정합니다.
 
       이 정책을 사용하면 관리자는 지원 중단된 웹 플랫폼 기능을 일시적으로 다시 사용 설정할 수 있습니다. 기능은 문자열 태그에 의해 식별되며 이 정책에 의해 지정된 목록에 있는 태그와 일치하는 기능은 다시 사용 설정됩니다.
@@ -4321,6 +4334,7 @@
       참고: 서로 다른 서버 이름은 쉼표로 구분하세요. 와일드 카드(<ph name="WILDCARD_VALUE" />)를 사용할 수 있습니다.</translation>
 <translation id="5645779841392247734">이 사이트에서 쿠키 허용</translation>
 <translation id="5646234199535103501">OnBulkDataEntry Chrome Enterprise 커넥터 설정 정책</translation>
+<translation id="5648016151508002741">온라인 <ph name="OCSP_CRL_LABEL" /> 검사 수행 안함</translation>
 <translation id="5649046890958064703"><ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />에 <ph name="PRINTERS_BLACKLIST" />을 선택할 경우 <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" />를 설정하면 사용자가 사용할 수 없는 프린터가 지정됩니다. ID가 이 정책에 명시된 프린터를 제외한 모든 프린터가 사용자에게 제공됩니다. ID는 <ph name="DEVICE_PRINTERS_POLICY_NAME" />에 지정된 파일의 <ph name="ID_FIELD" /> 또는 <ph name="GUID_FIELD" /> 필드와 일치해야 합니다.
 
       이 정책은 지원 중단되었으므로 <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> 정책을 대신 사용하세요.</translation>
@@ -4586,6 +4600,7 @@
 <translation id="5893303508158298667"><ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" />이 사용 설정된 경우 <ph name="REMOTE_ACCESS_HOST_ALLOW_RELAYED_CONNECTION_POLICY_NAME" />을 사용 설정하거나 설정하지 않으면 방화벽 제한 등으로 인해 직접 연결이 불가능할 때 원격 클라이언트를 사용하여 릴레이 서버를 통해 이 컴퓨터에 연결할 수 있게 됩니다.
 
       정책을 사용 중지해도 원격 액세스는 사용 중지되지 않지만 NAT 순회 또는 릴레이가 아닌 같은 네트워크에서의 연결만 허용됩니다.</translation>
+<translation id="5897234314586602143">인쇄 미리보기에 머리글 및 바닥글 표시</translation>
 <translation id="5897913798715600338">급속 충전 기술을 사용하여 배터리를 충전합니다.</translation>
 <translation id="5898486742390981550">여러 사용자가 로그인한 경우 기본 사용자만 Android 앱을 사용할 수 있습니다.</translation>
 <translation id="5899751601113377553">사용자가 <ph name="LACROS_NAME" />를 사용하지 못하도록 차단</translation>
@@ -5094,6 +5109,13 @@
 <translation id="6478258366184919502">로그인 및 화면 원점</translation>
 <translation id="6478261301433199402">정책을 설정하면 사용자를 위한 <ph name="PLUGIN_VM_NAME" /> 이미지가 지정됩니다. 이 정책을 JSON 형식 스트링으로 지정하세요. 이때 <ph name="URL_PLUGIN_VM_IMAGE_FIELD" /> 필드에는 이미지 다운로드 위치를 명시하고 <ph name="HASH_PLUGIN_VM_IMAGE_FIELD" /> 필드에는 SHA-256 해시를 지정하여 다운로드 파일의 무결성을 확인하는 데 사용되도록 합니다.</translation>
 <translation id="6481245670325946423">헤드리스 모드 사용 허용</translation>
+<translation id="648158446793103284">정책을 설정하면 사용자가 지정한 <ph name="PRODUCT_OS_NAME" /> 세션의 입력 방법 중 하나를 선택할 수 있습니다.
+
+       설정하지 않거나 빈 목록으로 설정하면 사용자가 지원되는 모든 입력 방법을 선택할 수 있습니다.
+
+       버전 M106부터는 허용된 입력 방법이 키오스크 세션에서 자동으로 사용 설정됩니다.
+
+      참고: 현재 입력 방법이 지원되지 않으면 하드웨어 키보드 레이아웃(허용되는 경우) 또는 이 목록에서 가장 처음 유효한 항목으로 전환됩니다. 잘못되었거나 지원되지 않는 방법은 무시됩니다.</translation>
 <translation id="6489084406497912050">사용자의 Kerberos 계정 추가 여부를 제어합니다.
 
           정책이 사용 중지되거나 설정되지 않으면 사용자가 Kerberos 설정 페이지의 Kerberos 계정 설정을 통해 Kerberos 계정을 추가할 수 있습니다. 사용자는 자신이 추가한 계정을 완전히 제어할 수 있으며 수정하거나 삭제할 수도 있습니다.
@@ -5322,6 +5344,7 @@
       정책을 False로 설정하면 기본 URL 표시가 적용됩니다.
       정책을 설정하지 않으면 기본 URL 표시가 적용되며 사용자는 컨텍스트 메뉴 옵션에서 기본 URL 표시와 전체 URL 표시 간에 전환할 수 있습니다.
       </translation>
+<translation id="6670794785040100077"><ph name="CLOUD_PRINT_NAME" />에 문서 제출 사용 안함</translation>
 <translation id="6672070613706645316">사용자가 새 탭 페이지의 배경을 맞춤설정하도록 허용</translation>
 <translation id="6672630473862787247">일반, 시크릿 모드, 게스트 세션에서 수동 인증을 사용 설정합니다.</translation>
 <translation id="6685903773201985073">게스트 세션과 일반 세션에서 수동 인증을 사용 설정합니다.</translation>
@@ -5409,6 +5432,7 @@
       <ph name="DEFAULT_SEARCH_PROVIDER_SEARCH_URL_POST_PARAMS_POLICY_NAME" />를 설정하지 않으면 GET 메서드를 사용해 검색 요청이 전송됩니다.</translation>
 <translation id="6757613329154374267">백업 및 복원 사용 설정됨</translation>
 <translation id="6758659208493449452">이 정책은 고급 보호 프로그램에 등록한 사용자에게 추가 보호를 제공할지 결정합니다. 추가 기능 중 일부를 사용하려면 Google과 데이터를 공유해야 합니다. 예를 들어, 고급 보호 사용자가 멀웨어 검사를 위해 다운로드 항목을 Google에 전송할 수 있습니다. 정책을 True로 설정하거나 설정하지 않으면 등록된 사용자에게 추가 보호가 제공됩니다. False로 설정하면 고급 보호 사용자에게 표준 소비자 기능만 제공됩니다.</translation>
+<translation id="6763023079133439068">로컬 신뢰 앵커에서 발급할 때 subjectAlternativeName 확장이 없는 인증서 허용</translation>
 <translation id="6766216162565713893">사이트에서 사용자에게 근처 블루투스 기기에 대한 액세스 권한을 부여할 것인지 묻도록 허용합니다.</translation>
 <translation id="6770454900105963262">활성 키오스크 세션에 관한 정보 보고</translation>
 <translation id="6782977971207381602">정책을 사용으로 설정하면 기기가 <ph name="PRODUCT_OS_NAME" />에서 가상 머신을 실행할 수 있습니다. <ph name="PRODUCT_CROSTINI_NAME" />를 사용하려면 <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> 및 <ph name="CROSTINI_ALLOWED_POLICY_NAME" />가 사용 설정되어 있어야 합니다. 사용 안함으로 설정하면 기기에서 가상 머신을 실행할 수 없습니다. 사용 안함으로 변경하면 기존에 실행 중이던 가상 머신이 아닌 새로 시작되는 가상 머신에 정책 적용이 시작됩니다.
@@ -6033,6 +6057,7 @@
 <translation id="7458437477941640506">OS 버전이 대상 버전보다 높은 경우 대상 버전으로 롤백하지 않습니다. 이 경우 업데이트도 사용 중지됩니다.</translation>
 <translation id="7459601923199346224">인증서 관리를 위한 사용자 및 기기 정책을 관리합니다.</translation>
 <translation id="7459633275230216698">파일 선택 대화상자 허용</translation>
+<translation id="7464058117970792805">인쇄 미리보기 사용 설정</translation>
 <translation id="7464991223784276288">일치하는 URL의 쿠키를 현재 세션으로 제한</translation>
 <translation id="7468182772656807573">정책을 설정하면 모니터링 네트워크 패킷을 전송할 빈도를 밀리초 단위로 결정할 수 있습니다. 간격은 30초부터 24시간 범위이며 이 범위를 벗어나는 값은 범위에 들어가도록 조정됩니다.
 
@@ -6410,6 +6435,7 @@
 <translation id="7823902813460802031">이 정책을 사용으로 설정하면 <ph name="PRODUCT_OS_NAME" />에서 기기가 개발자 모드로 전환되지 못하게 합니다.
 
        사용 안함으로 설정하거나 설정하지 않으면 기기에서 계속 개발자 모드를 사용할 수 있습니다.</translation>
+<translation id="7824000841504721945">정책 전체 그룹 사용 안함</translation>
 <translation id="782661371433719637">모든 사이트에서 File System API를 통한 파일 및 디렉터리 읽기 액세스 권한을 요청하지 못하도록 차단</translation>
 <translation id="7827127381981620448">플랫폼 앱</translation>
 <translation id="7833148823006528332">Android 앱 식별자(예: Gmail의 경우 'com.google.android.gm')입니다.</translation>
@@ -6495,6 +6521,7 @@
 <translation id="793473937901685727">ARC 앱에 인증서 사용 가능 여부 설정</translation>
 <translation id="7936302526928951356">메이저 버전에서는 사용자 에이전트 문자열이 고정되지 않습니다.</translation>
 <translation id="7937766917976512374">동영상 캡처 허용 또는 거부</translation>
+<translation id="7941528208359969119">온라인 <ph name="OCSP_CRL_LABEL" /> 검사 수행 허용</translation>
 <translation id="7941975817681987555">모든 네트워크 연결의 네트워크 활동 예측 안함</translation>
 <translation id="7946350455013548764">이 정책을 3으로 설정하면 웹사이트에서 HID 기기 액세스를 요청할 수 있습니다. 정책을 2로 설정하면 HID 기기 액세스가 거부됩니다.
 
@@ -6877,6 +6904,7 @@
 
       <ph name="DEFAULT_SEARCH_PROVIDER_IMAGE_URL_POST_PARMS_POLICY_NAME" />를 설정하지 않으면 GET 메서드를 사용해 이미지 검색 요청이 전송됩니다.</translation>
 <translation id="8314214821702356835">기기가 잠겨 있어도 사용자가 미디어를 재생할 수 있도록 허용합니다.</translation>
+<translation id="8316940611391250886">subjectAlternativeName 확장이 없는 인증서 허용 안함</translation>
 <translation id="8319678975002906774">특정 웹사이트에 대한 관리형 구성을 특정 원본으로 설정합니다.</translation>
 <translation id="8320149248919453401">배터리 충전 모드</translation>
 <translation id="8327651196906278510">출처의 탭 캡처 허용</translation>
@@ -7627,6 +7655,7 @@
 <translation id="9135033364005346124"><ph name="CLOUD_PRINT_NAME" /> 프록시 사용</translation>
 <translation id="9136212796239682721">다운로드 도움말 풍선 UI 사용 중지</translation>
 <translation id="9136399279941091445">특정 기기 정책이 공개되었을 때 Off hours 간격</translation>
+<translation id="9148720248753722892">SHA-1 서명 인증서 허용 안함</translation>
 <translation id="9150416707757015439">이 정책은 사용되지 않습니다. 대신 IncognitoModeAvailability를 사용하세요.
       <ph name="PRODUCT_NAME" />에서 시크릿 모드를 사용할 수 있도록 설정합니다.
 
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index 01a54608..b599471 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -258,6 +258,7 @@
       Als je het beleid niet instelt of als de waarde na vervanging geen geldige hostnaam is, wordt er geen hostnaam ingesteld in het DHCP-verzoek.</translation>
 <translation id="1257550411839719984">Standaardmap voor downloads instellen</translation>
 <translation id="1265053460044691532">De offline inlogtijd beperken voor een gebruiker die is geverifieerd via SAML</translation>
+<translation id="1271811620059192171">Atomische beleidsgroepen aanzetten</translation>
 <translation id="127264587838521316">Hiermee worden installatieverzoeken voor <ph name="PRODUCT_NAME" />-extensies aangezet</translation>
 <translation id="1272798957154751008">De migratie van Chromad-apparatten naar cloudbeheer aanzetten</translation>
 <translation id="1274997165432133392">Cookies en andere sitegegevens</translation>
@@ -2840,6 +2841,7 @@
       Als je dit beleid niet toepast of niet instelt, wordt de gebruiker misschien alleen gevraagd een clientcertificaat te selecteren als geen enkel certificaat overeenkomt met de automatische selectie.</translation>
 <translation id="3950110092991281616">Ambient-verificatie alleen in normale sessies aanzetten.</translation>
 <translation id="3950239119790560549">Tijdsbeperkingen voor updates</translation>
+<translation id="3956243291190637924">Kop- en voetteksten verbergen in afdrukvoorbeeld</translation>
 <translation id="3956573780915784996">Toestaan dat gebruikers een prestatietracering voor het hele systeem verzamelen.</translation>
 <translation id="3956686688560604829">Gebruik het SiteList-beleid van Internet Explorer voor ondersteuning voor oudere browsers.</translation>
 <translation id="3958586912393694012">Toestaan dat Smart Lock wordt gebruikt</translation>
@@ -3076,6 +3078,16 @@
       Als je het beleid niet toepast of niet instelt, kunnen gebruikers bestanden overzetten naar Drive via een mobiele verbinding.</translation>
 <translation id="4248277954659222481">Automatisch afspelen van media toestaan op een toelatingslijst met URL-patronen</translation>
 <translation id="4250680216510889253">Nee</translation>
+<translation id="4259636715493757956">Hiermee kun je instellingen voor verificatie-URL's opgeven in <ph name="WEBVIEW_PRODUCT_NAME" />.
+
+      Deze verificatie-URL's worden speciaal behandeld door <ph name="WEBVIEW_PRODUCT_NAME" />. Als je tijdens de verificatie een webpagina in <ph name="WEBVIEW_PRODUCT_NAME" /> bezoekt via verificatie-URL's, wordt bijvoorbeeld de authenticator-app van de overeenkomende identiteitsprovider gelanceerd die deze verificatie-URL kan verwerken.
+
+      Het proces voor de lancering van de authenticator-app van de identiteitsprovider wordt door identiteitsproviders gebruikt om toepassingen mogelijk te maken zoals SSO in apps bieden of betere beveiliging leveren door signalen van veilige apparaten te verzamelen voor meer inzicht in de toestand van het apparaat tijdens verificatie.
+
+      Als er geen geldige app voor de verwerking van verificatie-URL's is geïnstalleerd op het apparaat, gaat de navigatie verder in <ph name="WEBVIEW_PRODUCT_NAME" />.
+
+      Het patroon voor verificatie-URL's moet worden opgemaakt volgens https://www.chromium.org/administrators/url-blocklist-filter-format.
+      </translation>
 <translation id="4260027436474745627">Als je dit beleid toepast, wordt elk van de benoemde herkomsten in een door komma's gescheiden lijst uitgevoerd in een eigen proces. Elk proces van een benoemde herkomst mag alleen documenten bevatten van de betreffende herkomst en de subdomeinen daarvan. Als je bijvoorbeeld https://a1.example.com/ opgeeft, valt https://a2.a1.example.com/ onder hetzelfde proces, maar https://example.com of https://b.example.com niet.
 
 Sinds <ph name="PRODUCT_NAME" /> 77 kun je met een jokerteken een herkomstbereik opgeven om te isoleren. Als je bijvoorbeeld https://[*.]corp.example.com opgeeft, wordt elke herkomst onder https://corp.example.com uitgevoerd in een eigen proces, waaronder https://corp.example.com zelf, https://a1.corp.example.com en https://a2.a1.corp.example.com.
@@ -3216,6 +3228,7 @@
 <translation id="4432762137771104529">Uitgebreide rapportage van Safe Browsing aanzetten</translation>
 <translation id="443454694385851356">Verouderd (onbeveiligd)</translation>
 <translation id="443665821428652897">Sitegegevens wissen als de browser wordt gesloten (verouderd)</translation>
+<translation id="4436941175475497595">Afdrukvoorbeeld uitzetten</translation>
 <translation id="4439336120285389675">Geef een lijst met verouderde webplatformfuncties op die tijdelijk kunnen worden aangezet.
 
       Met dit beleid kunnen beheerders verouderde webplatformfuncties tijdelijk opnieuw aanzetten. De functies worden geïdentificeerd door een stringtag. De functies die horen bij de tags die zijn opgenomen in de lijst die dit beleid heeft aangegeven, worden opnieuw aangezet.
@@ -4257,6 +4270,7 @@
       Opmerking: Gebruik bij meerdere servernamen een komma als scheidingsteken. Jokertekens (<ph name="WILDCARD_VALUE" />) zijn toegestaan.</translation>
 <translation id="5645779841392247734">Cookies toestaan op deze sites</translation>
 <translation id="5646234199535103501">Configuratiebeleid voor de Chrome Enterprise Connector OnBulkDataEntry</translation>
+<translation id="5648016151508002741">Voorkomen dat online <ph name="OCSP_CRL_LABEL" />-checks worden uitgevoerd</translation>
 <translation id="5649046890958064703">Als <ph name="PRINTERS_BLACKLIST" /> wordt gekozen voor <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, kun je door <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" /> in te stellen aangeven welke printers gebruikers niet kunnen gebruiken. Alle printers zijn beschikbaar voor gebruikers, behalve de ID's in dit beleid. De ID's moeten overeenkomen met het veld <ph name="ID_FIELD" /> of <ph name="GUID_FIELD" /> in het bestand dat is opgegeven in <ph name="DEVICE_PRINTERS_POLICY_NAME" />.
 
       Dit beleid is verouderd. Gebruik in plaats daarvan <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />.</translation>
@@ -4501,6 +4515,7 @@
 <translation id="5893303508158298667">Als je <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> hebt toegepast en <ph name="REMOTE_ACCESS_HOST_ALLOW_RELAYED_CONNECTION_POLICY_NAME" /> toepast of niet instelt, kunnen externe clients relayservers gebruiken om verbinding met dit apparaat te maken als er geen rechtstreekse verbinding beschikbaar is (bijvoorbeeld vanwege firewallbeperkingen).
 
       Als je het beleid niet toepast, wordt externe toegang niet uitgezet, maar zijn alleen verbindingen vanuit hetzelfde netwerk toegestaan (geen NAT-traversal of -relay).</translation>
+<translation id="5897234314586602143">Kop- en voetteksten tonen in afdrukvoorbeeld</translation>
 <translation id="5897913798715600338">Batterij snel opladen.</translation>
 <translation id="5898486742390981550">Wanneer meerdere gebruikers zijn ingelogd, kunnen Android-apps alleen worden gebruikt door de primaire gebruiker.</translation>
 <translation id="5899751601113377553">Voorkomen dat gebruikers <ph name="LACROS_NAME" /> gebruiken</translation>
@@ -5003,6 +5018,13 @@
 <translation id="6478258366184919502">Herkomsten van login en scherm</translation>
 <translation id="6478261301433199402">Als je het beleid instelt, wordt de <ph name="PLUGIN_VM_NAME" />-image voor een gebruiker opgegeven. Geef dit beleid op als een tekenreeks met json-indeling, waarbij <ph name="URL_PLUGIN_VM_IMAGE_FIELD" /> aangeeft waar de image kan worden gedownload en <ph name="HASH_PLUGIN_VM_IMAGE_FIELD" /> als een SHA-256-hash die wordt gebruikt om de integriteit van de download te verifiëren.</translation>
 <translation id="6481245670325946423">Gebruik van de stand zonder interface toestaan</translation>
+<translation id="648158446793103284">Als je het beleid instelt, kunnen gebruikers een van de invoermethoden voor <ph name="PRODUCT_OS_NAME" />-sessies kiezen die je opgeeft.
+
+       Als je het beleid niet instelt of instelt op een lege lijst, kunnen gebruikers alle ondersteunde invoermethoden selecteren.
+
+       Vanaf versie M106 worden toegestane invoermethoden automatisch aangezet in kiosksessies.
+
+      Opmerking: Als de huidige invoermethode niet wordt ondersteund, wordt de invoermethode overgeschakeld naar het hardwaretoetsenbord (indien toegestaan) of het eerste geldige item in deze lijst. Ongeldige of niet-ondersteunde methoden worden genegeerd.</translation>
 <translation id="6489084406497912050">Bepaalt of gebruikers Kerberos-accounts mogen toevoegen.
 
           Als je dit beleid toepast of niet instelt, mogen gebruikers Kerberos-accounts toevoegen via de instellingen voor Kerberos-accounts op de pagina Kerberos-instellingen. Gebruikers hebben het volledige beheer over accounts die ze hebben toegevoegd en kunnen deze aanpassen of verwijderen.
@@ -5230,6 +5252,7 @@
       Als je dit beleid instelt op True, is de volledige URL zichtbaar in de adresbalk, inclusief schema's en subdomeinen.
       Als je dit beleid instelt op False, wordt de standaard URL-weergave toegepast.
       Als je dit beleid niet instelt, wordt de standaard URL-weergave toegepast. Via een optie in het contextmenu kan de gebruiker schakelen tussen de standaard en volledige URL-weergave.</translation>
+<translation id="6670794785040100077">Indienen van documenten bij <ph name="CLOUD_PRINT_NAME" /> uitzetten</translation>
 <translation id="6672070613706645316">Gebruikers toestaan de achtergrond van de pagina 'Nieuw tabblad' aan te passen</translation>
 <translation id="6672630473862787247">Ambient-verificatie in normale, incognito- en gastsessies aanzetten.</translation>
 <translation id="6685903773201985073">Ambient-verificatie in normale en gastsessies aanzetten.</translation>
@@ -5317,6 +5340,7 @@
       Als je <ph name="DEFAULT_SEARCH_PROVIDER_SEARCH_URL_POST_PARAMS_POLICY_NAME" /> niet instelt, worden zoekopdrachten gestuurd met de GET-methode.</translation>
 <translation id="6757613329154374267">Back-up en herstel is aangezet</translation>
 <translation id="6758659208493449452">Met dit beleid wordt bepaald of gebruikers die bij 'Geavanceerde beveiliging' zijn ingeschreven, extra beveiligingsmaatregelen ontvangen. Voor sommige van deze functies kunnen gegevens worden gedeeld met Google (gebruikers van 'Geavanceerde beveiliging' kunnen bijvoorbeeld hun downloads naar Google sturen om ze te scannen op malware). Als dit beleid is ingesteld op True of niet is ingesteld, ontvangen ingeschreven gebruikers extra beveiligingsmaatregelen. Als dit beleid is ingesteld op False, ontvangen gebruikers van 'Geavanceerde beveiliging' alleen de standaardfuncties voor consumenten.</translation>
+<translation id="6763023079133439068">Certificaten zonder de extensie subjectAlternativeName toestaan als deze worden uitgegeven door lokale vertrouwensankers</translation>
 <translation id="6766216162565713893">Toestaan dat sites de gebruiker vragen om toegang te verlenen tot een Bluetooth-apparaat in de buurt</translation>
 <translation id="6770454900105963262">Informatie over actieve kiosk-sessies melden</translation>
 <translation id="6782977971207381602">Als je dit beleid toepast, kan het apparaat virtuele machines uitvoeren op <ph name="PRODUCT_OS_NAME" />. <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> en <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> moeten aanstaan om <ph name="PRODUCT_CROSTINI_NAME" /> te gebruiken. Als je het beleid niet toepast, kan het apparaat geen virtuele machines uitvoeren. Als je het beleid niet toepast, wordt het beleid wel toegepast op startende nieuwe virtuele machines en niet op virtuele machines die al actief zijn.
@@ -5938,6 +5962,7 @@
 <translation id="7458437477941640506">Herstel de doelversie niet als de OS-versie nieuwer is dan de doelversie. Updates zijn ook uitgezet.</translation>
 <translation id="7459601923199346224">Beheert het gebruikers- en apparaatbeleid voor certificaatbeheer.</translation>
 <translation id="7459633275230216698">Dialoogvensters voor bestandsselectie toestaan</translation>
+<translation id="7464058117970792805">Afdrukvoorbeeld aanzetten</translation>
 <translation id="7464991223784276288">Cookies van overeenkomende URL's beperken tot de huidige sessie</translation>
 <translation id="7468182772656807573">Als je dit beleid instelt, geef je aan hoe vaak (in milliseconden) controlenetwerkpakketten moeten worden gestuurd. De intervallen variëren van 30 seconden tot 24 uur. Waarden buiten dit bereik worden aangepast aan dit bereik.
 
@@ -6314,6 +6339,7 @@
 <translation id="7823902813460802031">Als je dit beleid toepast, voorkomt <ph name="PRODUCT_OS_NAME" /> dat het apparaat in de ontwikkelaarsmodus gaat.
 
        Als je het beleid niet toepast of niet instelt, blijft de ontwikkelaarsmodus beschikbaar voor het apparaat.</translation>
+<translation id="7824000841504721945">Atomische beleidsgroepen uitzetten</translation>
 <translation id="782661371433719637">Geen sites toestemming geven om leestoegang tot bestanden of directory's te vragen via de File System API</translation>
 <translation id="7827127381981620448">Platform-app</translation>
 <translation id="7833148823006528332">Android-app-ID, bijvoorbeeld 'com.google.android.gm' voor Gmail</translation>
@@ -6399,6 +6425,7 @@
 <translation id="793473937901685727">Certificaatbeschikbaarheid instellen voor ARC-apps</translation>
 <translation id="7936302526928951356">De tekenreeks voor User-agent zet de hoofdversie niet vast.</translation>
 <translation id="7937766917976512374">Het opnemen van video's toestaan of weigeren</translation>
+<translation id="7941528208359969119">Toestaan dat online <ph name="OCSP_CRL_LABEL" />-checks worden uitgevoerd</translation>
 <translation id="7941975817681987555">Geen netwerkacties voorspellen voor een netwerkverbinding</translation>
 <translation id="7946350455013548764">Als je het beleid instelt op 3, kunnen websites toegang vragen tot HID-apparaten. Als je het beleid instelt op 2, wordt toegang tot HID-apparaten geweigerd.
 
@@ -6780,6 +6807,7 @@
 
       Als je <ph name="DEFAULT_SEARCH_PROVIDER_IMAGE_URL_POST_PARMS_POLICY_NAME" /> niet instelt, worden afbeeldingszoekopdrachten gestuurd met de GET-methode.</translation>
 <translation id="8314214821702356835">Hiermee kunnen gebruikers media afspelen wanneer het apparaat vergrendeld is</translation>
+<translation id="8316940611391250886">Certificaten zonder de extensie subjectAlternativeName niet toestaan</translation>
 <translation id="8319678975002906774">Stelt waarden voor beheerde configuraties voor websites in voor specifieke herkomsten</translation>
 <translation id="8320149248919453401">Batterijoplaadmodus</translation>
 <translation id="8327651196906278510">Tabbladopname door deze oorsprongen toestaan</translation>
@@ -7521,6 +7549,7 @@
 <translation id="9135033364005346124">Proxy voor <ph name="CLOUD_PRINT_NAME" /> gebruiken</translation>
 <translation id="9136212796239682721">Ballon-UI voor downloaden uitzetten</translation>
 <translation id="9136399279941091445">Intervallen buiten gebruikstijd wanneer het gespecificeerde apparaatbeleid wordt vrijgegeven</translation>
+<translation id="9148720248753722892">SHA-1-ondertekende certificaten niet toestaan</translation>
 <translation id="9150416707757015439">Dit beleid is verouderd. Gebruik in plaats hiervan IncognitoModeAvailability.
       Zet de incognitomodus in <ph name="PRODUCT_NAME" /> aan.
 
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index bc054d3..4c64eae 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -255,6 +255,7 @@
       Se a política não for definida ou se o valor pós-substituição não for um nome de host válido, nenhum nome de host será definido na solicitação de DHCP.</translation>
 <translation id="1257550411839719984">Definir diretório de download padrão</translation>
 <translation id="1265053460044691532">Limite o tempo pelo qual um usuário autenticado via SAML pode fazer login off-line</translation>
+<translation id="1271811620059192171">Ativar grupos atômicos de política</translation>
 <translation id="127264587838521316">Ativa as solicitações de instalação de extensões do <ph name="PRODUCT_NAME" /></translation>
 <translation id="1272798957154751008">Ativar a migração de dispositivos Chromad no gerenciamento de nuvem.</translation>
 <translation id="1274997165432133392">Cookies e outros dados do site</translation>
@@ -2878,6 +2879,7 @@
       Se esta política for definida como "Desativada" ou deixada sem definição, o usuário só receberá a solicitação quando nenhum certificado corresponder à seleção automática.</translation>
 <translation id="3950110092991281616">Ativar a autenticação pelo SO apenas em sessões normais.</translation>
 <translation id="3950239119790560549">Atualiza restrições de tempo</translation>
+<translation id="3956243291190637924">Ocultar cabeçalhos e rodapés na visualização de impressão</translation>
 <translation id="3956573780915784996">Permite que os usuários coletem o rastreamento de desempenho do sistema.</translation>
 <translation id="3956686688560604829">Usar a política SiteList do Internet Explorer para o Suporte a navegadores legados.</translation>
 <translation id="3958586912393694012">Permitir que o Smart Lock seja usado</translation>
@@ -3126,6 +3128,18 @@
       Se a política for definida como desativada ou não for definida, o usuário poderá transferir arquivos para o Drive mesmo em conexões celulares.</translation>
 <translation id="4248277954659222481">Permitir reprodução automática de mídia em uma lista de permissões de padrões de URL</translation>
 <translation id="4250680216510889253">Não</translation>
+<translation id="4259636715493757956">Permite que você especifique configurações para URLs de autenticação no <ph name="WEBVIEW_PRODUCT_NAME" />.
+
+      Esses URLs de autenticação seriam processados de forma especial pelo <ph name="WEBVIEW_PRODUCT_NAME" />. Assim, quando a página da Web no <ph name="WEBVIEW_PRODUCT_NAME" />
+      for direcionada a URLs de autenticação, apps autenticadores provedores de identidade correspondentes que podem processar esse URL vão ser inicializados.
+
+      Esse fluxo de inicialização do app autenticador de provedores de identidade seria usado para ativar
+      casos de uso, como ao fornecer SSO entre apps ou melhorar a segurança coletando indicadores de dispositivos de confiança zero para entender a postura deles durante a autenticação.
+
+      Se não houver um app válido instalado para processar o URL de autenticação no dispositivo, a navegação vai continuar no <ph name="WEBVIEW_PRODUCT_NAME" />.
+
+      O padrão do URL de autenticação precisa ser formatado de acordo com https://www.chromium.org/administrators/url-blocklist-filter-format.
+      </translation>
 <translation id="4260027436474745627">Se a política for definida, cada uma das origens indicadas em uma lista separada por vírgulas será executada no próprio processo. Cada processo de uma origem indicada só poderá conter documentos da origem em questão e dos subdomínios dela. Por exemplo, se https://a1.example.com/ for especificada, https://a2.a1.example.com/ será permitida no mesmo processo, mas https://example.com ou https://b.example.com não serão.
 
       Desde o <ph name="PRODUCT_NAME" /> 77, também é possível especificar um intervalo de origens isoladas usando um caractere curinga. Por exemplo, se https://[*.]corp.example.com for especificada, todas as origens abaixo de https://corp.example.com ganharão um processo dedicado, incluindo a própria https://corp.example.com, a https://a1.corp.example.com e a https://a2.a1.corp.example.com.
@@ -3266,6 +3280,7 @@
 <translation id="4432762137771104529">Ativar relatórios estendidos do Navegação segura</translation>
 <translation id="443454694385851356">Legado (não seguro)</translation>
 <translation id="443665821428652897">Remover dados do site ao fechar o navegador (obsoleto)</translation>
+<translation id="4436941175475497595">Desativar a visualização de impressão</translation>
 <translation id="4439336120285389675">Especificar uma lista de recursos de uso suspenso da plataforma Web para reativar temporariamente.
 
       Esta política permite que aos administradores reativem recursos de uso suspenso da plataforma Web por um período limitado. Os recursos são identificados por uma tag de string, e os que correspondem às tags incluídas na lista especificada por esta política são reativados.
@@ -4308,6 +4323,7 @@
       Observação: separe vários nomes de servidor usando vírgulas. Caracteres curinga (<ph name="WILDCARD_VALUE" />) são permitidos.</translation>
 <translation id="5645779841392247734">Permitir cookies nestes sites</translation>
 <translation id="5646234199535103501">Política de configuração para o conector OnBulkDataEntry do Chrome Enterprise</translation>
+<translation id="5648016151508002741">Impedir a realização de verificações on-line de <ph name="OCSP_CRL_LABEL" /></translation>
 <translation id="5649046890958064703">Se <ph name="PRINTERS_BLACKLIST" /> for escolhida para <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, a definição de <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" /> especificará quais impressoras os usuários não podem usar. Todas as impressoras estão disponíveis para os usuários, com exceção dos IDs listados nesta política. Os IDs precisam corresponder aos campos <ph name="ID_FIELD" /> ou <ph name="GUID_FIELD" /> no arquivo especificado na <ph name="DEVICE_PRINTERS_POLICY_NAME" />.
 
       Esta política está suspensa. Use a <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />.</translation>
@@ -4572,6 +4588,7 @@
 <translation id="5893303508158298667">Se a <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> for ativada, definir <ph name="REMOTE_ACCESS_HOST_ALLOW_RELAYED_CONNECTION_POLICY_NAME" /> como "Ativada" ou deixá-la sem definição permitirá que clientes remotos usem servidores de redirecionamento para se conectar a esta máquina quando uma conexão direta não estiver disponível (por exemplo, por conta de uma restrição de firewall).
 
       Se a política for desativada, o acesso remoto não será desativado, mas apenas conexões da mesma rede serão permitidas (e não conexões NAT transversal ou de redirecionamento).</translation>
+<translation id="5897234314586602143">Mostrar cabeçalhos e rodapés na visualização de impressão</translation>
 <translation id="5897913798715600338">Carregar a bateria usando tecnologia de carregamento rápido.</translation>
 <translation id="5898486742390981550">Quando vários usuários estão conectados, somente o usuário principal pode usar os apps Android.</translation>
 <translation id="5899751601113377553">Evitar que os usuários usem o <ph name="LACROS_NAME" /></translation>
@@ -5089,6 +5106,13 @@
 <translation id="6478258366184919502">Origens de login e de tela</translation>
 <translation id="6478261301433199402">A definição da política especifica a imagem do <ph name="PLUGIN_VM_NAME" /> para um usuário. Especifique essa política como uma string de formato JSON, com um <ph name="URL_PLUGIN_VM_IMAGE_FIELD" /> informando onde fazer o download da imagem e <ph name="HASH_PLUGIN_VM_IMAGE_FIELD" /> como um hash SHA-256 usado para verificar a integridade do download.</translation>
 <translation id="6481245670325946423">Permitir o uso do modo headless</translation>
+<translation id="648158446793103284">Se a política for definida, o usuário vai poder escolher um dos métodos de entrada para as sessões do <ph name="PRODUCT_OS_NAME" /> que você especificar.
+
+       Se ela for deixada sem definição ou for definida como uma lista vazia, o usuário vai poder selecionar todos os métodos de entrada que têm suporte.
+
+       A partir da versão M106, os métodos de entrada permitidos são ativados automaticamente na sessão de quiosque.
+
+      Observação: se não houver suporte para o método de entrada atual, ele vai ser alternado para o layout de teclado de hardware (se permitido) ou para a primeira entrada válida da lista. Métodos de entrada sem suporte ou inválidos são ignorados.</translation>
 <translation id="6489084406497912050">Controla se os usuários podem adicionar contas do Kerberos.
 
           Se esta política for ativada ou não for definida, os usuários poderão adicionar contas do Kerberos pela página de configurações de contas dele. Os usuários terão controle total das contas que adicionaram e poderão modificá-las ou removê-las.
@@ -5316,6 +5340,7 @@
       Se esta política for definida como falsa, a exibição padrão de URL será aplicada.
       Se esta política não for definida, a exibição padrão de URL será aplicada e o usuário poderá alternar entre ela e a exibição completa do URL em uma opção do menu de contexto.
       </translation>
+<translation id="6670794785040100077">Desativar o envio de documentos para <ph name="CLOUD_PRINT_NAME" /></translation>
 <translation id="6672070613706645316">Permitir que usuários personalizem o plano de fundo na página "Nova guia"</translation>
 <translation id="6672630473862787247">Ativar a autenticação pelo SO em sessões normais, anônimas e de visitante.</translation>
 <translation id="6685903773201985073">Ativar a autenticação pelo SO em sessões normais e de visitante.</translation>
@@ -5403,6 +5428,7 @@
       Se a <ph name="DEFAULT_SEARCH_PROVIDER_SEARCH_URL_POST_PARAMS_POLICY_NAME" /> não for definida, as solicitações de pesquisa serão enviadas usando o método get.</translation>
 <translation id="6757613329154374267">Backup e restauração ativados</translation>
 <translation id="6758659208493449452">Esta política controla se os usuários inscritos no Programa Proteção Avançada recebem segurança extra. Alguns desses recursos podem envolver o compartilhamento de dados com o Google. Por exemplo, usuários do Proteção Avançada poderão enviar os downloads ao Google para verificação de malware. Se a política for definida como "verdadeira" ou não for configurada, os usuários inscritos receberão proteções extras. Se for definida como "falsa", os usuários do Proteção Avançada receberão apenas os recursos padrão do consumidor.</translation>
+<translation id="6763023079133439068">Permitir certificados sem uma extensão subjectAlternativeName quando emitidos por âncoras de confiança locais</translation>
 <translation id="6766216162565713893">Permitir que os sites peçam ao usuário para conceder acesso a um dispositivo Bluetooth próximo</translation>
 <translation id="6770454900105963262">Denunciar informações sobre sessões de quiosque ativas</translation>
 <translation id="6782977971207381602">Se a política for definida como "Ativada", o dispositivo poderá executar máquinas virtuais no <ph name="PRODUCT_OS_NAME" />. <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> e <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> precisam estar ativadas para usar o <ph name="PRODUCT_CROSTINI_NAME" />. Se a política for definida como "Desativada", o dispositivo não poderá executar máquinas virtuais. Se a definição for mudada para "Desativada", a política será aplicada para executar novas máquinas virtuais em vez das já existentes.
@@ -6021,6 +6047,7 @@
 <translation id="7458437477941640506">Não faça a reversão para a versão de destino se a versão do SO for mais recente que a de destino. As atualizações também estão desativadas.</translation>
 <translation id="7459601923199346224">Controla as políticas do usuário e dispositivo para o gerenciamento de certificados.</translation>
 <translation id="7459633275230216698">Permitir caixas de diálogo para seleção de arquivo</translation>
+<translation id="7464058117970792805">Ativar a visualização de impressão</translation>
 <translation id="7464991223784276288">Limita cookies de URLs correspondentes à sessão atual</translation>
 <translation id="7468182772656807573">Se a política for definida, a frequência do envio de pacotes de monitoramento de rede será determinada, em milissegundos. Os intervalos variam de 30 segundos a 24 horas. Valores fora desse intervalo serão ajustados dentro dessa faixa.
 
@@ -6399,6 +6426,7 @@
 <translation id="7823902813460802031">Se a política for definida como "Ativada", o <ph name="PRODUCT_OS_NAME" /> impedirá que o dispositivo entre no modo de desenvolvedor.
 
        Se a política for definida como "Desativada" ou não for definida, o modo de desenvolvedor continuará disponível no dispositivo.</translation>
+<translation id="7824000841504721945">Desativar grupos atômicos de política</translation>
 <translation id="782661371433719637">Não permitir que nenhum site solicite acesso de leitura de arquivos e diretórios pela API File System</translation>
 <translation id="7827127381981620448">App de plataforma</translation>
 <translation id="7833148823006528332">Identificador do app Android, por exemplo, "com.google.android.gm" para o Gmail.</translation>
@@ -6484,6 +6512,7 @@
 <translation id="793473937901685727">Definir a disponibilidade do certificado para apps ARC</translation>
 <translation id="7936302526928951356">A string do user agent não vai congelar a versão principal.</translation>
 <translation id="7937766917976512374">Permitir ou negar captura de vídeo</translation>
+<translation id="7941528208359969119">Permitir a realização de verificações on-line de <ph name="OCSP_CRL_LABEL" /></translation>
 <translation id="7941975817681987555">Não prever ações da rede em nenhuma conexão de rede</translation>
 <translation id="7946350455013548764">Se a política for definida como "3", os sites vão poder pedir acesso aos dispositivos HID. Se a política for definida como "2", o acesso a dispositivos HID vai ser negado.
 
@@ -6865,6 +6894,7 @@
 
       Se a <ph name="DEFAULT_SEARCH_PROVIDER_IMAGE_URL_POST_PARMS_POLICY_NAME" /> não for definida, as solicitações de pesquisa de imagem serão enviadas usando o método get.</translation>
 <translation id="8314214821702356835">Permite que os usuários executem mídia enquanto o dispositivo estiver bloqueado.</translation>
+<translation id="8316940611391250886">Não permitir certificados sem uma extensão subjectAlternativeName</translation>
 <translation id="8319678975002906774">Define valores de configuração gerenciada para sites de origens específicas</translation>
 <translation id="8320149248919453401">Modo de carregamento da bateria</translation>
 <translation id="8327651196906278510">Permitir captura de guia por estas origens</translation>
@@ -7610,6 +7640,7 @@
 <translation id="9135033364005346124">Ativar proxy do <ph name="CLOUD_PRINT_NAME" /></translation>
 <translation id="9136212796239682721">Desativar a IU de download em balão</translation>
 <translation id="9136399279941091445">Intervalos de horas de inatividade quando as políticas do dispositivo específicas são lançadas</translation>
+<translation id="9148720248753722892">Não permitir certificados assinados SHA-1</translation>
 <translation id="9150416707757015439">Esta política é obsoleta. Utilize IncognitoModeAvailability em seu lugar, que ativa o modo de navegação anônima em <ph name="PRODUCT_NAME" />. Caso esta configuração seja ativada ou não configurada, os usuários podem abrir páginas da Web no modo de navegação anônima. Se essa configuração for desativada, os usuários não podem abrir páginas da Web usando o modo de navegação anônima. Se esta política for deixada sem definição, esta opção será ativada e o usuário será capaz de usar o modo de navegação anônima.</translation>
 <translation id="9152473318295429890">Ativa sugestões contextuais de páginas da Web relacionadas</translation>
 <translation id="9153446010242995516">Faça a reversão e permaneça na versão de destino se a versão do SO for mais recente que a de destino. Se possível, tente transferir a configuração do dispositivo (incluindo as credenciais de rede) por meio do processo de reversão. Porém, faça a reversão com o Powerwash completo mesmo se não for possível restaurar os dados, seja porque a versão de destino não é compatível com a restauração de dados ou devido a uma alteração incompatível com versões anteriores.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index a728386..f3f84b4 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -100,6 +100,7 @@
 <translation id="1095209545735032039">Блокировка Serial API на указанных сайтах</translation>
 <translation id="1096105751829466145">Поисковая система по умолчанию</translation>
 <translation id="1099282607296956954">Включить изоляцию для всех сайтов</translation>
+<translation id="1100840127293327071">Не устанавливать флажок, чтобы сохранять существующие данные о работе в браузере по умолчанию</translation>
 <translation id="1105572260329131950">Использовать для безопасных соединений значок по умолчанию</translation>
 <translation id="1107538157073168076">Отключить расширение статистики</translation>
 <translation id="1110426799149444997">Отключить поиск по области изображения в сервисе "<ph name="GOOGLE_LENS_PRODUCT_NAME" />"</translation>
@@ -745,6 +746,14 @@
 <translation id="1781356041596378058">Это правило также контролирует доступ к режиму разработчика Android. Если установить для правила значение True, пользователи потеряют доступ к режиму разработчика. Если установить для правила значение False или не задать значение, пользователи смогут получить доступ к режиму разработчика, нажав на номер сборки в настройках Android семь раз.</translation>
 <translation id="1787790976045065845">Это правило действует, только если для правила <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> выбран параметр <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> или <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> и пользователь, который вошел в систему с помощью смарт-карты, вытащил ее. Правило позволяет указать, сколько секунд будет видно уведомление о скором выполнении определенного действия. Это сообщение заблокирует экран. Действие будет выполнено только после того, как истечет заданное для уведомления время. Если до этого пользователь заново вставит смарт-карту, действие не будет выполнено. Если значение равно нулю, уведомление не появляется и действие выполняется сразу.</translation>
 <translation id="1793346220873697538">Запретить печать с вводом PIN-кода по умолчанию</translation>
+<translation id="1794457906032475749">Если правило включено, возможность сохранения существующих данных о работе в браузере при создании корпоративного профиля будет активирована по умолчанию.
+
+Если правило не настроено или отключено, возможность не будет активирована по умолчанию.
+
+Вне зависимости от установленного значения, во время создания корпоративного профиля пользователь сможет решить, будет ли применяться эта опция.
+
+Правило не применяется, если возможность сохранения существующих данных о работе в браузере отсутствует. Это происходит, когда строго необходим отдельный корпоративный профиль или будут использоваться данные из управляемого профиля.
+</translation>
 <translation id="179694024208061102">Если это правило включено, <ph name="PRODUCT_NAME" /> по возможности будет открывать некоторые страницы в альтернативном браузере, например в <ph name="IE_PRODUCT_NAME" />. Для настройки этой функции используются правила из группы "<ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />".
 
       Если правило отключено или не задано, <ph name="PRODUCT_NAME" /> не будет открывать обозначенные вами страницы в альтернативном браузере.</translation>
@@ -1631,6 +1640,7 @@
 
       В <ph name="MS_WIN_NAME" /> это правило можно настроить только на устройствах, которые входят в домен <ph name="MS_AD_NAME" />, на которых установлена ОС Windows 10 Pro или которые зарегистрированы в программе облачного управления браузером Chrome. В <ph name="MAC_OS_NAME" /> правило поддерживается только на устройствах, которые контролируются с помощью ПО для управления мобильными устройствами или добавлены в домен через MCX.</translation>
 <translation id="2623014935069176671">Ждать действий пользователя</translation>
+<translation id="2625026032335150744">Установить флажок, чтобы существующие данные о работе в браузере сохранялись по умолчанию</translation>
 <translation id="2625398797484317969">Позволяет настроить быстрые ответы.</translation>
 <translation id="262740370354162807">Разрешить отправку документов на виртуальный принтер <ph name="CLOUD_PRINT_NAME" /></translation>
 <translation id="2633084400146331575">Озвучивание действий</translation>
@@ -2053,6 +2063,7 @@
       Подробнее о допустимых шаблонах <ph name="URL_LABEL" />: https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Значение <ph name="WILDCARD_VALUE" /> не поддерживается для этого правила.</translation>
 <translation id="305106159605171619">Не сокращать строку агента пользователя и запретить включение этого правила с помощью экспериментальных функций или в пробных версиях для источника</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
+<translation id="3063302084011279315">Отключить Screencast</translation>
 <translation id="3064530882228745118">Выполнять поиск записи CNAME при аутентификации с помощью Kerberos</translation>
 <translation id="3066446511111537292">Разрешить связанным пользователям устанавливать на устройство приложения из неизвестного источника с помощью adb</translation>
 <translation id="3070119171976169951">Запретить сторонним изображениям показывать окно аутентификации</translation>
@@ -2267,6 +2278,7 @@
 <translation id="3255762580838224124">Этот правило определяет поворот экрана в нужную ориентацию при каждой перезагрузке и при первом подключении после изменения правила. Пользователь может изменить настройки поворота, войдя в аккаунт, но после перезагрузки устройства они будут сброшены. Правило действует в отношении основного и дополнительного дисплея.
 
       Если оно не настроено, значение по умолчанию равно нулю градусов и пользователи могут самостоятельно его менять. В этом случае значение по умолчанию не применяется снова после перезапуска.</translation>
+<translation id="3257786863492892609">Контроль правил для Screencast.</translation>
 <translation id="3258380413685430793">Воспроизводить весь <ph name="FLASH_PLUGIN_NAME" />-контент</translation>
 <translation id="325883417142483505">Позволяет задать список URL входа в корпоративный аккаунт (только для протоколов HTTP и HTTPS). На указанных страницах служба защиты паролей будет записывать хеши с солью, чтобы затем использовать их для определения повторного ввода паролей. Чтобы хешированные с солью пароли корректно сохранялись в <ph name="PRODUCT_NAME" />, страницы входа должны соответствовать требованиям, приведенным на странице https://www.chromium.org/developers/design-documents/create-amazing-password-forms.
 
@@ -3244,6 +3256,7 @@
 <translation id="441686537793821907">Блокировать установку внешних расширений</translation>
 <translation id="4423597592074154136">Настройка прокси-сервера вручную</translation>
 <translation id="4424004842303301809">Не показывать события, связанные с предотвращением утечки данных</translation>
+<translation id="4426601693403743089">Выключить тестовую версию Screencast для пользователей Family Link</translation>
 <translation id="4427173305799125784">Запретить добавление заметок в PDF-файлы в средстве просмотра PDF</translation>
 <translation id="4432762137771104529">Включить передачу расширенных отчетов Безопасного просмотра</translation>
 <translation id="443454694385851356">Устаревшие (небезопасно)</translation>
@@ -4848,6 +4861,7 @@
       Каждый пункт правила представляет собой строку с идентификатором расширения и может содержать URL обновления, отделенный точкой с запятой (<ph name="SEMICOLON" />). Идентификатор расширения – это строка из 32 символов, которую можно найти, например, на странице <ph name="CHROME_EXTENSIONS_LINK" />, открыв ее в режиме разработчика. URL обновления (если присутствует) должен указывать на манифест обновления в формате XML, как описано на странице <ph name="LINK_TO_EXTENSION_DOC1" />. По умолчанию для обновления используется URL Интернет-магазина Chrome (в настоящее время – https://clients2.google.com/service/update2/crx). Обратите внимание, что URL обновления из этого правила применяется только во время первоначальной установки. В дальнейшем используется URL, указанный в манифесте расширения.
 
       Например, если в правиле задан пункт <ph name="LOGIN_SCREEN_EXTENSION_POLICY_EXAMPLE" />, то приложение <ph name="SMART_CARD_CONNECTOR_APP_NAME" /> будет установлено из Интернет-магазина Chrome по стандартному URL обновления. Подробные сведения о хостинге расширений можно найти на этой странице: <ph name="LINK_TO_EXTENSION_DOC2" />.</translation>
+<translation id="6274202259872570803">Screencast</translation>
 <translation id="6275497712828649588">Скрывать предупреждения системы безопасности, когда используются потенциально опасные параметры командной строки</translation>
 <translation id="6275833043726517413">Это правило позволяет назначить приоритет устаревшей версии <ph name="CORS" /> вместо новой реализации <ph name="CORS" />.
 
@@ -4881,7 +4895,15 @@
 
       Правило <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> будет работать, только если для правила <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> задано значение False.</translation>
 <translation id="6305373713165475629">Переопределяет режим цветной печати по умолчанию. Если этот режим недоступен, правило не действует.</translation>
+<translation id="6308109234708949641">Правило активирует Screencast для пользователей Family Link и разрешает этой функции записывать видео с экрана, расшифровывать его и загружать на Диск.
+      Правило не распространяется на других пользователей
+      и на правило <ph name="PROJECTOR_ENABLED_POLICY_NAME" /> для корпоративных пользователей.
+
+      Если правило включено, тестовая версия Screencast будет работать для пользователей Family Link,
+      если оно отключено – не будет.
+      Если правило не настроено, тестовая версия Screencast будет по умолчанию отключена для пользователей Family Link.</translation>
 <translation id="6310223829319187614">Включает автозаполнение домена во время входа в аккаунт</translation>
+<translation id="6310756730808079944">Включить Screencast</translation>
 <translation id="631081324835911099">Позволяет выполнить принудительный выход из аккаунта с недействительным токеном аутентификации.
         Это правило может ограничить доступ пользователя к контенту на веб-ресурсах Google.
         Если указано значение True, выход из аккаунта будет выполнен, как только токен аутентификации станет недействительным и произойдет ошибка при попытке его восстановить.
@@ -5269,6 +5291,12 @@
           Если задано значение "false" или значение не задано, нельзя будет создавать контролируемые профили и входить в них. Все существующие контролируемые профили будут скрыты.
 
           ПРИМЕЧАНИЕ. На пользовательских и корпоративных устройствах применяются разные настройки по умолчанию: на пользовательских устройствах поддержка контролируемых профилей включена, а на корпоративных – отключена.</translation>
+<translation id="6648746349186337075">Это правило разрешает Screencast записывать видео с экрана, расшифровывать и загружать его на Диск в корпоративных аккаунтах.
+      Правило не влияет на пользователей Family Link
+      и на правило <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" /> для них.
+
+      Если правило включено или не настроено, Screencast будет работать,
+      если отключено – не будет.</translation>
 <translation id="665023848306499203">Разрешить устройствам выбирать версию, до которой нужно обновиться</translation>
 <translation id="6652197835259177259">Настройки локально управляемых профилей</translation>
 <translation id="6653897159826215341">Если правило включено, при запросе печати вместо предварительного просмотра <ph name="PRODUCT_NAME" /> открывает системное диалоговое окно.
@@ -6170,6 +6198,7 @@
       Если правило включено или не настроено, преобразование единиц измерения с помощью функции "Быстрые ответы" будет разрешено.
       Если правило отключено, преобразование единиц измерения с помощью функции "Быстрые ответы" будет запрещено.</translation>
 <translation id="7587345076013230465">Предлагать пользователю выбрать сертификат клиента, если правилу автоматического выбора соответствует несколько сертификатов на экране входа</translation>
+<translation id="7587921466180902617">Включить тестовую версию Screencast для пользователей Family Link</translation>
 <translation id="759957074386651883">Настройки Безопасного просмотра</translation>
 <translation id="7604169113182304895">Вы не можете принудить приложения Android соблюдать правила в отношении этого списка.</translation>
 <translation id="7612157962821894603">Системные настройки, действующие при запуске <ph name="PRODUCT_NAME" /></translation>
@@ -6417,6 +6446,7 @@
 
       Совет. Включите функцию блокировки экрана при переходе в спящий режим и настройте в <ph name="PRODUCT_OS_NAME" /> переход в этот режим по истечении заданного периода бездействия. Используйте это правило, только если блокировка экрана должна включаться намного раньше перехода в спящий режим или если переход в спящий режим при бездействии не требуется вообще.</translation>
 <translation id="7895553628261067384">Удаленный доступ</translation>
+<translation id="7900469325540540107">По умолчанию сохранять данные о работе в браузере при создании корпоративного профиля</translation>
 <translation id="7902040092815978832">Показывать цифровую клавиатуру при вводе пароля</translation>
 <translation id="7904177352786629708">Если правило включено, поиск записи CNAME выполняться не будет. Будет использоваться имя сервера, введенное при создании SPN Kerberos.
 
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index 56523254..36de26c 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -100,6 +100,7 @@
 <translation id="1095209545735032039">Bu sitelerde Serial API'sini engelle</translation>
 <translation id="1096105751829466145">Varsayılan arama sağlayıcı</translation>
 <translation id="1099282607296956954">Site İzolasyonu'nu her site için etkinleştirme</translation>
+<translation id="1100840127293327071">Mevcut tarama verilerini saklama seçeneğini varsayılan olarak işaretleme</translation>
 <translation id="1105572260329131950">Güvenli bağlantılar için varsayılan simgeler kullanın</translation>
 <translation id="1107538157073168076">Analizler uzantısını devre dışı bırak</translation>
 <translation id="1110426799149444997"><ph name="GOOGLE_LENS_PRODUCT_NAME" /> bölge aramayı devre dışı bırakın.</translation>
@@ -261,6 +262,7 @@
       Politika ayarlanmadan bırakılırsa veya değişiklikten sonraki değer geçerli bir ana makine adı değilse DHCP isteğinde ana makine adı ayarlanmaz.</translation>
 <translation id="1257550411839719984">Varsayılan indirme dizinini ayarlama</translation>
 <translation id="1265053460044691532">SAML kullanarak kimlik doğrulaması yapmış kullanıcının çevrimdışı olarak giriş yapabileceği süreyi sınırla</translation>
+<translation id="1271811620059192171">Politika atom gruplarını etkinleştir</translation>
 <translation id="127264587838521316"><ph name="PRODUCT_NAME" /> uzantı yükleme isteklerini etkinleştirir</translation>
 <translation id="1272798957154751008">Chromad cihazların bulut yönetimine taşınmasını etkinleştir</translation>
 <translation id="1274997165432133392">Çerezler ve diğer site verileri</translation>
@@ -746,6 +748,14 @@
 <translation id="1781356041596378058">Ayrıca bu politika Android Geliştirici Seçenekleri'ne erişimi de kontrol eder. Bu politikayı doğru (true) seçeneğine ayarlarsanız kullanıcılar Geliştirici Seçenekleri'ne erişemez. Bu politikayı yanlış (false) seçeneğine ayarlar veya ayarlamadan bırakırsanız kullanıcılar, Android ayarları uygulamasında derleme numarasına yedi kez dokunarak Geliştirici Seçenekleri'ne erişebilir.</translation>
 <translation id="1787790976045065845">Bu politika, yalnızca <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> politikası <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> veya <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> değerine ayarlanırsa ve akıllı kartla kimlik doğrulaması yapan kullanıcı bu akıllı kartı çıkarırsa geçerli olur. Ardından bu politika, gerçekleşmek üzere olan işlem hakkında kullanıcıyı bilgilendiren bildirimin kaç saniye görüntüleneceğini belirtir. Bu bildirim, ekranı engeller. İşlem, yalnızca bu bildirimin süresi dolduktan sonra gerçekleşir. Kullanıcı, bildirimin süresi dolmadan akıllı kartı yeniden takarak işlemin gerçekleşmesini önleyebilir. Bu politika sıfır değerine ayarlanırsa herhangi bir bildirim görüntülenmeden işlem hemen gerçekleşir.</translation>
 <translation id="1793346220873697538">Varsayılan olarak PIN ile yazdırmayı devre dışı bırak</translation>
+<translation id="1794457906032475749">Bu politika Etkin değerine ayarlanırsa kurumsal profil oluştururken, mevcut tarama verilerini saklama seçeneği varsayılan olarak işaretlenir.
+
+Bu politika ayarlanmaz veya Devre Dışı değerine ayarlanırsa kurumsal profil oluştururken, mevcut tarama verilerini saklama seçeneği varsayılan olarak işaretlenmez.
+
+Değerden bağımsız olarak kullanıcılar, kurumsal profil oluştururken mevcut tarama verilerinin saklanıp saklanmayacağına karar verebilir.
+
+Kurumsal profil ayrımının katı bir şekilde zorunlu tutulması ya da ilgili verilerin halihazırda yönetilen bir profilden gelmesi halinde, mevcut tarama verilerini saklama seçeneği sunulmaz ve bu politika etkili olmaz.
+</translation>
 <translation id="179694024208061102">Politika Etkin değerine ayarlanırsa <ph name="PRODUCT_NAME" /> bazı URL'leri alternatif bir tarayıcıda (ör. <ph name="IE_PRODUCT_NAME" />) açmaya çalışır. Bu özellik, <ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" /> grubundaki politikalar kullanılarak ayarlanır.
 
       Politika Devre dışı değerine ayarlanır veya ayarlanmadan bırakılırsa <ph name="PRODUCT_NAME" />, tanımlanan URL'leri alternatif tarayıcıda açmaya çalışmaz.</translation>
@@ -1618,6 +1628,7 @@
 
       <ph name="MS_WIN_NAME" /> işletim sisteminde bu işlev yalnızca Windows 10 Pro üzerinde çalışan bir <ph name="MS_AD_NAME" /> alan adına katılmış veya Chrome Tarayıcı Bulut Yönetimi'ne kaydolmuş örneklerde kullanılabilir. <ph name="MAC_OS_NAME" /> işletim sisteminde bu işlev yalnızca MDM üzerinden yönetilen veya MCX aracılığıyla bir alan adına katılmış örneklerde kullanılabilir.</translation>
 <translation id="2623014935069176671">İlk kullanıcı etkinliğini bekle</translation>
+<translation id="2625026032335150744">Mevcut tarama verilerini saklama seçeneğini varsayılan olarak işaretle</translation>
 <translation id="2625398797484317969">Bil bakalım ayarlarını kontrol eder.</translation>
 <translation id="262740370354162807">Dokümanların <ph name="CLOUD_PRINT_NAME" /> için gönderilmesini etkinleştir</translation>
 <translation id="2633084400146331575">Sözlü geribildirimi etkinleştir</translation>
@@ -2040,6 +2051,7 @@
       Geçerli <ph name="URL_LABEL" /> kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz. <ph name="WILDCARD_VALUE" />, bu politikada kabul edilen bir değer değildir.</translation>
 <translation id="305106159605171619">Kullanıcı aracısı kısaltma özelliği devre dışı bırakılmış ve alan denemeleri ya da kaynak denemeleri ile etkinleştirilmemiş.</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
+<translation id="3063302084011279315">Ekran Kaydı'nı Devre Dışı Bırak</translation>
 <translation id="3064530882228745118">Kerberos kimlik doğrulaması sırasında CNAME aramasını kullan</translation>
 <translation id="3066446511111537292">Bu cihazın ilişkili kullanıcılarının ADB başka cihazdan yükleme işlevini kullanmalarına izin verir</translation>
 <translation id="3070119171976169951">Üçüncü taraf görsellerinin, kimlik doğrulama istemi göstermesini engelle</translation>
@@ -2255,6 +2267,7 @@
 <translation id="3255762580838224124">Bu politikanın ayarlanması, her ekranın her yeniden başlatmada ve politika değeri değiştikten sonraki ilk bağlantısında belirtilen yöne döndürülmesini sağlar. Kullanıcılar oturum açtıktan sonra ayarlar sayfasında ekran döndürmeyi değiştirebilir, ancak ayar bir sonraki yeniden başlatmada eski haline döner. Bu politika, birincil ve ikincil ekranlar için geçerlidir.
 
       Politika ayarlanmazsa varsayılan değer 0 derece olur ve kullanıcılar bu değeri istedikleri gibi değiştirebilir. Bu durumda, varsayılan değer yeniden başlatma sırasında tekrar uygulanmaz.</translation>
+<translation id="3257786863492892609">Ekran Kaydı ile ilgili politikaları kontrol eder.</translation>
 <translation id="3258380413685430793"><ph name="FLASH_PLUGIN_NAME" /> içeriklerinin tamamını çalıştır</translation>
 <translation id="325883417142483505">Politika ayarlanırsa kurumsal giriş URL'lerinin listesi ayarlanır (yalnızca HTTP ve HTTPS protokolleri). Şifre koruma hizmeti, bu URL'lerdeki şifrelerin rastgele oluşturulmuş karma değerlerini yakalayıp şifre yeniden kullanımı algılaması için kullanır. <ph name="PRODUCT_NAME" /> ürününün rastgele oluşturulmuş karma değerleri doğru bir şekilde yakalayabilmesi için oturum açma sayfalarınızın https://www.chromium.org/developers/design-documents/create-amazing-password-forms adresinde belirtilen yönergelere uygun olduğundan emin olun.
 
@@ -2849,6 +2862,7 @@
       Bu politika Devre Dışı değerine ayarlanırsa veya ayarlanmadan bırakılırsa kullanıcıdan yalnızca otomatik seçimle eşleşen sertifika olmadığında seçim yapması istenebilir.</translation>
 <translation id="3950110092991281616">Ambiyans kimlik doğrulamasını yalnızca normal oturumlarda etkinleştir.</translation>
 <translation id="3950239119790560549">Güncelleme Zamanı Kısıtlamaları</translation>
+<translation id="3956243291190637924">Yazdırma önizlemede üstbilgileri ve altbilgileri gizle</translation>
 <translation id="3956573780915784996">Kullanıcıların sistem genelinde performans izleme verilerini toplamasına izin verir.</translation>
 <translation id="3956686688560604829">Eski Tarayıcı Desteği için Internet Explorer'ın SiteList politikasını kullanma.</translation>
 <translation id="3958586912393694012">Smart Lock'un kullanılmasına izin ver</translation>
@@ -3097,6 +3111,18 @@
       Politika Devre dışı değerine ayarlanır veya ayarlanmadan bırakılırsa kullanıcılar hücresel bağlantı kullanırken Drive'a dosya aktarabilir.</translation>
 <translation id="4248277954659222481">URL kalıpları izin verilenler listesinde medyanın otomatik olarak oynatılmasına izin ver</translation>
 <translation id="4250680216510889253">Hayır</translation>
+<translation id="4259636715493757956"><ph name="WEBVIEW_PRODUCT_NAME" /> içindeki kimlik doğrulama URL'leriyle ilgili yapılandırmaları belirtmenizi sağlar.
+
+      <ph name="WEBVIEW_PRODUCT_NAME" /> bu kimlik doğrulama URL'lerini özel olarak ele alır. <ph name="WEBVIEW_PRODUCT_NAME" /> içindeki web sayfası, kimlik doğrulama sırasında kimlik doğrulama URL'lerine yönlendirildiğinde,
+      bu URL'yi işleyebilen ilgili Kimlik Sağlayıcılar'a ait kimlik doğrulayıcı uygulaması başlatılır.
+
+      Kimlik Sağlayıcılar'ın kimlik doğrulayıcı uygulamasını başlatmayla ilgili bu akış, Kimlik Sağlayıcılar tarafından kullanım alanlarını
+      (uygulamalar arasında TOA sağlama veya sıfır güvene sahip cihaz sinyalleri toplayarak daha iyi güvenlik sağlama gibi) etkinleştirerek kimlik doğrulama sırasında cihaz durumunu anlamak için kullanılır.
+
+      Kimlik doğrulama URL'sini işleyecek geçerli bir uygulama cihazda yüklü değilse yönlendirme işlemi <ph name="WEBVIEW_PRODUCT_NAME" /> içinde devam eder.
+
+      Kimlik doğrulama URL kalıbı, https://www.chromium.org/administrators/url-blocklist-filter-format adresindeki açıklamaya uygun olarak biçimlendirilmelidir.
+      </translation>
 <translation id="4260027436474745627">Bu politika ayarlanırsa virgülle ayrılmış listede adı verilen her kaynak özel işlem içinde çalışır. Adı verilen her kaynağın işleminde yalnızca o kaynaktan ve kaynağın alt alan adlarından dokümanlar bulunabilir. Örneğin, https://a1.example.com/ alan adı tanımlandığında aynı işlem içerisinde https://a2.a1.example.com/ bulunabilir ancak https://example.com veya https://b.example.com bulunamaz.
 
       77. <ph name="PRODUCT_NAME" /> sürümünden itibaren, joker karakter kullanarak izole edilecek bir kaynak aralığı belirlemek mümkündür. Örneğin, https://[*.]corp.example.com alan adı belirlenirse, https://corp.example.com alan adının kendisi, https://a1.corp.example.com ve https://a2.a1.corp.example.com dahil olmak üzere https://corp.example.com alan adının altında bulunan her bir kaynak kendi özel işlemi içinde çalışır.
@@ -3231,10 +3257,12 @@
 <translation id="441686537793821907">Harici uzantıların yüklenmesini engelle</translation>
 <translation id="4423597592074154136">Proxy ayarlarını el ile belirle</translation>
 <translation id="4424004842303301809">Veri sızıntısı önleme etkinliklerinin raporlanmasını devre dışı bırak</translation>
+<translation id="4426601693403743089">Family Link kullanıcıları için Ekran Kaydı test sürümünü devre dışı bırak</translation>
 <translation id="4427173305799125784">PDF görüntüleyici PDF'lere not ekleyemez</translation>
 <translation id="4432762137771104529">Güvenli Tarama Genişletilmiş Raporlamasını Etkinleştir</translation>
 <translation id="443454694385851356">Eski (güvenli değil)</translation>
 <translation id="443665821428652897">Tarayıcı kapandığında site verilerini temizle (kullanımdan kaldırıldı)</translation>
+<translation id="4436941175475497595">Baskı önizlemeyi devre dışı bırak</translation>
 <translation id="4439336120285389675">Geçici olarak yeniden etkinleştirmek için, kullanımdan kaldırılmış web platformu özelliklerinin bir listesini belirtin.
 
       Bu politika, yöneticilere kullanımdan kaldırılmış web platformu özelliklerini sınırlı bir süre için tekrar etkinleştirebilme olanağı verir. Özellikler bir dize etiketiyle tanımlanır ve bu politikanın belirttiği listeye eklenmiş olan etiketlere karşılık gelen özellikler yeniden etkinleştirilir.
@@ -4278,6 +4306,7 @@
       Not: Birden fazla sunucu adını virgülle ayırın. Joker karakterlere (<ph name="WILDCARD_VALUE" />) izin verilir.</translation>
 <translation id="5645779841392247734">Bu sitelerde çerezlere izin ver</translation>
 <translation id="5646234199535103501">OnBulkDataEntry Chrome Enterprise Bağlayıcı için yapılandırma politikası</translation>
+<translation id="5648016151508002741">Online <ph name="OCSP_CRL_LABEL" /> kontrollerinin yapılmasını engelle</translation>
 <translation id="5649046890958064703"><ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> için <ph name="PRINTERS_BLACKLIST" /> seçiliyken <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" /> politikası ayarlanırsa kullanıcıların hangi yazıcıları kullanamayacağı belirlenir. Bu politikada listelenen kimlikler dışında kalan tüm yazıcılar kullanıcılara sağlanır. Kimliklerin, <ph name="DEVICE_PRINTERS_POLICY_NAME" /> politikasında belirtilen dosyadaki <ph name="ID_FIELD" /> veya <ph name="GUID_FIELD" /> alanlarına karşılık gelmesi gerekir.
 
       Bu politika kullanımdan kaldırıldı, lütfen bunun yerine <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> politikasını kullanın.</translation>
@@ -4526,6 +4555,7 @@
 <translation id="5893303508158298667"><ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> politikası Etkin değerine ayarlanırsa, <ph name="REMOTE_ACCESS_HOST_ALLOW_RELAYED_CONNECTION_POLICY_NAME" /> politikasının Etkin değerine ayarlanması veya ayarlanmadan bırakılması halinde uzak istemcilerin, güvenlik duvarı kısıtlamaları gibi nedenlerden dolayı doğrudan bağlantı olmadığında geçiş sunucularını kullanarak bu makineye bağlanmasına izin verilir.
 
       Politika, Devre Dışı değerine ayarlanırsa uzaktan erişim kapatılmaz, ancak yalnızca aynı ağdan bağlantılara izin verilir (NAT geçişine veya geçiş sunucularına izin verilmez).</translation>
+<translation id="5897234314586602143">Yazdırma önizlemede üstbilgileri ve altbilgileri göster</translation>
 <translation id="5897913798715600338">Pili hızlı şarj teknolojisiyle şarj et.</translation>
 <translation id="5898486742390981550">Birden fazla kullanıcı giriş yaptığında, yalnızca birincil kullanıcı Android uygulamalarını kullanabilir.</translation>
 <translation id="5899751601113377553">Kullanıcıların <ph name="LACROS_NAME" /> tarayıcısını kullanmasını engelle</translation>
@@ -4821,6 +4851,7 @@
       Politikaya ait her liste öğesi, noktalı virgülle (<ph name="SEMICOLON" />) ayrılmış bir uzantı kimliği ve isteğe bağlı bir "güncelleme" URL'si içeren bir dizedir. Uzantı kimliği, örneğin geliştirici modundayken <ph name="CHROME_EXTENSIONS_LINK" /> bağlantısında bulunabilen 32 harfli bir dizedir. "Güncelleme" URL'si (belirtilmişse) <ph name="LINK_TO_EXTENSION_DOC1" /> dokümanında açıklandığı gibi bir güncelleme manifest XML dokümanına işaret etmelidir. Varsayılan olarak Chrome Web Mağazası'nın güncelleme URL'si kullanılır (şu anda "https://clients2.google.com/service/update2/crx" şeklindedir). Bu politikada ayarlanan "güncelleme" URL'sinin sadece ilk yükleme için kullanıldığına, uzantının sonraki güncellemelerinde ise uzantının manifest dosyasında belirtilen güncelleme URL'sinin kullanıldığına dikkat edin.
 
       Örneğin, <ph name="LOGIN_SCREEN_EXTENSION_POLICY_EXAMPLE" />, standart Chrome Web Mağazası "güncelleme" URL'sinden <ph name="SMART_CARD_CONNECTOR_APP_NAME" /> uygulamasını yükler. Uzantıların barındırılması hakkında daha fazla bilgi için şu adrese bakın: <ph name="LINK_TO_EXTENSION_DOC2" /></translation>
+<translation id="6274202259872570803">Ekran Kaydı</translation>
 <translation id="6275497712828649588">Tehlikeli olabilecek komut satırı işaretleri kullanıldığında güvenlik uyarılarını gizle</translation>
 <translation id="6275833043726517413">Yeni <ph name="CORS" /> yerine eski <ph name="CORS" /> uygulamasını kullan.
 
@@ -4854,7 +4885,15 @@
 
       <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> politikasının etkili olabilmesi için <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> politikasının Yanlış değerine ayarlanması şarttır.</translation>
 <translation id="6305373713165475629">Politika ayarlanırsa varsayılan renkli yazdırma modu geçersiz kılınır. Mod kullanılamıyorsa bu politika yok sayılır.</translation>
+<translation id="6308109234708949641">Bu politika, Family Link kullanıcıları için Ekran Kaydı özelliğini etkinleştirir ve bu özelliğin ekran kaydı oluşturup metne dönüştürmesine, ayrıca bunları Drive'a yüklemesine izin verir.
+      Bu politika diğer kullanıcı türlerini etkilemez.
+      Bu politika kurumsal kullanıcılar için <ph name="PROJECTOR_ENABLED_POLICY_NAME" /> politikasını etkilemez.
+
+      Bu politika etkinleştirilirse Family Link kullanıcıları için Ekran Kaydı test sürümü etkinleştirilir.
+      Politika devre dışı bırakılırsa Family Link kullanıcıları için Ekran Kaydı test sürümü devre dışı kalır.
+      Politika ayarlanmazsa Family Link kullanıcıları için Ekran Kaydı test sürümü varsayılan olarak devre dışı olur.</translation>
 <translation id="6310223829319187614">Kullanıcı oturum açarken alan adı otomatik doldurma özelliğini etkinleştir</translation>
+<translation id="6310756730808079944">Ekran Kaydı'nı Etkinleştir</translation>
 <translation id="631081324835911099">Birincil hesabının kimlik doğrulama jetonu geçersiz hale geldiğinde kullanıcıyı çıkış yapmaya zorla.
         Bu politika, kullanıcıyı Google web mülklerinde kısıtlı içeriğe erişmekten koruyabilir.
         Bu politika True (Doğru) değerine ayarlanırsa kimlik doğrulama jetonu geçersiz hale gelir gelmez kullanıcı çıkış yapar ve bu jeton sorununu geri yüklemeyi dener.
@@ -5035,6 +5074,13 @@
 <translation id="6478258366184919502">Giriş ve ekran kaynakları</translation>
 <translation id="6478261301433199402">Politika ayarlanırsa bir kullanıcı için <ph name="PLUGIN_VM_NAME" /> resmi belirlenir. Bu politikayı, <ph name="HASH_PLUGIN_VM_IMAGE_FIELD" /> ve resmin indirme işleminin bütünlüğünü doğrulamak için bir SHA-256 karması olacak şekilde indirileceği yeri belirten <ph name="URL_PLUGIN_VM_IMAGE_FIELD" /> ile bir JSON biçimi dize olarak belirleyin.</translation>
 <translation id="6481245670325946423">Gözetimsiz Mod'un kullanılmasına izin ver</translation>
+<translation id="648158446793103284">Politikanın ayarlanması, belirttiğiniz <ph name="PRODUCT_OS_NAME" /> oturumu için kullanıcıların giriş yöntemlerinden birini seçmesine izin verir.
+
+       Ayarlanmadan bırakılır veya boş bir listeye ayarlanırsa kullanıcılar tüm desteklenen giriş yöntemlerini seçebilirler.
+
+       M106 sürümünden itibaren, izin verilen giriş yöntemleri kiosk oturumunda otomatik olarak etkinleştirilir.
+
+      Not: Geçerli giriş yöntemi desteklenmiyorsa donanım klavye düzenine (izin veriliyorsa) veya bu listedeki ilk geçerli girişe geçiş yapar. Geçersiz veya desteklenmeyen giriş yöntemleri göz ardı edilir.</translation>
 <translation id="6489084406497912050">Kullanıcının Kerberos hesapları ekleyip ekleyemeyeceğini kontrol eder.
 
           Bu politika etkinleştirilir veya ayarlanmazsa kullanıcılar, Kerberos ayarlar sayfasındaki Kerberos Hesapları ayarlarıyla Kerberos hesapları ekleyebilirler. Ekledikleri hesaplar üzerindeki tüm kontrol kullanıcılarda olup hesapları değiştirebilir veya silebilirler.
@@ -5242,6 +5288,12 @@
           False (yanlış) olarak ayarlanır veya yapılandırılmazsa, denetlenen kullanıcı oluşturma ve denetlenen kullanıcı girişi özellikleri devre dışı bırakılır. Mevcut tüm denetlenen kullanıcılar gizlenir.
 
           NOT: Tüketicilere ve kuruluşlara yönelik cihazlarda varsayılan davranış farklıdır: Tüketicilere yönelik cihazlarda, denetlenen kullanıcılar varsayılan olarak etkindir, ancak kuruluşlara yönelik cihazlarda bunlar varsayılan olarak devre dışıdır.</translation>
+<translation id="6648746349186337075">Bu politika, kurumsal kullanıcılar için Ekran Kaydı uygulamasının ekran kaydı oluşturup metne dönüştürmesine ve bunları Drive'a yüklemesine izin verir.
+      Bu politika Family Link kullanıcılarını etkilemez.
+      Bu politika Family Link kullanıcıları için <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" /> politikasını etkilemez.
+
+      Politika ayarlanmazsa veya etkinleştirilirse Ekran Kaydı etkinleştirilir.
+      Politika devre dışı bırakılırsa Ekran Kaydı devre dışı bırakılır.</translation>
 <translation id="665023848306499203">Cihazların güncelleme yapacakları belirli bir sürüm seçmesine izin ver</translation>
 <translation id="6652197835259177259">Yerel olarak yönetilen kullanıcıların ayarları</translation>
 <translation id="6653897159826215341">Politika, Etkin değerine ayarlanırsa kullanıcılar çıktı almak istediğinde <ph name="PRODUCT_NAME" />, yerleşik baskı önizleme yerine sistemin yazdırma iletişim kutusunu açar.
@@ -5257,6 +5309,7 @@
       Bu politika False (Yanlış) değerine ayarlanırsa varsayılan URL görüntüsü uygulanır.
       Bu politika ayarlanmadan bırakılırsa varsayılan URL görüntüsü uygulanır ve kullanıcı bir içerik menüsü seçeneği olmadan varsayılan ve tam URL görüntüsü arasında geçiş yapabilir.
       </translation>
+<translation id="6670794785040100077">Dokümanların <ph name="CLOUD_PRINT_NAME" /> adresine gönderilmesini devre dışı bırak</translation>
 <translation id="6672070613706645316">Kullanıcıların Yeni Sekme sayfasındaki arka planı özelleştirmelerin izin ver.</translation>
 <translation id="6672630473862787247">Ambiyans kimlik doğrulamasını normal, gizli ve misafir oturumlarında etkinleştir.</translation>
 <translation id="6685903773201985073">Ambiyans kimlik doğrulamasını misafir oturumlarında ve normal oturumlarda etkinleştir.</translation>
@@ -5344,6 +5397,7 @@
       <ph name="DEFAULT_SEARCH_PROVIDER_SEARCH_URL_POST_PARAMS_POLICY_NAME" /> politikası ayarlanmadan bırakılırsa istekler GET yöntemi kullanılarak gönderilir.</translation>
 <translation id="6757613329154374267">Yedekleme ve geri yükleme özelliği etkinleştirildi</translation>
 <translation id="6758659208493449452">Bu politika, Gelişmiş Koruma programına kayıtlı kullanıcılara ekstra özellikler sunulup sunulmayacağını kontrol eder. Bu özelliklerin bazıları kapsamında Google ile veri paylaşılabilir (örneğin, Gelişmiş Koruma kullanıcıları indirdikleri dosyaları Google'a göndererek kötü amaçlı yazılıma karşı taranmasını sağlayabilir). Bu politika True (Doğru) değerine ayarlanır veya ayarlanmadan bırakılırsa kayıtlı kullanıcılara ekstra özellikler sunulur. Bu politika False (Yanlış) değerine ayarlanırsa Gelişmiş Koruma kullanıcılarına yalnızca standart tüketici özellikleri sunulur.</translation>
+<translation id="6763023079133439068">subjectAlternativeName uzantısı olmayıp yerel güven çapaları tarafından verilmiş olan sertifikalara izin ver</translation>
 <translation id="6766216162565713893">Sitelerin, yakınlardaki bir Bluetooth cihazına erişmek için kullanıcıdan izin istemesine izin ver</translation>
 <translation id="6770454900105963262">Aktif kiosk oturumlarıyla ilgili bilgileri raporla</translation>
 <translation id="6782977971207381602">Politikanın Etkin değerine ayarlanması cihazın, <ph name="PRODUCT_OS_NAME" /> işletim sistemi üstünde sanal makineleri çalıştırmasına olanak tanır. <ph name="PRODUCT_CROSTINI_NAME" /> kullanılabilmesi için <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> ve <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> politikalarının Etkin değerine ayarlanması gerekir. Politika Devre Dışı değerine ayarlanırsa cihaz, sanal makineleri çalıştıramaz. Politika Devre Dışı olarak değiştirilirse halihazırda çalışan sanal makinelere değil, başlatılan yeni sanal makinelere uygulanmaya başlar.
@@ -5968,6 +6022,7 @@
 <translation id="7458437477941640506">OS sürümü hedeften daha yeniyse hedef sürüme geri dönmeyin. Güncellemeler de devre dışı bırakılır.</translation>
 <translation id="7459601923199346224">Sertifika yönetimi için kullanıcı ve cihaz politikalarını kontrol eder.</translation>
 <translation id="7459633275230216698">Dosya seçimi iletişim kutularına izin ver</translation>
+<translation id="7464058117970792805">Yazdırma önizlemeyi etkinleştir</translation>
 <translation id="7464991223784276288">Eşleşen URL'lerden çerezleri geçerli oturumla sınırlama</translation>
 <translation id="7468182772656807573">Politikanın ayarlanması, izleme amaçlı ağ paketlerinin ne sıklıkla gönderileceğini (milisaniye olarak) belirler. Sıklık 30 saniye ile 24 saat arasında değişir. Bu aralığın dışındaki değerler aralık içine kaydırılır.
 
@@ -6147,6 +6202,7 @@
       Politika etkinleştirilirse veya ayarlanmadan bırakılırsa Bil bakalım birim dönüşümü etkinleştirilir.
       Politika devre dışı bırakılırsa Bil bakalım birim dönüşümü devre dışı bırakılır.</translation>
 <translation id="7587345076013230465">Otomatik seçim politikası, oturum açma ekranında birden fazla sertifikayla eşleştiğinde kullanıcıdan istemci sertifikasını seçmesini iste</translation>
+<translation id="7587921466180902617">Family Link kullanıcıları için Ekran Kaydı test sürümünü etkinleştir</translation>
 <translation id="759957074386651883">Güvenli Tarama ayarları</translation>
 <translation id="7604169113182304895">Android uygulamaları, kendi tercihleriyle bu listeye uymaya karar verebilir. Bu uygulamaları listeye uymaya zorlayamazsınız.</translation>
 <translation id="7612157962821894603"><ph name="PRODUCT_NAME" /> başlatılırken uygulanan sistem genelindeki işaretler</translation>
@@ -6345,6 +6401,7 @@
 <translation id="7823902813460802031">Politika Etkin değerine ayarlanırsa <ph name="PRODUCT_OS_NAME" />, cihazın Geliştirici moduna girmesini engeller.
 
        Politika Devre dışı değerine ayarlanır veya ayarlanmadan bırakılırsa Geliştirici modu cihaz için kullanılabilir durumda kalır.</translation>
+<translation id="7824000841504721945">Politika atom gruplarını devre dışı bırak</translation>
 <translation id="782661371433719637">Hiçbir sitenin File System API üzerinden dosya ve dizinlere okuma erişimi istemesine izin verme</translation>
 <translation id="7827127381981620448">Platform uygulaması</translation>
 <translation id="7833148823006528332">Android uygulaması tanımlayıcı (ör. Gmail için "com.google.android.gm")</translation>
@@ -6395,6 +6452,7 @@
 
       Öneri: Boşta kaldığında ekranı kilitlemek için askıya alındığında ekran kilidini etkinleştirin ve boşta kalma gecikmesi ile ilgili süre dolduğunda <ph name="PRODUCT_OS_NAME" /> tarafından askıya alma işlemi yapılacak şekilde ayarlayın. Bu politikayı yalnızca ekran kilitleme işleminin askıya alma işleminden epey önce olması istendiğinde veya boşta kalma durumunda askıya alma işleminin yapılmasını istemediğinizde kullanın.</translation>
 <translation id="7895553628261067384">Uzaktan erişim</translation>
+<translation id="7900469325540540107">Kurumsal profil oluştururken tarama verilerini varsayılan olarak sakla</translation>
 <translation id="7902040092815978832">Şifre için sayısal klavyeyi gösterir</translation>
 <translation id="7904177352786629708">Politika Etkin değerine ayarlanırsa CNAME araması atlanır. Kerberos SPN oluşturulurken sunucu adı girildiği şekliyle kullanılır.
 
@@ -6429,6 +6487,7 @@
 <translation id="793473937901685727">ARC uygulamaları için sertifika kullanılabilirliğini ayarla</translation>
 <translation id="7936302526928951356">User-Agent dizesi, ana sürümü dondurmaz.</translation>
 <translation id="7937766917976512374">Video yakalamaya izin verme veya reddetme</translation>
+<translation id="7941528208359969119">Online <ph name="OCSP_CRL_LABEL" /> kontrollerinin yapılmasına izin ver</translation>
 <translation id="7941975817681987555">Ağ bağlantılarında ağ işlemlerini tahmin etme</translation>
 <translation id="7946350455013548764">Politikayı 3 değerine ayarlarsanız web siteleri HID cihazlara erişim izni isteyebilir. Politikayı 2 değerine ayarlarsanız HID cihazlara erişime izin verilmez.
 
@@ -6813,6 +6872,7 @@
 
       <ph name="DEFAULT_SEARCH_PROVIDER_IMAGE_URL_POST_PARMS_POLICY_NAME" /> politikası ayarlanmazsa resim araması isteği, GET yöntemi kullanılarak gönderilir.</translation>
 <translation id="8314214821702356835">Cihaz kilitliyken kullanıcının medya oynatmasına izin verir</translation>
+<translation id="8316940611391250886">subjectAlternativeName uzantısına sahip olmayan sertifikalara izin verme</translation>
 <translation id="8319678975002906774">Belirli kaynaklar için web sitelerine yönetilen yapılandırma değerleri ayarla</translation>
 <translation id="8320149248919453401">Pil şarj modu</translation>
 <translation id="8327651196906278510">Bu kaynakların Sekme yakalamasına izin ver</translation>
@@ -7547,6 +7607,7 @@
 <translation id="9135033364005346124"><ph name="CLOUD_PRINT_NAME" /> proxy'sini etkinleştir</translation>
 <translation id="9136212796239682721">İndirme baloncuğu kullanıcı arayüzünü devre dışı bırak</translation>
 <translation id="9136399279941091445">Belirtilen cihaz politikaları etkinleştirildiğinde kapalı olduğu saat aralıkları</translation>
+<translation id="9148720248753722892">SHA-1 imzalı sertifikalara izin verme</translation>
 <translation id="9150416707757015439">Bu politika uygun bulunmamaktadır. Lütfen, bunun yerine IncognitoModeAvailability politikasını kullanın.
       <ph name="PRODUCT_NAME" /> Gizli modunu etkinleştirir.
 
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index b04ce89..5372a6e 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -2351,6 +2351,11 @@
 
       Nếu bạn không đặt chính sách này, thì người dùng sẽ được chọn hình nền cho màn hình đăng nhập và máy tính.</translation>
 <translation id="3315324240256767419">Bật tính năng cửa sổ ảo.</translation>
+<translation id="3318139290984013203">Thêm một miền điền sẵn vào hộp thoại xác thực Kerberos.
+
+          Nếu bạn đặt chính sách này, thì trường "tên người dùng Kerberos" sẽ hiển thị miền điền sẵn ở bên phải. Nếu người dùng nhập tên người dùng của họ, thì tên này sẽ được liên kết với miền điền sẵn. Nếu nội dung người dùng nhập vào có chứa "@", thì miền điền sẵn sẽ không hiển thị và không ảnh hưởng đến nội dung nhập.
+
+          Nếu bạn không đặt chính sách này thì sẽ không có thông tin bổ sung nào hiển thị và quy trình tạo phiếu yêu cầu hỗ trợ sẽ diễn ra như bình thường.</translation>
 <translation id="3323819750604111729">Bật chính sách nhập dấu trang trong lần chạy đầu tiên</translation>
 <translation id="332771718998993005">Xác định tên được quảng cáo là đích <ph name="PRODUCT_NAME" />.
 
@@ -4195,6 +4200,7 @@
 <translation id="5464816904705580310">Định cấu hình cài đặt cho người dùng được quản lý.</translation>
 <translation id="5466596281866046569">Báo cáo thông tin ứng dụng</translation>
 <translation id="546726650689747237">Độ trễ mờ màn hình khi chạy trên nguồn AC</translation>
+<translation id="546830339470589966">Tự động hoàn thành miền cho các phiếu yêu cầu hỗ trợ Kerberos mới</translation>
 <translation id="5469143988693423708">Người dùng được phép chạy Crostini</translation>
 <translation id="5469825884154817306">Chặn hình ảnh trên các trang web này</translation>
 <translation id="5470500958458209831">URL mà từ đó có thể tải cẩm nang Ansible xuống.</translation>
@@ -5039,6 +5045,10 @@
       Nếu bạn không đặt chính sách này cho một trang web, thì hệ thống sẽ áp dụng chính sách của <ph name="DEFAULT_LOCAL_FONTS_SETTING_POLICY_NAME" /> cho trang web đó (nếu có), còn không thì quyền kiểm soát sẽ tuân theo chế độ mặc định của trình duyệt và cho phép người dùng chọn quyền này trên từng trang web.</translation>
 <translation id="6384542789059421431">Bật chế độ hiện trang kết quả của công cụ tìm kiếm mặc định trong bảng điều khiển bên của Trình duyệt</translation>
 <translation id="6394350458541421998">Chính sách này đã chấm dứt kể từ phiên bản <ph name="PRODUCT_OS_NAME" /> 29. Vui lòng sử dụng chính sách PresentationScreenDimDelayScale thay vào đó.</translation>
+<translation id="6396956366662970339">Chỉ định việc có cho phép mô hình sạc thích ứng kìm lại quá trình sạc nhằm kéo dài tuổi thọ pin hay không.
+
+      Khi thiết bị đang kết nối với nguồn điện AC, mô hình sạc thích ứng sẽ đánh giá xem có cần kìm lại quá trình sạc để kéo dài tuổi thọ pin hay không. Nếu có, thì mô hình sạc thích ứng sẽ duy trì pin ở một mức cụ thể (80%) rồi sạc thiết bị lên 100% khi người dùng cần đến.
+      Nếu bạn đặt chính sách này thành Đúng, thì mô hình sạc thích ứng sẽ bật và được phép kìm lại quá trình sạc để kéo dài tuổi thọ pin. Nếu bạn đặt chính sách này thành Sai hoặc không đặt, mô hình sạc thích ứng sẽ không tác động đến quá trình sạc.</translation>
 <translation id="6397588391180665797">Báo cáo cho người dùng về cấu hình mạng trên các thiết bị đã đăng ký.
 
       Nếu bạn tắt chính sách này thì hệ thống sẽ không báo cáo thông tin.
@@ -6378,6 +6388,10 @@
 
       Để biết thông tin chi tiết về các mẫu <ph name="URL_LABEL" /> hợp lệ, vui lòng xem tại https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.  Chính sách này chỉ đối chiếu dựa trên nguồn gốc, nên mọi đường dẫn trong mẫu URL sẽ bị bỏ qua.</translation>
 <translation id="7771298620150437359">Định cấu hình nội dung và thứ tự của ngôn ngữ ưu tiên</translation>
+<translation id="7773790010815041731">Ứng dụng Chrome không còn hoạt động trên <ph name="MS_WIN_NAME" />, <ph name="MAC_OS_NAME" /> và <ph name="LINUX_OS_NAME" />.
+      Nếu bạn bật chính sách này, thì <ph name="PRODUCT_NAME" /> sẽ tiếp tục cho phép Ứng dụng Chrome chạy trên các nền tảng này cho đến ngày cuối cùng, tức là thời điểm mà Ứng dụng Chrome không còn được hỗ trợ trên tất cả nền tảng vào tháng 6 năm 2022.
+      Nếu bạn tắt hoặc không đặt chính sách này, thì Ứng dụng Chrome có thể không được phép chạy, tuỳ thuộc vào trạng thái triển khai việc dừng hỗ trợ.
+      Trong cả hai trường hợp, Ứng dụng Chrome bị buộc cài đặt theo chính sách vẫn được phép chạy.</translation>
 <translation id="7774768074957326919">Sử dụng cài đặt proxy hệ thống</translation>
 <translation id="777734450201217641">Bật phím tắt của tính năng hỗ trợ tiếp cận trên màn hình đăng nhập.
 
@@ -7512,6 +7526,7 @@
 
       Để biết thông tin chi tiết về các mẫu đầu vào hợp lệ, vui lòng xem tại https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Chúng tôi không chấp nhận giá trị <ph name="WILDCARD_VALUE" /> đối với chính sách này. Chính sách này chỉ đối chiếu dựa trên nguồn gốc, nên mọi đường dẫn trong mẫu URL sẽ bị bỏ qua.</translation>
 <translation id="9010080992450148617">Cho phép người dùng đã đăng ký chương trình Bảo vệ nâng cao gửi các tệp đã tải xuống cho Google để quét sâu</translation>
+<translation id="9012101302849557459">Mở rộng phạm vi hỗ trợ cho Ứng dụng Chrome trên <ph name="MS_WIN_NAME" />, <ph name="MAC_OS_NAME" /> và <ph name="LINUX_OS_NAME" />.</translation>
 <translation id="9013875414788074110">Trong khi đăng nhập, <ph name="PRODUCT_OS_NAME" /> có thể xác thực với một máy chủ (trực tuyến) hoặc sử dụng mật khẩu đã lưu vào bộ nhớ đệm (ngoại tuyến).
 
       Khi bạn đặt giá trị -1 cho chính sách này, người dùng có thể xác thực ngoại tuyến một cách vô hạn định. Khi bạn đặt bất kỳ giá trị nào khác cho chính sách này, chính sách sẽ chỉ định khoảng thời gian kể từ lần xác thực trực tuyến cuối cùng, sau thời gian này người dùng phải xác thực trực tuyến lại.
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index e4675c11..68bb6c1 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -100,6 +100,7 @@
 <translation id="1095209545735032039">禁止在这些网站上使用 Serial API</translation>
 <translation id="1096105751829466145">默认搜索服务提供商</translation>
 <translation id="1099282607296956954">为所有网站启用网站隔离功能</translation>
+<translation id="1100840127293327071">默认不勾选用于保留现有浏览数据的选项</translation>
 <translation id="1105572260329131950">使用默认图标表示安全连接</translation>
 <translation id="1107538157073168076">停用数据洞见扩展程序</translation>
 <translation id="1110426799149444997">停用 <ph name="GOOGLE_LENS_PRODUCT_NAME" />区域搜索。</translation>
@@ -256,6 +257,7 @@
       如果您未设置此政策,或替换后的值不是有效的主机名,系统便不会在 DHCP 请求中设置任何主机名。</translation>
 <translation id="1257550411839719984">设置默认下载目录</translation>
 <translation id="1265053460044691532">限制通过SAML验证身份的用户可离线登录的时长</translation>
+<translation id="1271811620059192171">启用政策原子组</translation>
 <translation id="127264587838521316">启用 <ph name="PRODUCT_NAME" /> 扩展程序安装请求</translation>
 <translation id="1272798957154751008">允许将 Chromad 设备迁移到云管理服务</translation>
 <translation id="1274997165432133392">Cookie 及其他网站数据</translation>
@@ -737,6 +739,14 @@
 <translation id="1781356041596378058">此政策亦用于控制对 Android 开发者选项的访问。如果此政策设为 true,用户将无法访问开发者选项。如果此政策设为 false 或未设置,用户只需在 Android 的“设置”应用中连续点按 7 次版本号即可访问开发者选项。</translation>
 <translation id="1787790976045065845">仅当 <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> 政策设为 <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> 或 <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />,并且通过智能卡验证身份的用户移除该卡时,此政策才会生效。通过设置此政策,您可指定旨在让用户知道系统即将执行的操作的通知应持续显示多少秒。此通知会遮住屏幕上的其他内容。仅当此通知显示完毕后,系统才会执行相应操作。用户只需在此通知显示完毕前重新插入智能卡,便能阻止系统执行该操作。如果此政策设为零,系统将不会显示任何通知,并且会立即执行该操作。</translation>
 <translation id="1793346220873697538">默认停用 PIN 码打印</translation>
+<translation id="1794457906032475749">如果此政策已启用,系统会默认勾选相应选项,允许在创建企业资料时保留所有现有浏览数据。
+
+如果此政策未设置或已停用,系统会默认不勾选相应选项,禁止在创建企业资料时保留所有现有浏览数据。
+
+无论此政策的值是什么,用户都能决定是否要在创建企业资料时保留所有现有浏览数据。
+
+如果用于保留现有浏览数据的选项不可用,此政策不会产生任何影响,这种情况会发生于系统严格执行企业资料分隔或者数据来自一份已受管理的资料时。
+</translation>
 <translation id="179694024208061102">如果此政策已启用,<ph name="PRODUCT_NAME" /> 将会尝试在备用浏览器(例如 <ph name="IE_PRODUCT_NAME" />)中打开某些网址。此功能是使用<ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />组中的政策设置的。
 
       如果此政策已停用或未设置,<ph name="PRODUCT_NAME" /> 将不会尝试在备用浏览器中打开指定的网址。</translation>
@@ -1600,6 +1610,7 @@
 
       在 <ph name="MS_WIN_NAME" /> 上,此功能仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的实例、在 Windows 10 专业版上运行的实例,或已注册 Chrome 浏览器云管理的实例。在 <ph name="MAC_OS_NAME" /> 上,此功能仅适用于通过 MDM 进行管理或通过 MCX 加入网域的实例。</translation>
 <translation id="2623014935069176671">等待首个用户活动</translation>
+<translation id="2625026032335150744">默认勾选用于保留现有浏览数据的选项</translation>
 <translation id="2625398797484317969">控制快速解答的设置。</translation>
 <translation id="262740370354162807">允许将文档提交到 <ph name="CLOUD_PRINT_NAME" /></translation>
 <translation id="2633084400146331575">启用语音反馈</translation>
@@ -2021,6 +2032,7 @@
       如需详细了解有效的<ph name="URL_LABEL" />格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。<ph name="WILDCARD_VALUE" /> 不是此政策可接受的值。</translation>
 <translation id="305106159605171619">“用户代理字符串缩短”功能已停用,且未通过现场试验或源试用启用。</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
+<translation id="3063302084011279315">停用“屏幕录制”功能</translation>
 <translation id="3064530882228745118">在 Kerberos 身份验证期间使用 CNAME 查找功能</translation>
 <translation id="3066446511111537292">允许此设备的关联用户使用 ADB 旁加载</translation>
 <translation id="3070119171976169951">禁止第三方图片显示身份验证提示</translation>
@@ -2236,6 +2248,7 @@
 <translation id="3255762580838224124">如果您设置了此政策,那么每当重新启动时或在此政策的值更改后首次连接时,每个显示屏都会旋转到指定方向。用户可在登录后通过“设置”页面更改显示屏旋转角度,但下次重新启动时显示屏仍会遵从更改前的设置。此政策适用于主要显示屏和次要显示屏。
 
       如果此政策未设置,默认值便是 0 度,但用户可以随意更改此值。如果用户更改了默认值,显示屏在重启时将不会重新应用此值。</translation>
+<translation id="3257786863492892609">控制与“屏幕录制”功能相关的政策。</translation>
 <translation id="3258380413685430793">运行所有 <ph name="FLASH_PLUGIN_NAME" /> 内容</translation>
 <translation id="325883417142483505">通过设置此政策,您可以配置企业登录网址(仅限 HTTP 和 HTTPS 协议)列表。密码保护服务会在这些网址上捕获密码的加盐哈希值,以用于检测密码重用情况。为了使 <ph name="PRODUCT_NAME" /> 能够正确捕获密码的加盐哈希值,请务必确保您的登录页面遵循了这些准则 ( https://www.chromium.org/developers/design-documents/create-amazing-password-forms )。
 
@@ -2822,6 +2835,7 @@
       如果此政策已停用或未设置,只有当无任何证书与自动选择政策匹配时,系统才会提示用户。</translation>
 <translation id="3950110092991281616">仅为常规会话启用静默身份验证。</translation>
 <translation id="3950239119790560549">更新时间限制</translation>
+<translation id="3956243291190637924">在打印预览中隐藏页眉和页脚</translation>
 <translation id="3956573780915784996">允许用户收集系统级性能跟踪记录。</translation>
 <translation id="3956686688560604829">为旧版浏览器支持使用 Internet Explorer 的 SiteList 政策。</translation>
 <translation id="3958586912393694012">允许使用 Smart Lock</translation>
@@ -3059,6 +3073,16 @@
       如果此政策已停用或未设置,用户便可在使用移动网络连接时将文件传输到 Google 云端硬盘。</translation>
 <translation id="4248277954659222481">允许符合网址格式许可名单中所列格式的网页自动播放媒体内容</translation>
 <translation id="4250680216510889253">否</translation>
+<translation id="4259636715493757956">让您能在 <ph name="WEBVIEW_PRODUCT_NAME" /> 中为身份验证网址指定配置。
+
+      这些身份验证网址将被 <ph name="WEBVIEW_PRODUCT_NAME" /> 视为特殊网址,因此在身份验证期间,当网页在 <ph name="WEBVIEW_PRODUCT_NAME" /> 中被导航到身份验证网址时,系统将会启动可处理此身份验证网址的相应身份提供方身份验证器应用。
+
+      身份提供方将使用上述身份提供方身份验证器应用启动流程来支持一些使用情形(例如提供跨应用式单点登录)或通过以下方式提供更高的安全性:在身份验证期间收集零信任设备信号以了解设备状态。
+
+      如果设备上未安装任何用于处理身份验证网址的有效应用,导航将在 <ph name="WEBVIEW_PRODUCT_NAME" /> 中继续。
+
+      身份验证网址的格式必须符合 https://www.chromium.org/administrators/url-blocklist-filter-format 中列出的要求。
+      </translation>
 <translation id="4260027436474745627">如果您设置了此政策,逗号分隔列表中指定的每个来源都将在一个专用进程中运行。所指定的每个来源的进程都只能包含来自相应来源及其子网域的文档。例如,如果指定 https://a1.example.com/,则同一进程中可以包含 https://a2.a1.example.com/,但不可包含 https://example.com 或 https://b.example.com。
 
       从 <ph name="PRODUCT_NAME" /> 77 版起,您也可以使用通配符来指定一系列要隔离的来源。例如,如果指定 https://[*.]corp.example.com,则 https://corp.example.com 下的每个来源都会有自己的专用进程,包括 https://corp.example.com 本身、https://a1.corp.example.com 和 https://a2.a1.corp.example.com。
@@ -3194,10 +3218,12 @@
 <translation id="441686537793821907">阻止安装外部扩展程序</translation>
 <translation id="4423597592074154136">手动指定代理设置</translation>
 <translation id="4424004842303301809">停用关于数据泄露预防事件的报告</translation>
+<translation id="4426601693403743089">为 Family Link 用户停用“屏幕录制”功能 dogfood</translation>
 <translation id="4427173305799125784">PDF 查看器无法在 PDF 文件中添加注释</translation>
 <translation id="4432762137771104529">启用安全浏览扩展报告功能</translation>
 <translation id="443454694385851356">旧版(不安全)</translation>
 <translation id="443665821428652897">在浏览器关闭时清除网站数据(已弃用)</translation>
+<translation id="4436941175475497595">停用打印预览</translation>
 <translation id="4439336120285389675">指定要临时重新启用的已弃用网络平台功能的列表。
 
       通过此政策,管理员可以使已弃用的网络平台功能在限定的时间内重新发挥功效。这些功能用字符串标记进行标识,与通过此政策指定的列表中包含的标记对应的功能将被重新启用。
@@ -4238,6 +4264,7 @@
       注意:若要指定多个服务器名称,请用英文逗号分隔。允许使用通配符 <ph name="WILDCARD_VALUE" />。</translation>
 <translation id="5645779841392247734">在这些网站上允许 Cookie</translation>
 <translation id="5646234199535103501">OnBulkDataEntry Chrome Enterprise Connector 的配置政策</translation>
+<translation id="5648016151508002741">禁止执行在线 <ph name="OCSP_CRL_LABEL" /> 检查</translation>
 <translation id="5649046890958064703">如果为 <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> 选择了 <ph name="PRINTERS_BLACKLIST" />,您便可通过设置 <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" /> 来指定用户不能使用哪些打印机。除了与此政策中所列 ID 对应的打印机之外,其他所有打印机都可供用户使用。ID 必须与 <ph name="DEVICE_PRINTERS_POLICY_NAME" /> 所指定文件内的<ph name="ID_FIELD" />或<ph name="GUID_FIELD" />字段相符。
 
       此政策已被弃用,请改用 <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />。</translation>
@@ -4483,6 +4510,7 @@
 <translation id="5893303508158298667">如果 <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> 已启用且 <ph name="REMOTE_ACCESS_HOST_ALLOW_RELAYED_CONNECTION_POLICY_NAME" /> 已启用或未设置,当无法(例如,因受到防火墙限制)直接连接到这台计算机时,远程客户端可通过中继服务器建立连接。
 
       如果此政策已停用,系统将不会关闭远程访问功能,但只接受从同一网络内(而非通过 NAT 穿越或中继)发起的连接。</translation>
+<translation id="5897234314586602143">在打印预览中显示页眉和页脚</translation>
 <translation id="5897913798715600338">使用快速充电技术为电池充电。</translation>
 <translation id="5898486742390981550">如果有多个用户同时登录,则只有主要用户可以使用 Android 应用。</translation>
 <translation id="5899751601113377553">禁止用户使用 <ph name="LACROS_NAME" /></translation>
@@ -4777,6 +4805,7 @@
       此政策的每个列表项都是一个字符串,其中包含一个扩展程序 ID 和一个可选的“更新”网址(这两者之间以英文分号 <ph name="SEMICOLON" /> 分隔)。扩展程序 ID 是一个由 32 个字母构成的字符串;若想查看该字符串,一种方法是在开发者模式下访问 <ph name="CHROME_EXTENSIONS_LINK" />。“更新”网址(若指定)应指向一个更新清单 XML 文档,如 <ph name="LINK_TO_EXTENSION_DOC1" /> 中所述。默认情况下,系统会使用 Chrome 应用商店的更新网址(该网址目前为“https://clients2.google.com/service/update2/crx”)。请注意,此政策中设置的“更新”网址仅用于初次安装;相应扩展程序的后续更新将会使用该扩展程序的清单中指定的更新网址。
 
       例如,<ph name="LOGIN_SCREEN_EXTENSION_POLICY_EXAMPLE" /> 会从标准 Chrome 应用商店“更新”网址安装 <ph name="SMART_CARD_CONNECTOR_APP_NAME" /> 应用。如需详细了解如何托管扩展程序,请访问 <ph name="LINK_TO_EXTENSION_DOC2" />。</translation>
+<translation id="6274202259872570803">屏幕录制</translation>
 <translation id="6275497712828649588">使用可能不安全的命令行标记时隐藏安全警告</translation>
 <translation id="6275833043726517413">使用旧版 <ph name="CORS" /> 实现方案,而非新版 <ph name="CORS" />。
 
@@ -4810,7 +4839,15 @@
 
       仅当 <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> 设为 False 时,设置 <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> 才会产生影响。</translation>
 <translation id="6305373713165475629">通过设置此政策,您可以替换默认打印颜色模式。如果这种模式不适用,系统会忽略此政策。</translation>
+<translation id="6308109234708949641">通过设置此政策,您可为 Family Link 用户启用“屏幕录制”功能,并授权该功能创建录屏、转录所录内容并将其上传到云端硬盘。
+      此政策不会影响其他类型的用户。
+      此政策不会影响适用于企业用户的 <ph name="PROJECTOR_ENABLED_POLICY_NAME" /> 政策。
+
+      如果此政策已启用,系统将为 Family Link 用户启用“屏幕录制”功能 dogfood。
+      如果此政策已停用,系统将为 Family Link 用户停用“屏幕录制”功能 dogfood。
+      如果此政策未设置,默认情况下,系统将为 Family Link 用户停用“屏幕录制”功能 dogfood。</translation>
 <translation id="6310223829319187614">允许在用户登录期间自动填充域名</translation>
+<translation id="6310756730808079944">启用“屏幕录制”功能</translation>
 <translation id="631081324835911099">当用户主帐号的身份验证令牌失效后,强制用户退出登录状态。
         此政策可避免用户访问 Google 网络媒体资源上的受限内容。
         如果此政策设为 True,一旦用户的身份验证令牌失效且为恢复此令牌而进行的尝试遭遇失败,系统便会立即让用户退出登录状态。
@@ -4977,6 +5014,13 @@
 <translation id="6478258366184919502">登录和屏幕来源</translation>
 <translation id="6478261301433199402">通过设置此政策,您可以指定用户的 <ph name="PLUGIN_VM_NAME" /> 映像。此政策应指定为一个 JSON 格式字符串:使用 <ph name="URL_PLUGIN_VM_IMAGE_FIELD" /> 指明相应映像的下载位置,并使用 <ph name="HASH_PLUGIN_VM_IMAGE_FIELD" /> 指定用于验证下载内容是否完整的 SHA-256 哈希值。</translation>
 <translation id="6481245670325946423">允许使用无头模式</translation>
+<translation id="648158446793103284">通过设置此政策,您可允许用户从您为 <ph name="PRODUCT_OS_NAME" /> 会话指定的输入法中选择其一。
+
+       如果此政策设为一个空列表或未设置,用户将可以选择所有受支持的输入法。
+
+       从版本 M106 开始,系统会自动在自助服务终端会话中启用允许的输入法。
+
+      注意:如果当前输入法不受支持,它会切换为硬件键盘布局(如果允许)或此列表中的第一个有效条目。无效输入法或不受支持的输入法将被忽略。</translation>
 <translation id="6489084406497912050">控制用户是否可以添加 Kerberos 帐号。
 
           如果此政策已启用或未设置,用户将可以通过 Kerberos 设置页中的“Kerberos 帐号”设置添加 Kerberos 帐号。用户对自己添加的帐号拥有完全控制权,可以修改或移除这些帐号。
@@ -5184,6 +5228,12 @@
           如果此政策的值设置为 False 或未配置,则系统将停用受监管用户创建和登录功能,并会隐藏所有现有的受监管用户。
 
           请注意,普通用户设备和企业设备的默认行为有所不同:默认情况下,系统会在普通用户设备上启用受监管用户,而在企业设备上停用受监管用户。</translation>
+<translation id="6648746349186337075">此政策旨在授权“屏幕录制”功能为企业用户创建录屏、转录所录内容并将其上传到云端硬盘。
+      此政策不会影响 Family Link 用户。
+      此政策不会影响适用于 Family Link 用户的 <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" /> 政策。
+
+      如果此政策未设置或已启用,系统将启用“屏幕录制”功能。
+      如果此政策已停用,系统将停用“屏幕录制”功能。</translation>
 <translation id="665023848306499203">允许设备选择要更新到的特定版本</translation>
 <translation id="6652197835259177259">本地受管理的用户设置</translation>
 <translation id="6653897159826215341">如果此政策已启用,当用户请求打印某个页面时,<ph name="PRODUCT_NAME" /> 将打开系统打印对话框而非内置打印预览。
@@ -5199,6 +5249,7 @@
       如果此政策设为 False,系统将会应用默认网址显示方式。
       如果此政策未设置,系统将会应用默认网址显示方式,而且用户将能使用一个上下文菜单选项,在默认网址显示方式和完整网址显示方式之间切换。
       </translation>
+<translation id="6670794785040100077">禁止将文档提交到 <ph name="CLOUD_PRINT_NAME" /></translation>
 <translation id="6672070613706645316">允许用户在“新标签页”页面上自定义背景</translation>
 <translation id="6672630473862787247">为常规会话、无痕会话和访客会话启用静默身份验证。</translation>
 <translation id="6685903773201985073">为访客会话和常规会话启用静默身份验证。</translation>
@@ -5286,6 +5337,7 @@
       如果您不设置 <ph name="DEFAULT_SEARCH_PROVIDER_SEARCH_URL_POST_PARAMS_POLICY_NAME" />,系统将使用 GET 方法发送网址搜索请求。</translation>
 <translation id="6757613329154374267">已启用备份和恢复服务</translation>
 <translation id="6758659208493449452">此政策决定了加入“高级保护”计划的用户是否可获享额外的保护。其中部分功能可能涉及与 Google 共享数据(例如,加入“高级保护”计划的用户可将他们的下载内容发送给 Google 进行恶意软件扫描)。如果此政策设为 True 或未设置,已加入“高级保护”计划的用户将会获享额外的保护。如果此政策设为 False,已加入“高级保护”计划的用户只能使用标准的消费者级功能。</translation>
+<translation id="6763023079133439068">允许使用由本地信任锚颁发的缺少 subjectAlternativeName 扩展项的证书</translation>
 <translation id="6766216162565713893">允许网站请求用户授予对附近蓝牙设备的访问权限</translation>
 <translation id="6770454900105963262">报告自助服务终端的相关信息</translation>
 <translation id="6782977971207381602">如果此政策已启用,系统会允许设备在 <ph name="PRODUCT_OS_NAME" />下运行虚拟机。<ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> 和 <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> 必须均已启用,才能使用 <ph name="PRODUCT_CROSTINI_NAME" />。如果此政策已停用,意味着设备无法运行虚拟机。如果将此政策的状态改为已停用,此政策将开始应用于新启动的虚拟机,而非应用于已在运行的虚拟机。
@@ -5907,6 +5959,7 @@
 <translation id="7458437477941640506">如果操作系统版本比目标版本新,则不会回滚到目标版本。相应更新也会被停用。</translation>
 <translation id="7459601923199346224">控制证书管理机制的用户和设备政策。</translation>
 <translation id="7459633275230216698">允许显示文件选择对话框</translation>
+<translation id="7464058117970792805">启用打印预览</translation>
 <translation id="7464991223784276288">仅在当前会话中使用来自相符网址的 Cookie</translation>
 <translation id="7468182772656807573">通过设置此政策,您可决定监控网络数据包的发送频率(以毫秒为单位)。时间间隔应介于 30 秒到 24 小时之间。任何不在此范围内的值都会被强制改为距其较近的那个限值(上限值或下限值)。
 
@@ -6087,6 +6140,7 @@
       如果此政策已启用或未设置,系统将启用快速解答单位换算功能。
       如果此政策已停用,系统将停用快速解答单位换算功能。</translation>
 <translation id="7587345076013230465">当登录屏幕上有多份客户端证书与自动选择政策匹配时,提示用户做出选择</translation>
+<translation id="7587921466180902617">为 Family Link 用户启用“屏幕录制”功能 dogfood</translation>
 <translation id="759957074386651883">安全浏览设置</translation>
 <translation id="7604169113182304895">Android 应用可能会主动选择采纳该列表。您无法强制此类应用采纳该列表。</translation>
 <translation id="7612157962821894603">在 <ph name="PRODUCT_NAME" /> 启动时应用于整个系统的设置</translation>
@@ -6283,6 +6337,7 @@
 <translation id="7823902813460802031">如果此政策已启用,<ph name="PRODUCT_OS_NAME" />会阻止相应设备进入开发者模式。
 
        如果此政策已停用或未设置,相应设备将可以使用开发者模式。</translation>
+<translation id="7824000841504721945">停用政策原子组</translation>
 <translation id="782661371433719637">不允许任何网站通过 File System API 请求对文件和目录的读取权限</translation>
 <translation id="7827127381981620448">平台应用</translation>
 <translation id="7833148823006528332">Android 应用标识符,例如“com.google.android.gm”是 Gmail 的标识符</translation>
@@ -6333,6 +6388,7 @@
 
       建议:若要在设备闲置时锁定屏幕,您可让系统在进入暂停状态时锁定屏幕,并指示 <ph name="PRODUCT_OS_NAME" />在闲置延迟时间过后进入暂停状态。只有在以下情况下才应使用此政策:屏幕锁定时间应显著早于系统进入暂停状态的时间,或者您不需要在设备闲置时暂停系统。</translation>
 <translation id="7895553628261067384">远程访问</translation>
+<translation id="7900469325540540107">默认在创建企业资料时保留浏览数据</translation>
 <translation id="7902040092815978832">在用户输入密码时显示数字键盘</translation>
 <translation id="7904177352786629708">如果此政策已启用,系统便会跳过 CNAME 查找步骤。当生成 Kerberos SPN 时,系统会使用输入的服务器名称。
 
@@ -6367,6 +6423,7 @@
 <translation id="793473937901685727">为 ARC 应用设置证书可用性</translation>
 <translation id="7936302526928951356">User-Agent 字符串不会冻结主要版本。</translation>
 <translation id="7937766917976512374">是否允许视频捕获</translation>
+<translation id="7941528208359969119">允许执行在线 <ph name="OCSP_CRL_LABEL" /> 检查</translation>
 <translation id="7941975817681987555">采用任何网络连接时,均不预测网络操作</translation>
 <translation id="7946350455013548764">如果此政策设为 3,系统会允许网站请求对 HID 设备的访问权限。如果此政策设为 2,系统会禁止网站访问 HID 设备。
 
@@ -6739,6 +6796,7 @@
 
       如果您不设置 <ph name="DEFAULT_SEARCH_PROVIDER_IMAGE_URL_POST_PARMS_POLICY_NAME" />,系统将使用 GET 方法发送图片搜索请求。</translation>
 <translation id="8314214821702356835">允许用户在设备锁定时播放媒体</translation>
+<translation id="8316940611391250886">禁止使用缺少 subjectAlternativeName 扩展项的证书</translation>
 <translation id="8319678975002906774">为特定来源的网站设定受管理配置值</translation>
 <translation id="8320149248919453401">电池充电模式</translation>
 <translation id="8327651196906278510">允许这些来源使用标签页截取功能</translation>
@@ -7480,6 +7538,7 @@
 <translation id="9135033364005346124">启用“<ph name="CLOUD_PRINT_NAME" />”代理</translation>
 <translation id="9136212796239682721">停用下载气泡界面</translation>
 <translation id="9136399279941091445">发布指定设备政策后的非工作时间的间隔</translation>
+<translation id="9148720248753722892">禁止使用 SHA-1 签名证书</translation>
 <translation id="9150416707757015439">此政策已弃用,请改用 IncognitoModeAvailability。在 <ph name="PRODUCT_NAME" />中启用隐身模式。如果已启用或未配置此设置,用户就可以在隐身模式下打开网页。如果停用此设置,用户就无法在隐身模式下打开网页。如果未设置此政策,将会启用此设置,用户便能使用隐身模式。</translation>
 <translation id="9152473318295429890">允许根据上下文建议相关的网页</translation>
 <translation id="9153446010242995516">如果操作系统版本比目标版本新,则回滚到目标版本,并一直使用此版本。如果可能,会尝试通过回滚过程保留设备级配置(包括网络凭据),但即使无法恢复数据(因为目标版本不支持恢复数据,或因为发生了无法向后兼容的更改),也会通过执行完整的 Powerwash 操作进行回滚。
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index 3c08882..acb4ec11 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -100,6 +100,7 @@
 <translation id="1095209545735032039">封鎖這些網站上的 Serial API</translation>
 <translation id="1096105751829466145">預設搜尋引擎</translation>
 <translation id="1099282607296956954">為所有網站啟用網站隔離</translation>
+<translation id="1100840127293327071">不要勾選保留現有瀏覽資料的預設選項</translation>
 <translation id="1105572260329131950">使用預設圖示代表安全連線</translation>
 <translation id="1107538157073168076">停用深入分析擴充功能</translation>
 <translation id="1110426799149444997">停用 <ph name="GOOGLE_LENS_PRODUCT_NAME" />的區域搜尋功能。</translation>
@@ -254,6 +255,7 @@
       如果不設定這項政策,或是替換後的值不是有效的主機名稱,則系統不會在 DHCP 要求中設定主機名稱。</translation>
 <translation id="1257550411839719984">設定預設的下載目錄</translation>
 <translation id="1265053460044691532">限制透過 SAML 驗證的使用者可離線登入的時間</translation>
+<translation id="1271811620059192171">啟用政策不可部分完成的群組</translation>
 <translation id="127264587838521316">啟用 <ph name="PRODUCT_NAME" /> 擴充功能安裝要求</translation>
 <translation id="1272798957154751008">允許將 Chromad 裝置遷移至雲端管理服務</translation>
 <translation id="1274997165432133392">Cookie 和其他網站資料</translation>
@@ -739,6 +741,14 @@
 <translation id="1781356041596378058">這項政策也可以控制 Android 開發人員選項的存取權。如果將這項政策設為 true,使用者將無法存取開發人員選項。如果將這項政策設為 false 或不予設定,使用者只要在 Android 設定應用程式中輕觸版本號碼 7 次,即可存取開發人員選項。</translation>
 <translation id="1787790976045065845">只有當 <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> 政策設為 <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> 或 <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />,且透過智慧型卡片驗證的使用者移除該智慧型卡片時,這項政策才會生效。這項政策會指定當系統通知使用者即將執行的動作時,通知要顯示幾秒。這項通知會遮住螢幕。系統會在這項通知到期後才執行動作。如要避免系統執行該動作,使用者可在通知到期之前重新插入智慧型卡片。如果將這項政策設為 0,則系統不會顯示通知,並會立即執行動作。</translation>
 <translation id="1793346220873697538">預設為停用 PIN 碼列印模式</translation>
+<translation id="1794457906032475749">如果啟用這項政策,系統預設會勾選保留在建立企業設定檔時所有現有瀏覽資料的選項。
+
+如果不設定或停用這項政策,系統預設不會勾選保留在建立企業設定檔時任何現有瀏覽資料的選項。
+
+無論這個值為何,使用者都能在建立企業設定檔時,決定是否要保留任何現有瀏覽資料。
+
+如果系統沒有提供保留現有瀏覽資料的選項,這項政策就不會產生任何作用;要是強制執行企業設定檔區隔功能,或是資料來自受管理的設定檔,就會發生這種情況。
+</translation>
 <translation id="179694024208061102">如果將這項政策設為啟用,<ph name="PRODUCT_NAME" /> 會嘗試在替代瀏覽器中 (例如 <ph name="IE_PRODUCT_NAME" />) 開啟部分網址。系統會使用「<ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />」群組中的政策設定這項功能。
 
 
@@ -1606,6 +1616,7 @@
 
       在 <ph name="MS_WIN_NAME" /> 上,這項功能僅適用於已加入 <ph name="MS_AD_NAME" /> 網域的執行個體、在 Windows 10 專業版上執行的執行個體,或是已註冊 Chrome 瀏覽器雲端管理服務的執行個體。在 <ph name="MAC_OS_NAME" /> 上,這項功能僅適用於透過行動裝置管理 (MDM) 進行管理或透過 MCX 加入網域的執行個體。</translation>
 <translation id="2623014935069176671">等待初始使用者活動</translation>
+<translation id="2625026032335150744">勾選保留現有瀏覽資料的預設選項</translation>
 <translation id="2625398797484317969">控管快速解答功能的設定。</translation>
 <translation id="262740370354162807">啟用「<ph name="CLOUD_PRINT_NAME" />」文件提交功能</translation>
 <translation id="2633084400146331575">啟用互動朗讀</translation>
@@ -2026,6 +2037,7 @@
       想進一步瞭解有效的<ph name="URL_LABEL" />模式,請參閱 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。<ph name="WILDCARD_VALUE" /> 不是這項政策許可的值。</translation>
 <translation id="305106159605171619">使用者代理程式縮減功能已停用,且並未透過 Field-Trials 或 Origin-Trials 功能啟用。</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
+<translation id="3063302084011279315">停用螢幕側錄功能</translation>
 <translation id="3064530882228745118">在 Kerberos 驗證期間使用 CNAME 查詢</translation>
 <translation id="3066446511111537292">允許這部裝置的相關使用者採用 ADB 側載</translation>
 <translation id="3070119171976169951">禁止第三方映像檔顯示驗證提示</translation>
@@ -2238,6 +2250,7 @@
 <translation id="3255762580838224124">你可以透過這項政策,在裝置每次重新啟動以及政策值變更後裝置首次連線時,將每個螢幕依指定方向旋轉。使用者可以在登入後透過設定頁面變更螢幕旋轉設定,但裝置下次重新啟動時,系統會恢復成這項政策的設定值。這項政策適用於主要螢幕和次要螢幕。
 
       如果未設定,預設值為 0 度,且使用者可自行變更。在這種情況下,系統不會在裝置重新啟動時重新套用預設值。</translation>
+<translation id="3257786863492892609">控管螢幕側錄的各項政策。</translation>
 <translation id="3258380413685430793">執行所有 <ph name="FLASH_PLUGIN_NAME" /> 內容</translation>
 <translation id="325883417142483505">你可以透過設定這項政策設定企業登入網址清單 (僅限 HTTP 和 HTTPS 通訊協定)。密碼保護服務會從這些網址擷取密碼的加鹽雜湊值,並用於偵測密碼重複使用情形。為了讓 <ph name="PRODUCT_NAME" /> 能正確擷取密碼的加鹽雜湊值,請確保你的登入頁面遵循以下網址所述的指南:https://www.chromium.org/developers/design-documents/create-amazing-password-forms。
 
@@ -2823,6 +2836,7 @@
       如果將這項政策設為 Disabled 或不予設定,則只有在沒有任何符合自動選取政策的憑證時,系統才會提示使用者。</translation>
 <translation id="3950110092991281616">僅在一般工作階段中啟用背景驗證功能。</translation>
 <translation id="3950239119790560549">更新時間限制</translation>
+<translation id="3956243291190637924">在列印預覽中隱藏標頭和頁尾</translation>
 <translation id="3956573780915784996">允許使用者收集整個系統的效能追蹤記錄。</translation>
 <translation id="3956686688560604829">使用 Internet Explorer 的 SiteList 政策取得舊版瀏覽器支援。</translation>
 <translation id="3958586912393694012">允許使用 Smart Lock</translation>
@@ -3060,6 +3074,16 @@
       如果將這項政策設為停用或不設定,使用者可在使用行動網路連線時,將檔案傳輸至雲端硬碟。</translation>
 <translation id="4248277954659222481">允許符合網址模式許可清單的網頁自動播放媒體</translation>
 <translation id="4250680216510889253">否</translation>
+<translation id="4259636715493757956">這項政策允許你在 <ph name="WEBVIEW_PRODUCT_NAME" /> 中指定驗證網址的設定。
+
+      <ph name="WEBVIEW_PRODUCT_NAME" /> 會將這些驗證網址視為特殊網址,因此系統將 <ph name="WEBVIEW_PRODUCT_NAME" /> 的網頁重新導向到驗證網址時,就會在驗證期間啟動可處理這個驗證網址的對應識別資訊提供者驗證器應用程式。
+
+      有了這項識別資訊提供者驗證器應用程式啟動流程,識別資訊提供者得以提供許多服務,例如在應用程式間提供單一登入 (SSO) 服務,或者透過收集零信任裝置信號的方式瞭解裝置在驗證時的狀態,以提供更完善的安全防護。
+
+      如果裝置未安裝可處理驗證網址的有效應用程式,系統就會在 <ph name="WEBVIEW_PRODUCT_NAME" /> 中繼續進行導向。
+
+      驗證網址模式的格式必須符合 https://www.chromium.org/administrators/url-blocklist-filter-format 的規定。
+      </translation>
 <translation id="4260027436474745627">如果設定這項政策,逗號分隔清單中指定的每個來源就會在獨立程序中執行。每個指定來源的程序都只能容納來自相同來源及其子網域的文件。舉例來說,如果指定 https://a1.example.com/,https://a2.a1.example.com/ 就能使用同一個程序,但是 https://example.com 和 https://b.example.com 並不能使用同一個程序。
 
       自 <ph name="PRODUCT_NAME" /> 第 77 版起,你也可以使用萬用字元來指定要隔離的來源範圍。舉例來說,如果指定 https://[*.]corp.example.com,則 https://corp.example.com 底下的每個來源都會在獨立程序中執行,其中包括 https://corp.example.com 本身、https://a1.corp.example.com 和 https://a2.a1.corp.example.com。
@@ -3194,10 +3218,12 @@
 <translation id="441686537793821907">禁止安裝外部擴充功能</translation>
 <translation id="4423597592074154136">手動指定 Proxy 設定</translation>
 <translation id="4424004842303301809">停用資料外洩防護事件的回報功能</translation>
+<translation id="4426601693403743089">為 Family Link 使用者停用螢幕側錄 Dogfood 測試</translation>
 <translation id="4427173305799125784">PDF 檢視器無法為 PDF 加註</translation>
 <translation id="4432762137771104529">啟用安全瀏覽模式的進階回報功能</translation>
 <translation id="443454694385851356">舊版 (不安全)</translation>
 <translation id="443665821428652897">瀏覽器關閉時清除網站資料 (已淘汰)</translation>
+<translation id="4436941175475497595">停用列印預覽</translation>
 <translation id="4439336120285389675">指定要暫時重新啟用的已淘汰網路平台功能清單。
 
       這項政策可讓管理員在限定時間內重新啟用已淘汰的網路平台功能。系統會使用字串標記辨識功能,並根據這項政策在清單中指定的標記重新啟用對應的功能。
@@ -4237,6 +4263,7 @@
       注意:請以半形逗號分隔伺服器名稱,可使用萬用字元 (<ph name="WILDCARD_VALUE" />)。</translation>
 <translation id="5645779841392247734">允許這些網站的 Cookie</translation>
 <translation id="5646234199535103501">OnBulkDataEntry Chrome Enterprise Connector 的配置政策</translation>
+<translation id="5648016151508002741">不允許執行線上 <ph name="OCSP_CRL_LABEL" /> 檢查</translation>
 <translation id="5649046890958064703">如果在 <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> 中選擇了 <ph name="PRINTERS_BLACKLIST" />,系統會根據 <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" /> 的設定指定使用者不能操作的印表機。除了這項政策所列 ID 的印表機外,其他印表機皆可供使用。印表機 ID 必須與 <ph name="DEVICE_PRINTERS_POLICY_NAME" /> 政策指定檔案的 <ph name="ID_FIELD" /> 或 <ph name="GUID_FIELD" /> 欄位值相符。
 
       這項政策已遭淘汰,請改用 <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />。</translation>
@@ -4470,6 +4497,7 @@
 <translation id="5893303508158298667">若已啟用 <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" />,同時又啟用 <ph name="REMOTE_ACCESS_HOST_ALLOW_RELAYED_CONNECTION_POLICY_NAME" /> 或不去設定它,遠端用戶端可在無法直接連線時 (例如受到防火牆限制),使用轉送伺服器連線至這部裝置。
 
       如果停用這項政策,系統不會封鎖遠端存取權,但只會允許來自相同網路的連線,禁止網路位址轉譯 (NAT) 穿越或轉送而來的連線。</translation>
+<translation id="5897234314586602143">在列印預覽中顯示標頭和頁尾</translation>
 <translation id="5897913798715600338">使用快速充電技術為電池充電。</translation>
 <translation id="5898486742390981550">如有多位使用者同時登入,只有主要使用者可以使用 Android 應用程式。</translation>
 <translation id="5899751601113377553">禁止使用者使用 <ph name="LACROS_NAME" /></translation>
@@ -4763,6 +4791,7 @@
           這項政策的每個清單項目都是一行字串,其中包含以分號 (<ph name="SEMICOLON" />) 區隔的擴充功能 ID 和「更新」網址 (選用)。擴充功能 ID 為 32 個字母的字串,如需查看範例,請在開發人員模式下前往 <ph name="CHROME_EXTENSIONS_LINK" />。「更新」網址 (如有指定) 應指向更新資訊清單 XML 文件,如 <ph name="LINK_TO_EXTENSION_DOC1" /> 所述。根據預設,系統會使用 Chrome 線上應用程式商店的更新網址 (目前為「https://clients2.google.com/service/update2/crx」)。請注意,這項政策設定的「更新」網址僅適用於初次安裝,後續的擴充功能更新將採用擴充功能資訊清單指定的更新網址。
 
       舉例來說,<ph name="LOGIN_SCREEN_EXTENSION_POLICY_EXAMPLE" /> 會從標準的 Chrome 線上應用程式商店「更新」網址安裝「<ph name="SMART_CARD_CONNECTOR_APP_NAME" />」應用程式。如要進一步瞭解如何代管擴充功能,請參閱以下連結:<ph name="LINK_TO_EXTENSION_DOC2" />。</translation>
+<translation id="6274202259872570803">螢幕側錄</translation>
 <translation id="6275497712828649588">在使用具有安全疑慮的指令列旗標時,隱藏安全性警告。</translation>
 <translation id="6275833043726517413">使用舊版 <ph name="CORS" /> 模式,而不使用新版 <ph name="CORS" />。
 
@@ -4796,7 +4825,15 @@
 
       只有將 <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> 設為 False,<ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> 設定才會生效。</translation>
 <translation id="6305373713165475629">如果設定這項政策,將覆寫預設的列印色彩模式。如果系統不支援設定的模式,將會忽略這項政策。</translation>
+<translation id="6308109234708949641">這項政策會為 Family Link 使用者啟用螢幕側錄功能,並授予這項功能權限,藉此建立及轉錄螢幕畫面錄製內容,並上傳至雲端硬碟。
+      這項政策不適用於其他類型的使用者。
+      這項政策不會影響企業版使用者的 <ph name="PROJECTOR_ENABLED_POLICY_NAME" /> 政策。
+
+      如果啟用這項政策,系統會為 Family Link 使用者啟用螢幕側錄 Dogfood 測試。
+      如果停用這項政策,系統會為 Family Link 使用者停用螢幕側錄 Dogfood 測試。
+      如果不設定這項政策,系統預設會為 Family Link 使用者停用螢幕側錄 Dogfood 測試。</translation>
 <translation id="6310223829319187614">允許在使用者登入過程中以自動完成功能填入網域名稱</translation>
+<translation id="6310756730808079944">啟用螢幕側錄功能</translation>
 <translation id="631081324835911099">強制登出主要帳戶驗證憑證失效的使用者。
         這項政策可以避免使用者存取 Google 網路資源上的受限制內容。
         如果將這項政策設為 True,當使用者的驗證憑證失效,且嘗試復原這項憑證失敗時,系統會將使用者登出。
@@ -4961,6 +4998,13 @@
 <translation id="6478258366184919502">登入及螢幕來源</translation>
 <translation id="6478261301433199402">你可以透過這項政策,指定使用者的 <ph name="PLUGIN_VM_NAME" /> 映像檔。請使用 JSON 格式字串指定這項政策,其中 <ph name="URL_PLUGIN_VM_IMAGE_FIELD" /> 可指定要下載映像檔的位置,而 <ph name="HASH_PLUGIN_VM_IMAGE_FIELD" /> 可做為 SHA-256 雜湊,用於驗證下載內容的完整性。</translation>
 <translation id="6481245670325946423">允許使用無頭模式</translation>
+<translation id="648158446793103284">如果你設定了這項政策,使用者就可以在 <ph name="PRODUCT_OS_NAME" /> 工作階段中選擇你指定的其中一種輸入法。
+
+       如果未設定或設為空白清單,使用者就能選取所有支援的輸入法。
+
+       自版本 M106 開始,系統會自動在資訊站工作階段中啟用已允許的輸入法。
+
+      注意:如果系統不支援目前的輸入法,就會將輸入法切換至硬體鍵盤配置 (如果情況允許),或是這份清單中的第一個有效項目,並且忽略無效或不支援的輸入法。</translation>
 <translation id="6489084406497912050">控管使用者是否可以新增 Kerberos 帳戶。
 
           如果將這項政策設為啟用或不設定,使用者可能可以透過 Kerberos 設定頁面中的「Kerberos 帳戶」設定來新增 Kerberos 帳戶。使用者可以完全控管自己新增的帳戶,也可以修改或移除帳戶。
@@ -5167,6 +5211,13 @@
           如果設為 False 或不予設定,則無法建立及登入受監督的使用者帳戶。系統將全面隱藏現有的受監督使用者。
 
           注意:一般使用者和企業客戶的裝置對於這項設定的預設值有所不同。在預設狀態下,一般使用者的裝置會啟用建立受監督使用者的功能,但企業戶的裝置則會停用這項功能。</translation>
+<translation id="6648746349186337075">這項政策會授予螢幕側錄權限,讓企業版使用者能建立及轉錄螢幕畫面錄製內容,並上傳至雲端硬碟。
+
+      這項政策不適用於 Family Link 使用者。
+      這項政策不會影響 Family Link 使用者的 <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" /> 政策。
+
+      如果不設定或啟用這項政策,系統會啟用螢幕側錄功能。
+      如果停用這項政策,則系統會停用螢幕側錄功能。</translation>
 <translation id="665023848306499203">讓裝置選取要更新的特定版本</translation>
 <translation id="6652197835259177259">本機管理化環境下的使用者設定</translation>
 <translation id="6653897159826215341">如果將這項政策設為啟用,<ph name="PRODUCT_NAME" /> 在使用者提出列印要求時會開啟系統列印對話方塊,而不是內建的列印預覽。
@@ -5182,6 +5233,7 @@
       如果將這項政策設為 False,系統會套用預設的網址顯示方式。
       如果不設定這項政策,系統會套用預設的網址顯示方式,且使用者將能透過內容選單選項,在預設和完整的網址顯示方式之間切換。
       </translation>
+<translation id="6670794785040100077">停用將文件提交到 <ph name="CLOUD_PRINT_NAME" />的功能</translation>
 <translation id="6672070613706645316">允許使用者自訂新分頁的背景</translation>
 <translation id="6672630473862787247">在一般工作階段、無痕模式工作階段和訪客工作階段中啟用背景驗證。</translation>
 <translation id="6685903773201985073">在訪客工作階段和一般工作階段中啟用背景驗證。</translation>
@@ -5267,6 +5319,7 @@
       如果未設定 <ph name="DEFAULT_SEARCH_PROVIDER_SEARCH_URL_POST_PARAMS_POLICY_NAME" /> 政策,系統會使用 GET 方法傳送搜尋要求。</translation>
 <translation id="6757613329154374267">已啟用備份與還原功能</translation>
 <translation id="6758659208493449452">這項政策可控管已加入進階保護計畫的使用者是否可以享有額外的防護。部分功能可能涉及與 Google 共用資料 (例如,進階保護計畫的使用者可將下載內容傳送至 Google 進行惡意軟體掃描)。如果設為 True 或不予設定,已加入計畫的使用者將能享有額外的防護。如果設為 False,進階保護計畫的使用者只能享有標準的消費者功能。</translation>
+<translation id="6763023079133439068">允許缺少 subjectAlternativeName 擴充功能的憑證 (但必須由本機信任錨點核發)</translation>
 <translation id="6766216162565713893">允許網站要求使用者授權存取附近的藍牙裝置</translation>
 <translation id="6770454900105963262">回報運作中資訊站工作階段相關資訊</translation>
 <translation id="6782977971207381602">如果將這項政策設為啟用,裝置即可在 <ph name="PRODUCT_OS_NAME" />上執行虛擬機器。必須啟用 <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> 和 <ph name="CROSTINI_ALLOWED_POLICY_NAME" />,才能使用 <ph name="PRODUCT_CROSTINI_NAME" />。如果將這項政策設為停用,裝置將無法執行虛擬機器。變更為停用後,系統會開始將這項政策套用到新的虛擬機器,不會套用到已經在執行的虛擬機器。
@@ -5889,6 +5942,7 @@
 <translation id="7458437477941640506">如果作業系統版本比目標版本還新,則不復原至目標版本,且一併停用更新。</translation>
 <translation id="7459601923199346224">控管憑證管理的使用者和裝置政策。</translation>
 <translation id="7459633275230216698">允許顯示檔案選取對話方塊</translation>
+<translation id="7464058117970792805">啟用列印預覽</translation>
 <translation id="7464991223784276288">將來自相符網址的 Cookie 限制在目前的工作階段中</translation>
 <translation id="7468182772656807573">你可以透過這項政策,決定監控網路封包的傳送頻率 (以毫秒為單位)。間隔範圍須介於 30 秒到 24 小時之間。系統會將超出範圍的值調整到範圍內。
 
@@ -6069,6 +6123,7 @@
       如果將這項政策設為啟用或不設定,系統會啟用快速解答的單位轉換功能。
       如果停用這項政策,系統會停用快速解答的單位轉換功能。</translation>
 <translation id="7587345076013230465">每當自動選取政策與多個憑證相符時,在登入畫面中提示使用者選取用戶端憑證</translation>
+<translation id="7587921466180902617">為 Family Link 使用者啟用螢幕側錄 Dogfood 測試</translation>
 <translation id="759957074386651883">安全瀏覽設定</translation>
 <translation id="7604169113182304895">Android 應用程式可以選擇是否使用這份清單,你無法強制套用。</translation>
 <translation id="7612157962821894603">要在 <ph name="PRODUCT_NAME" /> 啟動時套用的全系統設定</translation>
@@ -6258,6 +6313,7 @@
 <translation id="7823902813460802031">如果將這項政策設為啟用,<ph name="PRODUCT_OS_NAME" />會阻止裝置進入開發人員模式。
 
        如果將這項設為停用或不設定,裝置便可以使用開發人員模式。</translation>
+<translation id="7824000841504721945">停用政策不可部分完成的群組</translation>
 <translation id="782661371433719637">不允許任何網站透過 File System API 要求讀取檔案及目錄</translation>
 <translation id="7827127381981620448">平台應用程式</translation>
 <translation id="7833148823006528332">Android 應用程式的 ID,例如 Gmail 的 ID 為「com.google.android.gm」</translation>
@@ -6308,6 +6364,7 @@
 
       建議做法:如要針對閒置狀態鎖定螢幕,可以啟用在暫停狀態下鎖定螢幕的功能,然後讓 <ph name="PRODUCT_OS_NAME" />在閒置延遲時間過後進入暫停狀態。這項政策僅限用於兩種情況:螢幕鎖定觸發時間比暫停觸發時間早很多,或是你完全不想針對閒置狀態啟用暫停功能。</translation>
 <translation id="7895553628261067384">遠端存取</translation>
+<translation id="7900469325540540107">預設在建立企業設定檔時保留瀏覽資料</translation>
 <translation id="7902040092815978832">在輸入密碼時顯示數字鍵盤</translation>
 <translation id="7904177352786629708">如果將這項政策設為啟用,系統會略過 CNAME 查詢。系統產生 Kerberos SPN 時會使用先前輸入的伺服器名稱。
 
@@ -6342,6 +6399,7 @@
 <translation id="793473937901685727">設定 ARC 應用程式的憑證可用性</translation>
 <translation id="7936302526928951356">User-Agent 字串不會凍結主要版本。</translation>
 <translation id="7937766917976512374">允許或拒絕擷取視訊</translation>
+<translation id="7941528208359969119">允許執行線上 <ph name="OCSP_CRL_LABEL" /> 檢查</translation>
 <translation id="7941975817681987555">無論使用任何網路連線,皆不預測網路動作</translation>
 <translation id="7946350455013548764">如果將這項政策設為 3,網站即可要求存取 HID 裝置。如果將這項政策設為 2,系統會拒絕網站存取 HID 裝置。如果不設定,網站可要求存取權,但使用者可以變更這項設定。
 
@@ -6712,6 +6770,7 @@
 
       如果未設定 <ph name="DEFAULT_SEARCH_PROVIDER_IMAGE_URL_POST_PARMS_POLICY_NAME" /> 政策,系統會使用 GET 方法傳送圖片搜尋要求。</translation>
 <translation id="8314214821702356835">允許使用者在裝置鎖定時播放媒體</translation>
+<translation id="8316940611391250886">不允許缺少 subjectAlternativeName 擴充功能的憑證</translation>
 <translation id="8319678975002906774">設定要傳回指定來源網站的控管型設定值</translation>
 <translation id="8320149248919453401">充電模式</translation>
 <translation id="8327651196906278510">依這些來源允許執行分頁擷取功能</translation>
@@ -7447,6 +7506,7 @@
 <translation id="9135033364005346124">啟用 <ph name="CLOUD_PRINT_NAME" /> Proxy</translation>
 <translation id="9136212796239682721">停用下載對話框 UI</translation>
 <translation id="9136399279941091445">發布指定裝置政策時的停機時間間隔</translation>
+<translation id="9148720248753722892">停用 SHA-1 簽署的憑證</translation>
 <translation id="9150416707757015439">這項政策已被取代,請改用 IncognitoModeAvailability。在「<ph name="PRODUCT_NAME" />」中啟用無痕模式。如果這項設定已啟用或尚未設定,使用者皆可在無痕模式中開啟網頁。如果這項設定已停用,使用者就無法在無痕模式中開啟網頁。如果未設定這項政策,系統會啟用這項設定,且使用者可以使用無痕模式。</translation>
 <translation id="9152473318295429890">允許根據目前網頁內容建議相關的網頁</translation>
 <translation id="9153446010242995516">如果 OS 版本比目標版本還新,則復原並維持在目標版本。系統會在版本復原過程中儘可能嘗試沿用網路憑證等裝置層級設定,但即使因故無法還原資料 (例如目標版本不支援還原資料,或變更內容與舊版不相容),系統仍會復原至目標版本,並執行完整的 Powerwash。
diff --git a/components/segmentation_platform/internal/data_collection/training_data_collector_impl.cc b/components/segmentation_platform/internal/data_collection/training_data_collector_impl.cc
index 7acceb3d..5e51cc6 100644
--- a/components/segmentation_platform/internal/data_collection/training_data_collector_impl.cc
+++ b/components/segmentation_platform/internal/data_collection/training_data_collector_impl.cc
@@ -156,12 +156,11 @@
   // Report training data for all models that are interested in
   // |histogram_name| as output.
   if (it != immediate_collection_histograms_.end()) {
-    std::vector<SegmentId> segment_ids(it->second.begin(), it->second.end());
     auto param = absl::make_optional<ImmediaCollectionParam>();
     param->output_metric_hash = hash;
     param->output_value = static_cast<float>(sample);
     segment_info_database_->GetSegmentInfoForSegments(
-        segment_ids,
+        it->second,
         base::BindOnce(&TrainingDataCollectorImpl::ReportForSegmentsInfoList,
                        weak_ptr_factory_.GetWeakPtr(), std::move(param)));
   }
@@ -335,8 +334,7 @@
   base::Time next_collection_time = GetNextReportTime(last_collection_time);
   if (clock_->Now() >= next_collection_time) {
     segment_info_database_->GetSegmentInfoForSegments(
-        std::vector<SegmentId>(continuous_collection_segments_.begin(),
-                               continuous_collection_segments_.end()),
+        continuous_collection_segments_,
         base::BindOnce(&TrainingDataCollectorImpl::ReportForSegmentsInfoList,
                        weak_ptr_factory_.GetWeakPtr(), absl::nullopt));
   }
diff --git a/components/segmentation_platform/internal/data_collection/training_data_collector_impl.h b/components/segmentation_platform/internal/data_collection/training_data_collector_impl.h
index d18c0d6..677e2efc 100644
--- a/components/segmentation_platform/internal/data_collection/training_data_collector_impl.h
+++ b/components/segmentation_platform/internal/data_collection/training_data_collector_impl.h
@@ -92,7 +92,7 @@
       immediate_collection_histograms_;
 
   // A list of segment IDs that needs to report metrics continuously.
-  std::set<SegmentId> continuous_collection_segments_;
+  base::flat_set<SegmentId> continuous_collection_segments_;
 
   base::WeakPtrFactory<TrainingDataCollectorImpl> weak_ptr_factory_{this};
 };
diff --git a/components/segmentation_platform/internal/database/database_maintenance_impl.cc b/components/segmentation_platform/internal/database/database_maintenance_impl.cc
index aecedb1..36fe332 100644
--- a/components/segmentation_platform/internal/database/database_maintenance_impl.cc
+++ b/components/segmentation_platform/internal/database/database_maintenance_impl.cc
@@ -19,14 +19,12 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/time/clock.h"
 #include "base/time/time.h"
-#include "base/trace_event/typed_macros.h"
 #include "components/segmentation_platform/internal/database/segment_info_database.h"
 #include "components/segmentation_platform/internal/database/signal_database.h"
 #include "components/segmentation_platform/internal/database/signal_storage_config.h"
 #include "components/segmentation_platform/internal/execution/default_model_manager.h"
 #include "components/segmentation_platform/internal/metadata/metadata_utils.h"
 #include "components/segmentation_platform/internal/stats.h"
-#include "components/segmentation_platform/public/config.h"
 #include "components/segmentation_platform/public/proto/types.pb.h"
 
 namespace {
@@ -106,9 +104,8 @@
 DatabaseMaintenanceImpl::~DatabaseMaintenanceImpl() = default;
 
 void DatabaseMaintenanceImpl::ExecuteMaintenanceTasks() {
-  std::vector<SegmentId> segment_ids(segment_ids_.begin(), segment_ids_.end());
   default_model_manager_->GetAllSegmentInfoFromBothModels(
-      segment_ids, segment_info_database_,
+      segment_ids_, segment_info_database_,
       base::BindOnce(&DatabaseMaintenanceImpl::OnSegmentInfoCallback,
                      weak_ptr_factory_.GetWeakPtr()));
 }
diff --git a/components/segmentation_platform/internal/database/database_maintenance_impl_unittest.cc b/components/segmentation_platform/internal/database/database_maintenance_impl_unittest.cc
index a979ecb..1d5cda6 100644
--- a/components/segmentation_platform/internal/database/database_maintenance_impl_unittest.cc
+++ b/components/segmentation_platform/internal/database/database_maintenance_impl_unittest.cc
@@ -64,11 +64,11 @@
 class TestDefaultModelManager : public DefaultModelManager {
  public:
   TestDefaultModelManager()
-      : DefaultModelManager(nullptr, std::vector<SegmentId>()) {}
+      : DefaultModelManager(nullptr, base::flat_set<SegmentId>()) {}
   ~TestDefaultModelManager() override = default;
 
   void GetAllSegmentInfoFromDefaultModel(
-      const std::vector<SegmentId>& segment_ids,
+      const base::flat_set<SegmentId>& segment_ids,
       MultipleSegmentInfoCallback callback) override {
     base::ThreadTaskRunnerHandle::Get()->PostTask(
         FROM_HERE, base::BindOnce(std::move(callback),
@@ -76,7 +76,7 @@
   }
 
   void GetAllSegmentInfoFromBothModels(
-      const std::vector<SegmentId>& segment_ids,
+      const base::flat_set<SegmentId>& segment_ids,
       SegmentInfoDatabase* segment_database,
       MultipleSegmentInfoCallback callback) override {
     segment_database->GetSegmentInfoForSegments(
diff --git a/components/segmentation_platform/internal/database/segment_info_database.cc b/components/segmentation_platform/internal/database/segment_info_database.cc
index 3cad35a..6801c34 100644
--- a/components/segmentation_platform/internal/database/segment_info_database.cc
+++ b/components/segmentation_platform/internal/database/segment_info_database.cc
@@ -53,7 +53,7 @@
 }
 
 void SegmentInfoDatabase::GetSegmentInfoForSegments(
-    const std::vector<SegmentId>& segment_ids,
+    const base::flat_set<SegmentId>& segment_ids,
     MultipleSegmentInfoCallback callback) {
   std::vector<std::string> keys;
   for (SegmentId target : segment_ids)
diff --git a/components/segmentation_platform/internal/database/segment_info_database.h b/components/segmentation_platform/internal/database/segment_info_database.h
index 8e7ea39..c0fb1d3 100644
--- a/components/segmentation_platform/internal/database/segment_info_database.h
+++ b/components/segmentation_platform/internal/database/segment_info_database.h
@@ -9,6 +9,7 @@
 #include <vector>
 
 #include "base/callback.h"
+#include "base/containers/flat_set.h"
 #include "components/leveldb_proto/public/proto_database.h"
 #include "components/segmentation_platform/internal/proto/model_prediction.pb.h"
 #include "components/segmentation_platform/public/proto/model_metadata.pb.h"
@@ -51,7 +52,7 @@
 
   // Called to get metadata for a given list of segments.
   virtual void GetSegmentInfoForSegments(
-      const std::vector<SegmentId>& segment_ids,
+      const base::flat_set<SegmentId>& segment_ids,
       MultipleSegmentInfoCallback callback);
 
   // Called to get the metadata for a given segment.
diff --git a/components/segmentation_platform/internal/database/segment_info_database_unittest.cc b/components/segmentation_platform/internal/database/segment_info_database_unittest.cc
index 1dbe9e16..39bc9df 100644
--- a/components/segmentation_platform/internal/database/segment_info_database_unittest.cc
+++ b/components/segmentation_platform/internal/database/segment_info_database_unittest.cc
@@ -70,7 +70,7 @@
     segment_db_.reset();
   }
 
-  void VerifyDb(std::vector<SegmentId> expected_ids) {
+  void VerifyDb(base::flat_set<SegmentId> expected_ids) {
     EXPECT_EQ(expected_ids.size(), db_entries_.size());
     for (auto segment_id : expected_ids)
       EXPECT_TRUE(db_entries_.find(ToString(segment_id)) != db_entries_.end());
diff --git a/components/segmentation_platform/internal/database/storage_service.cc b/components/segmentation_platform/internal/database/storage_service.cc
index 90052cfa..9e4d7c80 100644
--- a/components/segmentation_platform/internal/database/storage_service.cc
+++ b/components/segmentation_platform/internal/database/storage_service.cc
@@ -31,7 +31,7 @@
     scoped_refptr<base::SequencedTaskRunner> task_runner,
     base::Clock* clock,
     UkmDataManager* ukm_data_manager,
-    base::flat_set<proto::SegmentId> all_segment_ids,
+    const base::flat_set<proto::SegmentId>& all_segment_ids,
     ModelProviderFactory* model_provider_factory)
     : StorageService(
           db_provider->GetDB<proto::SegmentInfo>(
@@ -59,12 +59,11 @@
         signal_storage_config_db,
     base::Clock* clock,
     UkmDataManager* ukm_data_manager,
-    base::flat_set<proto::SegmentId> all_segment_ids,
+    const base::flat_set<proto::SegmentId>& all_segment_ids,
     ModelProviderFactory* model_provider_factory)
-    : default_model_manager_(std::make_unique<DefaultModelManager>(
-          model_provider_factory,
-          std::vector<SegmentId>(all_segment_ids.begin(),
-                                 all_segment_ids.end()))),
+    : default_model_manager_(
+          std::make_unique<DefaultModelManager>(model_provider_factory,
+                                                all_segment_ids)),
       segment_info_database_(
           std::make_unique<SegmentInfoDatabase>(std::move(segment_db))),
       signal_database_(
diff --git a/components/segmentation_platform/internal/database/storage_service.h b/components/segmentation_platform/internal/database/storage_service.h
index 258bc0dc..f2958e85 100644
--- a/components/segmentation_platform/internal/database/storage_service.h
+++ b/components/segmentation_platform/internal/database/storage_service.h
@@ -65,7 +65,7 @@
                  scoped_refptr<base::SequencedTaskRunner> task_runner,
                  base::Clock* clock,
                  UkmDataManager* ukm_data_manager,
-                 base::flat_set<proto::SegmentId> all_segment_ids,
+                 const base::flat_set<proto::SegmentId>& all_segment_ids,
                  ModelProviderFactory* model_provider_factory);
 
   // For tests:
@@ -78,7 +78,7 @@
           signal_storage_config_db,
       base::Clock* clock,
       UkmDataManager* ukm_data_manager,
-      base::flat_set<proto::SegmentId> all_segment_ids,
+      const base::flat_set<proto::SegmentId>& all_segment_ids,
       ModelProviderFactory* model_provider_factory);
 
   // For tests:
diff --git a/components/segmentation_platform/internal/database/test_segment_info_database.cc b/components/segmentation_platform/internal/database/test_segment_info_database.cc
index 3db587160..34ec505 100644
--- a/components/segmentation_platform/internal/database/test_segment_info_database.cc
+++ b/components/segmentation_platform/internal/database/test_segment_info_database.cc
@@ -33,7 +33,7 @@
 }
 
 void TestSegmentInfoDatabase::GetSegmentInfoForSegments(
-    const std::vector<SegmentId>& segment_ids,
+    const base::flat_set<SegmentId>& segment_ids,
     MultipleSegmentInfoCallback callback) {
   auto result = std::make_unique<SegmentInfoDatabase::SegmentInfoList>();
   for (const auto& pair : segment_infos_) {
diff --git a/components/segmentation_platform/internal/database/test_segment_info_database.h b/components/segmentation_platform/internal/database/test_segment_info_database.h
index 324d1a3..8a6fbcf 100644
--- a/components/segmentation_platform/internal/database/test_segment_info_database.h
+++ b/components/segmentation_platform/internal/database/test_segment_info_database.h
@@ -27,7 +27,7 @@
   // SegmentInfoDatabase overrides.
   void Initialize(SuccessCallback callback) override;
   void GetAllSegmentInfo(MultipleSegmentInfoCallback callback) override;
-  void GetSegmentInfoForSegments(const std::vector<SegmentId>& segment_ids,
+  void GetSegmentInfoForSegments(const base::flat_set<SegmentId>& segment_ids,
                                  MultipleSegmentInfoCallback callback) override;
   void GetSegmentInfo(SegmentId segment_id,
                       SegmentInfoCallback callback) override;
diff --git a/components/segmentation_platform/internal/execution/default_model_manager.cc b/components/segmentation_platform/internal/execution/default_model_manager.cc
index 460668c..afa577fc 100644
--- a/components/segmentation_platform/internal/execution/default_model_manager.cc
+++ b/components/segmentation_platform/internal/execution/default_model_manager.cc
@@ -14,15 +14,14 @@
 
 DefaultModelManager::DefaultModelManager(
     ModelProviderFactory* model_provider_factory,
-    const std::vector<SegmentId>& segment_ids)
+    const base::flat_set<SegmentId>& segment_ids)
     : model_provider_factory_(model_provider_factory) {
   for (SegmentId segment_id : segment_ids) {
     std::unique_ptr<ModelProvider> provider =
         model_provider_factory->CreateDefaultProvider(segment_id);
     if (!provider)
       continue;
-    default_model_providers_.emplace(
-        std::make_pair(segment_id, std::move(provider)));
+    default_model_providers_.emplace(segment_id, std::move(provider));
   }
 }
 
@@ -36,7 +35,7 @@
 }
 
 void DefaultModelManager::GetAllSegmentInfoFromDefaultModel(
-    const std::vector<SegmentId>& segment_ids,
+    const base::flat_set<SegmentId>& segment_ids,
     MultipleSegmentInfoCallback callback) {
   auto result = std::make_unique<SegmentInfoList>();
   std::deque<SegmentId> remaining_segment_ids(segment_ids.begin(),
@@ -93,7 +92,7 @@
 }
 
 void DefaultModelManager::GetAllSegmentInfoFromBothModels(
-    const std::vector<SegmentId>& segment_ids,
+    const base::flat_set<SegmentId>& segment_ids,
     SegmentInfoDatabase* segment_database,
     MultipleSegmentInfoCallback callback) {
   segment_database->GetSegmentInfoForSegments(
@@ -104,7 +103,7 @@
 }
 
 void DefaultModelManager::OnGetAllSegmentInfoFromDatabase(
-    const std::vector<SegmentId>& segment_ids,
+    const base::flat_set<SegmentId>& segment_ids,
     MultipleSegmentInfoCallback callback,
     std::unique_ptr<SegmentInfoDatabase::SegmentInfoList> segment_infos) {
   GetAllSegmentInfoFromDefaultModel(
diff --git a/components/segmentation_platform/internal/execution/default_model_manager.h b/components/segmentation_platform/internal/execution/default_model_manager.h
index 014c66b..689fde19 100644
--- a/components/segmentation_platform/internal/execution/default_model_manager.h
+++ b/components/segmentation_platform/internal/execution/default_model_manager.h
@@ -31,7 +31,7 @@
 class DefaultModelManager {
  public:
   DefaultModelManager(ModelProviderFactory* model_provider_factory,
-                      const std::vector<SegmentId>& segment_ids);
+                      const base::flat_set<SegmentId>& segment_ids);
   virtual ~DefaultModelManager();
 
   // Disallow copy/assign.
@@ -60,14 +60,14 @@
   // default model for a given set of segment IDs. The result can contain
   // the same segment ID multiple times.
   virtual void GetAllSegmentInfoFromBothModels(
-      const std::vector<SegmentId>& segment_ids,
+      const base::flat_set<SegmentId>& segment_ids,
       SegmentInfoDatabase* segment_database,
       MultipleSegmentInfoCallback callback);
 
   // Called to get the segment info from the default model for a given set of
   // segment IDs.
   virtual void GetAllSegmentInfoFromDefaultModel(
-      const std::vector<SegmentId>& segment_ids,
+      const base::flat_set<SegmentId>& segment_ids,
       MultipleSegmentInfoCallback callback);
 
   // Returns the default provider or `nulllptr` when unavailable.
@@ -90,7 +90,7 @@
                            int64_t model_version);
 
   void OnGetAllSegmentInfoFromDatabase(
-      const std::vector<SegmentId>& segment_ids,
+      const base::flat_set<SegmentId>& segment_ids,
       MultipleSegmentInfoCallback callback,
       std::unique_ptr<SegmentInfoDatabase::SegmentInfoList> segment_infos);
 
diff --git a/components/segmentation_platform/internal/execution/mock_model_provider.h b/components/segmentation_platform/internal/execution/mock_model_provider.h
index b8dc7619..55651d0 100644
--- a/components/segmentation_platform/internal/execution/mock_model_provider.h
+++ b/components/segmentation_platform/internal/execution/mock_model_provider.h
@@ -9,6 +9,7 @@
 #include <memory>
 #include <vector>
 
+#include "base/containers/flat_set.h"
 #include "base/memory/raw_ptr.h"
 #include "components/segmentation_platform/public/model_provider.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -67,7 +68,7 @@
     std::map<proto::SegmentId, ModelProvider::ModelUpdatedCallback>
         model_providers_callbacks;
 
-    std::vector<SegmentId> segments_supporting_default_model;
+    base::flat_set<SegmentId> segments_supporting_default_model;
   };
 
   // Records requests to `data`. `data` is not owned, and the caller must ensure
diff --git a/components/segmentation_platform/internal/execution/model_execution_manager_impl_unittest.cc b/components/segmentation_platform/internal/execution/model_execution_manager_impl_unittest.cc
index 57fe333..ee8631a 100644
--- a/components/segmentation_platform/internal/execution/model_execution_manager_impl_unittest.cc
+++ b/components/segmentation_platform/internal/execution/model_execution_manager_impl_unittest.cc
@@ -57,7 +57,7 @@
               (override));
   MOCK_METHOD(void,
               GetSegmentInfoForSegments,
-              (const std::vector<SegmentId>& segment_ids,
+              (const base::flat_set<SegmentId>& segment_ids,
                MultipleSegmentInfoCallback callback),
               (override));
   MOCK_METHOD(void,
@@ -100,7 +100,7 @@
   }
 
   void CreateModelExecutionManager(
-      std::vector<SegmentId> segment_ids,
+      const base::flat_set<SegmentId>& segment_ids,
       const ModelExecutionManager::SegmentationModelUpdatedCallback& callback) {
     model_execution_manager_ = std::make_unique<ModelExecutionManagerImpl>(
         segment_ids, &model_provider_factory_, &clock_, segment_database_.get(),
diff --git a/components/segmentation_platform/internal/scheduler/model_execution_scheduler_impl.cc b/components/segmentation_platform/internal/scheduler/model_execution_scheduler_impl.cc
index db07cce..6cb9901 100644
--- a/components/segmentation_platform/internal/scheduler/model_execution_scheduler_impl.cc
+++ b/components/segmentation_platform/internal/scheduler/model_execution_scheduler_impl.cc
@@ -59,10 +59,8 @@
 
 void ModelExecutionSchedulerImpl::RequestModelExecutionForEligibleSegments(
     bool expired_only) {
-  std::vector<SegmentId> segment_ids(all_segment_ids_.begin(),
-                                     all_segment_ids_.end());
   segment_database_->GetSegmentInfoForSegments(
-      segment_ids,
+      all_segment_ids_,
       base::BindOnce(&ModelExecutionSchedulerImpl::FilterEligibleSegments,
                      weak_ptr_factory_.GetWeakPtr(), expired_only));
 }
diff --git a/components/segmentation_platform/internal/segmentation_platform_service_impl.cc b/components/segmentation_platform/internal/segmentation_platform_service_impl.cc
index f457fb5..72bc2bd 100644
--- a/components/segmentation_platform/internal/segmentation_platform_service_impl.cc
+++ b/components/segmentation_platform/internal/segmentation_platform_service_impl.cc
@@ -87,12 +87,9 @@
         model_provider_factory_.get());
   }
 
-  std::vector<SegmentId> segment_id_vec(all_segment_ids_.begin(),
-                                        all_segment_ids_.end());
-
   // Construct signal processors.
   signal_handler_.Initialize(
-      storage_service_.get(), init_params->history_service, segment_id_vec,
+      storage_service_.get(), init_params->history_service, all_segment_ids_,
       base::BindRepeating(
           &SegmentationPlatformServiceImpl::OnModelRefreshNeeded,
           weak_ptr_factory_.GetWeakPtr()));
diff --git a/components/segmentation_platform/internal/signals/signal_filter_processor.cc b/components/segmentation_platform/internal/signals/signal_filter_processor.cc
index 2196650..eb46d3d 100644
--- a/components/segmentation_platform/internal/signals/signal_filter_processor.cc
+++ b/components/segmentation_platform/internal/signals/signal_filter_processor.cc
@@ -15,7 +15,6 @@
 #include "components/segmentation_platform/internal/proto/model_prediction.pb.h"
 #include "components/segmentation_platform/internal/signals/histogram_signal_handler.h"
 #include "components/segmentation_platform/internal/signals/history_service_observer.h"
-#include "components/segmentation_platform/internal/signals/signal_handler.h"
 #include "components/segmentation_platform/internal/signals/ukm_config.h"
 #include "components/segmentation_platform/internal/signals/user_action_signal_handler.h"
 #include "components/segmentation_platform/internal/stats.h"
@@ -95,7 +94,7 @@
     UserActionSignalHandler* user_action_signal_handler,
     HistogramSignalHandler* histogram_signal_handler,
     HistoryServiceObserver* history_observer,
-    const std::vector<SegmentId>& segment_ids)
+    const base::flat_set<SegmentId>& segment_ids)
     : storage_service_(storage_service),
       user_action_signal_handler_(user_action_signal_handler),
       histogram_signal_handler_(histogram_signal_handler),
diff --git a/components/segmentation_platform/internal/signals/signal_filter_processor.h b/components/segmentation_platform/internal/signals/signal_filter_processor.h
index 837fb88..e26ad03 100644
--- a/components/segmentation_platform/internal/signals/signal_filter_processor.h
+++ b/components/segmentation_platform/internal/signals/signal_filter_processor.h
@@ -28,7 +28,7 @@
                         UserActionSignalHandler* user_action_signal_handler,
                         HistogramSignalHandler* histogram_signal_handler,
                         HistoryServiceObserver* history_observer,
-                        const std::vector<SegmentId>& segment_ids);
+                        const base::flat_set<SegmentId>& segment_ids);
   ~SignalFilterProcessor();
 
   // Disallow copy/assign.
@@ -56,7 +56,7 @@
   const raw_ptr<UserActionSignalHandler> user_action_signal_handler_;
   const raw_ptr<HistogramSignalHandler> histogram_signal_handler_;
   const raw_ptr<HistoryServiceObserver> history_observer_;
-  std::vector<SegmentId> segment_ids_;
+  const base::flat_set<SegmentId> segment_ids_;
 
   base::WeakPtrFactory<SignalFilterProcessor> weak_ptr_factory_{this};
 };
diff --git a/components/segmentation_platform/internal/signals/signal_filter_processor_unittest.cc b/components/segmentation_platform/internal/signals/signal_filter_processor_unittest.cc
index 658a623a..5bb8428 100644
--- a/components/segmentation_platform/internal/signals/signal_filter_processor_unittest.cc
+++ b/components/segmentation_platform/internal/signals/signal_filter_processor_unittest.cc
@@ -61,11 +61,11 @@
 class TestDefaultModelManager : public DefaultModelManager {
  public:
   TestDefaultModelManager()
-      : DefaultModelManager(nullptr, std::vector<SegmentId>()) {}
+      : DefaultModelManager(nullptr, base::flat_set<SegmentId>()) {}
   ~TestDefaultModelManager() override = default;
 
   void GetAllSegmentInfoFromDefaultModel(
-      const std::vector<SegmentId>& segment_ids,
+      const base::flat_set<SegmentId>& segment_ids,
       MultipleSegmentInfoCallback callback) override {
     base::ThreadTaskRunnerHandle::Get()->PostTask(
         FROM_HERE, base::BindOnce(std::move(callback),
@@ -73,7 +73,7 @@
   }
 
   void GetAllSegmentInfoFromBothModels(
-      const std::vector<SegmentId>& segment_ids,
+      const base::flat_set<SegmentId>& segment_ids,
       SegmentInfoDatabase* segment_database,
       MultipleSegmentInfoCallback callback) override {
     segment_database->GetSegmentInfoForSegments(
@@ -104,7 +104,7 @@
     base::SetRecordActionTaskRunner(
         task_environment_.GetMainThreadTaskRunner());
 
-    std::vector<SegmentId> segment_ids(
+    base::flat_set<SegmentId> segment_ids(
         {SegmentId::OPTIMIZATION_TARGET_SEGMENTATION_NEW_TAB,
          SegmentId::OPTIMIZATION_TARGET_SEGMENTATION_SHARE});
     user_action_signal_handler_ =
diff --git a/components/segmentation_platform/internal/signals/signal_handler.cc b/components/segmentation_platform/internal/signals/signal_handler.cc
index 42e9a80..72b22f4 100644
--- a/components/segmentation_platform/internal/signals/signal_handler.cc
+++ b/components/segmentation_platform/internal/signals/signal_handler.cc
@@ -16,10 +16,11 @@
 SignalHandler::SignalHandler() = default;
 SignalHandler::~SignalHandler() = default;
 
-void SignalHandler::Initialize(StorageService* storage_service,
-                               history::HistoryService* history_service,
-                               const std::vector<proto::SegmentId>& segment_ids,
-                               base::RepeatingClosure models_refresh_callback) {
+void SignalHandler::Initialize(
+    StorageService* storage_service,
+    history::HistoryService* history_service,
+    const base::flat_set<proto::SegmentId>& segment_ids,
+    base::RepeatingClosure models_refresh_callback) {
   user_action_signal_handler_ = std::make_unique<UserActionSignalHandler>(
       storage_service->signal_database());
   histogram_signal_handler_ = std::make_unique<HistogramSignalHandler>(
diff --git a/components/segmentation_platform/internal/signals/signal_handler.h b/components/segmentation_platform/internal/signals/signal_handler.h
index ac05648..6ed1f8a 100644
--- a/components/segmentation_platform/internal/signals/signal_handler.h
+++ b/components/segmentation_platform/internal/signals/signal_handler.h
@@ -8,6 +8,7 @@
 #include <memory>
 
 #include "base/callback.h"
+#include "base/containers/flat_set.h"
 #include "components/segmentation_platform/public/proto/segmentation_platform.pb.h"
 
 namespace history {
@@ -35,7 +36,7 @@
 
   void Initialize(StorageService* storage_service,
                   history::HistoryService* history_service,
-                  const std::vector<proto::SegmentId>& segment_ids,
+                  const base::flat_set<proto::SegmentId>& segment_ids,
                   base::RepeatingClosure model_refresh_callback);
 
   void TearDown();
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index 9b9faf1..9f2f6f57 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -1070,6 +1070,7 @@
 <translation id="3835233591525155343">የእርስዎ መሣሪያ አጠቃቀም</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />፣ አዲስ Google ሰነድ በፍጥነት ለመፍጠር ትርን ከዚያ አስገባን ይጫኑ</translation>
 <translation id="385051799172605136">ተመለስ</translation>
+<translation id="3853684360927654006">የይለፍ ቃል ጥንካሬ ማስያ</translation>
 <translation id="3858027520442213535">ቀን እና ሰዓትን አዘምን</translation>
 <translation id="3858860766373142691">ስም</translation>
 <translation id="3872834068356954457">ሳይንስ</translation>
@@ -1680,6 +1681,7 @@
 <translation id="5518670652865028077">ስነ ጥበቦች እና መዝናኛ</translation>
 <translation id="5519516356611866228">ከእርስዎ ለውጦች ጋር</translation>
 <translation id="5523118979700054094">የመምሪያ ስም</translation>
+<translation id="5525755241743357906">ፋይል ተቀድቷል ወይም ተወስዷል</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />፣ በChromeOS ቅንብሮች ውስጥ የተደራሽነት መሣሪያዎችዎን ግላዊነት ለማላበስ ትርን ከዚያ አስገባን ይጫኑ</translation>
 <translation id="5528532273234423708">የቤት ኦቶሜሽን</translation>
 <translation id="55293785478302737">ጫፍ ስፋ</translation>
@@ -2933,6 +2935,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />፣ Chromeን በiOS ቅንብሮች ውስጥ እንደ የስርዓቱ ነባሪ አሳሽ ለማዋቀር ትርን ከዛ አስገባን ይጫኑ</translation>
 <translation id="9096679202588811390">የቲቪ ትርዒቶች እና ፕሮግራሞች</translation>
 <translation id="9101630580131696064">መሳቢያ 1</translation>
+<translation id="9102081333385212048">እርስዎ የቀዷቸው ወይም የወሰዷቸው ፋይሎች ለትንታኔ ወደ Google ደመና ወይም ሶስተኛ ወገኖች ይላካሉ። ለምሳሌ፣ አደጋን ሊያስከትል ለሚችል ውሂብ ወይም ተንኮል-አዘል ዌር ሊቃኙ ይችላሉ።</translation>
 <translation id="9103537084693478942">የቪዲዮ ሶፍትዌር</translation>
 <translation id="9103872766612412690"><ph name="SITE" /> የእርስዎን መረጃ ለመጠበቅ በመደበኝነት ምስጠራን ይጠቀማል። Chromium አሁን ከ<ph name="SITE" /> ጋር ለመገናኘት ሲሞክር ድር ጣቢያው ያልተለመዱ እና ትክክል ያልሆኑ ምስክርነቶችን መልሷል። ይህ አንድ አጥቂ <ph name="SITE" />ን አስመስሎ ለመቅረብ ሲሞክር ነው ወይም አንድ የWi-Fi መግቢያ ገጽ ግንኙነቱን ሲቋረጥ ሊከሰት ይችላል። Chromium ማንኛውም የውሂብ ልውውጥ ከመካሄዱ በፊት ግንኙነቱን ስላቋረጠው አሁንም የእርስዎ መረጃ ደህንነት የተጠበቀ ነው።</translation>
 <translation id="9106062320799175032">የመክፈያ አድራሻ ያክሉ</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 2c446637..3ca55eff 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -1073,6 +1073,7 @@
 <translation id="3835233591525155343">استخدامك للجهاز</translation>
 <translation id="3848487483475744267">‏<ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />: اضغط على مفتاح التبويب (Tab) ثم Enter لإنشاء "مستند Google" جديد بسرعة.</translation>
 <translation id="385051799172605136">رجوع</translation>
+<translation id="3853684360927654006">أداة قياس مدى قوة كلمة المرور</translation>
 <translation id="3858027520442213535">تحديث التاريخ والوقت</translation>
 <translation id="3858860766373142691">الاسم</translation>
 <translation id="3872834068356954457">علوم</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb
index 5a3c48f..9175318 100644
--- a/components/strings/components_strings_be.xtb
+++ b/components/strings/components_strings_be.xtb
@@ -1070,6 +1070,7 @@
 <translation id="3835233591525155343">Выкарыстанне вамі прылады</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />. Каб хутка стварыць новы дакумент Google, націсніце Tab, затым Enter</translation>
 <translation id="385051799172605136">Назад</translation>
+<translation id="3853684360927654006">Калькулятар надзейнасці пароля</translation>
 <translation id="3858027520442213535">Абнавіць дату і час</translation>
 <translation id="3858860766373142691">Назва</translation>
 <translation id="3872834068356954457">Навука</translation>
@@ -1680,6 +1681,7 @@
 <translation id="5518670652865028077">Мастацтва і забавы</translation>
 <translation id="5519516356611866228">З унесенымі вамі змяненнямі</translation>
 <translation id="5523118979700054094">Назва палітыкі</translation>
+<translation id="5525755241743357906">Файл капіруецца або перамяшчаецца</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />. Каб персаналізаваць інструменты даступнасці ў наладах Chrome OS, націсніце Tab, затым Увод</translation>
 <translation id="5528532273234423708">Аўтаматызацыя дома</translation>
 <translation id="55293785478302737">Сшыванне па краі</translation>
@@ -2933,6 +2935,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />. Каб зрабіць Chrome стандартным браўзерам сістэмы ў наладах iOS, націсніце Tab, затым Увод</translation>
 <translation id="9096679202588811390">Тэлеперадачы і праграмы</translation>
 <translation id="9101630580131696064">Латок 1</translation>
+<translation id="9102081333385212048">Скапіраваныя або перамешчаныя файлы перасылаюцца для аналізу ў Google Cloud або трэцім бакам (напрыклад, для праверкі на наяўнасць канфідэнцыяльных даных або шкодных праграм).</translation>
 <translation id="9103537084693478942">Праграмнае забеспячэнне для работы з відэа</translation>
 <translation id="9103872766612412690"><ph name="SITE" /> звычайна выкарыстоўвае шыфраванне для абароны вашай інфармацыі. Пры спробе Chromium падключыцца да <ph name="SITE" />, вэб-сайт адправіў незнаёмыя і няправільныя ўліковыя даныя. Гэта можа адбывацца, калі зламыснік спрабуе выдаць сябе за <ph name="SITE" />, або экран уваходу ў сетцы Wi-Fi перарваў падключэнне. Ваша інфармацыя ўсё роўна абаронена, паколькі Chromium перарваў падключэнне да абмену данымі.</translation>
 <translation id="9106062320799175032">Дадаць адрас для выстаўлення рахункаў</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb
index 6e3df30..d02191e 100644
--- a/components/strings/components_strings_bg.xtb
+++ b/components/strings/components_strings_bg.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Използването на устройството ви</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />. Натиснете Tab и след това Enter, за да създадете бързо документ в Google Документи</translation>
 <translation id="385051799172605136">Назад</translation>
+<translation id="3853684360927654006">Калкулатор за надеждността на паролата</translation>
 <translation id="3858027520442213535">Актуализиране на датата и часа</translation>
 <translation id="3858860766373142691">Име</translation>
 <translation id="3872834068356954457">Наука</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index a5a705e..70c8d6c 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -1072,6 +1072,7 @@
 <translation id="3835233591525155343">Uso de tu dispositivo</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, presiona Tab y, luego, Intro para crear un nuevo documento de Google rápidamente</translation>
 <translation id="385051799172605136">Atrás</translation>
+<translation id="3853684360927654006">Calculadora de la seguridad de la contraseña</translation>
 <translation id="3858027520442213535">Actualizar fecha y hora</translation>
 <translation id="3858860766373142691">Nombre</translation>
 <translation id="3872834068356954457">Ciencia</translation>
@@ -1682,6 +1683,7 @@
 <translation id="5518670652865028077">Arte y entretenimiento</translation>
 <translation id="5519516356611866228">Con tus cambios</translation>
 <translation id="5523118979700054094">Nombre de la política</translation>
+<translation id="5525755241743357906">Se copió o movió el archivo</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, presiona Tab y, luego, Intro para personalizar tus herramientas de accesibilidad en la configuración de Chrome OS</translation>
 <translation id="5528532273234423708">Automatización del hogar</translation>
 <translation id="55293785478302737">Costura de borde</translation>
@@ -2935,6 +2937,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, presiona Tab y luego Intro para establecer Chrome como el navegador predeterminado del sistema en la configuración de iOS</translation>
 <translation id="9096679202588811390">Programas de TV</translation>
 <translation id="9101630580131696064">Bandeja 1</translation>
+<translation id="9102081333385212048">Los archivos que copias o mueves se envían a Google Cloud o a terceros para su análisis. Por ejemplo, es posible que se analicen para detectar datos sensibles o software malicioso.</translation>
 <translation id="9103537084693478942">Software de video</translation>
 <translation id="9103872766612412690"><ph name="SITE" /> suele utilizar la encriptación para proteger la información. Cuando Chromium intentó conectarse a <ph name="SITE" />, el sitio web devolvió credenciales incorrectas y poco comunes. Es posible que un atacante quiera suplantar a <ph name="SITE" /> o que una pantalla de acceso Wi-Fi haya interrumpido la conexión. Tu información permanece segura porque Chromium detuvo la conexión para evitar el intercambio de datos.</translation>
 <translation id="9106062320799175032">Agregar dirección de facturación</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index abe7411..f4470e0a 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Uso de tu dispositivo</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, pulsa Tabulador y luego Intro para crear un nuevo Documento de Google rápidamente</translation>
 <translation id="385051799172605136">Volver</translation>
+<translation id="3853684360927654006">Calculadora de nivel de seguridad de las contraseñas</translation>
 <translation id="3858027520442213535">Actualizar fecha y hora</translation>
 <translation id="3858860766373142691">Nombre</translation>
 <translation id="3872834068356954457">Ciencia</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index 28efaa0a..5a07e42 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -1072,6 +1072,7 @@
 <translation id="3835233591525155343">Laitteesi käyttö</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, luo uusi Google-dokumentti nopeasti painamalla sarkainta ja sitten Enter</translation>
 <translation id="385051799172605136">Takaisin</translation>
+<translation id="3853684360927654006">Salasanan vahvuuslaskuri</translation>
 <translation id="3858027520442213535">Päivitä päivämäärä ja aika</translation>
 <translation id="3858860766373142691">Nimi</translation>
 <translation id="3872834068356954457">Tiede</translation>
@@ -1682,6 +1683,7 @@
 <translation id="5518670652865028077">Taide ja viihde</translation>
 <translation id="5519516356611866228">Muutosten kanssa</translation>
 <translation id="5523118979700054094">Käytännön nimi</translation>
+<translation id="5525755241743357906">Tiedosto kopioidaan tai siirretään</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, personoi esteettömyystyökalusi Chrome-käyttöjärjestelmän asetuksista painamalla sarkainta ja sitten Enter</translation>
 <translation id="5528532273234423708">Kodin automaatio</translation>
 <translation id="55293785478302737">Reunasidonta</translation>
@@ -2935,6 +2937,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, paina ensin sarkainta ja sitten Enter, niin voit valita Chromen järjestelmän oletusselaimeksi iOS-asetuksista</translation>
 <translation id="9096679202588811390">TV-ohjelmat</translation>
 <translation id="9101630580131696064">Lokero 1</translation>
+<translation id="9102081333385212048">Kopioimasi tai siirtämäsi tiedostot lähetetään Google Cloudiin tai kolmansille osapuolille analysoitaviksi. Ne voidaan esimerkiksi skannata arkaluontoisten tietojen tai haittaohjelmien varalta.</translation>
 <translation id="9103537084693478942">Video-ohjelmistot</translation>
 <translation id="9103872766612412690"><ph name="SITE" /> suojaa tietosi normaalisti salauksen avulla. Kun Chromium yritti tällä kertaa yhdistää sivustoon <ph name="SITE" />, sivusto palautti epätavalliset ja virheelliset kirjautumistiedot. Hyökkääjä saattaa yrittää esiintyä sivustona <ph name="SITE" />, tai Wi-Fi-kirjautumisruutu on keskeyttänyt yhteyden. Tietosi ovat edelleen turvassa, sillä Chromium katkaisi yhteyden, ennen kuin mitään tietoja vaihdettiin.</translation>
 <translation id="9106062320799175032">Lisää laskutusosoite</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb
index fc54753..d654a4c 100644
--- a/components/strings/components_strings_fr-CA.xtb
+++ b/components/strings/components_strings_fr-CA.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Votre utilisation de l'appareil</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis sur Entrée pour rapidement créer un document Google</translation>
 <translation id="385051799172605136">Retour</translation>
+<translation id="3853684360927654006">Calculateur de niveau de sécurité du mot de passe</translation>
 <translation id="3858027520442213535">Mettre à jour la date et l'heure</translation>
 <translation id="3858860766373142691">Nom</translation>
 <translation id="3872834068356954457">Sciences</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb
index 424457b..f3871874 100644
--- a/components/strings/components_strings_fr.xtb
+++ b/components/strings/components_strings_fr.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Savoir si vous utilisez l'appareil</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis sur Entrée pour créer rapidement un document Google Docs</translation>
 <translation id="385051799172605136">Retour</translation>
+<translation id="3853684360927654006">Outil d'évaluation du niveau de sécurité du mot de passe</translation>
 <translation id="3858027520442213535">Mettre à jour la date et l'heure</translation>
 <translation id="3858860766373142691">Nom</translation>
 <translation id="3872834068356954457">Sciences</translation>
@@ -1681,6 +1682,7 @@
 <translation id="5518670652865028077">Arts et divertissements</translation>
 <translation id="5519516356611866228">Avec vos modifications</translation>
 <translation id="5523118979700054094">Nom de la règle</translation>
+<translation id="5525755241743357906">Le fichier est copié ou déplacé</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis Entrée pour personnaliser vos outils d'accessibilité dans les paramètres Chrome OS</translation>
 <translation id="5528532273234423708">Domotique</translation>
 <translation id="55293785478302737">Agrafage par le bord</translation>
@@ -2934,6 +2936,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" /> ; appuyez sur Tabulation, puis sur Entrée pour définir Chrome comme navigateur par défaut dans les réglages iOS</translation>
 <translation id="9096679202588811390">Programmes et émissions TV</translation>
 <translation id="9101630580131696064">Bac 1</translation>
+<translation id="9102081333385212048">Les fichiers que vous copiez ou déplacez sont envoyés dans Google Cloud ou à des tiers pour y être analysés (par exemple, pour vérifier qu'ils ne contiennent pas de données sensibles ni de logiciels malveillants).</translation>
 <translation id="9103537084693478942">Logiciels de vidéo</translation>
 <translation id="9103872766612412690">Un chiffrement est normalement utilisé sur le site <ph name="SITE" /> pour protéger vos informations. Lors de la dernière tentative de connexion de Chromium au site <ph name="SITE" />, des identifiants inhabituels et incorrects ont été retournés. Il est possible qu'un individu malveillant tente de se faire passer pour <ph name="SITE" /> ou qu'un écran de connexion Wi-Fi ait interrompu la connexion. Vos informations restent sécurisées, car nous avons arrêté la connexion avant l'échange des données.</translation>
 <translation id="9106062320799175032">Ajouter une adresse de facturation</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb
index 9c0ca1fa..e1165b3 100644
--- a/components/strings/components_strings_gl.xtb
+++ b/components/strings/components_strings_gl.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Uso do dispositivo</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />. Preme Tabulador e, a continuación, Introducir para crear rapidamente un novo documento de Google</translation>
 <translation id="385051799172605136">Atrás</translation>
+<translation id="3853684360927654006">Calculadora de seguranza do contrasinal</translation>
 <translation id="3858027520442213535">Actualizar data e hora</translation>
 <translation id="3858860766373142691">Nome</translation>
 <translation id="3872834068356954457">Ciencia</translation>
@@ -1681,6 +1682,7 @@
 <translation id="5518670652865028077">Arte e entretemento</translation>
 <translation id="5519516356611866228">Cos teus cambios</translation>
 <translation id="5523118979700054094">Nome da política</translation>
+<translation id="5525755241743357906">Cópiase ou móvese un ficheiro</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />. Para personalizar as ferramentas de accesibilidade na configuración de Chrome OS, preme Tabulador e, a continuación, Introducir</translation>
 <translation id="5528532273234423708">Domótica</translation>
 <translation id="55293785478302737">Grampa no bordo</translation>
@@ -2933,6 +2935,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />. Para establecer Chrome como navegador predeterminado do sistema na configuración de iOS, preme Tabulador e, a continuación, Introducir</translation>
 <translation id="9096679202588811390">Programas de televisión</translation>
 <translation id="9101630580131696064">Bandexa 1</translation>
+<translation id="9102081333385212048">Os ficheiros que copies ou movas envíanselle a Google Cloud ou a terceiros para analizalos. Por exemplo, poderíase comprobar se conteñen datos confidenciais ou software malicioso.</translation>
 <translation id="9103537084693478942">Software de vídeo</translation>
 <translation id="9103872766612412690">Normalmente, <ph name="SITE" /> encripta a túa información para protexela. Nesta ocasión, cando Chromium tentou conectar con <ph name="SITE" />, o sitio web devolveu credenciais estrañas e incorrectas. É posible que un atacante tentase facerse pasar por <ph name="SITE" /> ou que a pantalla de inicio de sesión de wifi interrompese a conexión. Non obstante, a túa información segue a salvo porque Chromium detivo a conexión antes de intercambiar datos.</translation>
 <translation id="9106062320799175032">Engade un enderezo de facturación</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index c94bc71..ea48806b 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">आपके डिवाइस का इस्तेमाल</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, जल्दी से नया Google दस्तावेज़ बनाने के लिए, पहले Tab दबाएं और फिर Enter दबाएं</translation>
 <translation id="385051799172605136">वापस जाएं</translation>
+<translation id="3853684360927654006">पासवर्ड की मज़बूती की जांच प्रक्रिया</translation>
 <translation id="3858027520442213535">तारीख और समय अपडेट करें</translation>
 <translation id="3858860766373142691">नाम</translation>
 <translation id="3872834068356954457">विज्ञान</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb
index bcc96c93..d3bd7e8 100644
--- a/components/strings/components_strings_hy.xtb
+++ b/components/strings/components_strings_hy.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Սարքի օգտագործում</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />։ Արագ Google փաստաթուղթ ստեղծելու համար սեղմեք Tab, ապա՝ Enter։</translation>
 <translation id="385051799172605136">Հետ</translation>
+<translation id="3853684360927654006">Գաղտնաբառի հուսալիության հաշվիչ</translation>
 <translation id="3858027520442213535">Թարմացնել ամսաթիվը և ժամը</translation>
 <translation id="3858860766373142691">Անուն</translation>
 <translation id="3872834068356954457">Գիտություն</translation>
@@ -1682,6 +1683,7 @@
 <translation id="5518670652865028077">Արվեստ և զվարճանք</translation>
 <translation id="5519516356611866228">Ձեր կատարած փոփոխություններով</translation>
 <translation id="5523118979700054094">Կանոնի անունը</translation>
+<translation id="5525755241743357906">Ֆայլը պատճենվել կամ տեղափոխվել է</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />։ Սեղմեք Tab, ապա սեղմեք Enter՝ ChromeOS-ի կարգավորումներում հատուկ գործառույթների գործիքներն անհատականացնելու համար։</translation>
 <translation id="5528532273234423708">Տան ավտոմատացում</translation>
 <translation id="55293785478302737">Եզրակար</translation>
@@ -2934,6 +2936,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />։ Սեղմեք Tab, ապա՝ Enter, որպեսզի iOS-ի կարգավորումներում Chrome-ը դարձնեք համակարգի կանխադրված դիտարկիչը։</translation>
 <translation id="9096679202588811390">Հեռուստահաղորդումներ և ծրագրեր</translation>
 <translation id="9101630580131696064">Դարակ 1</translation>
+<translation id="9102081333385212048">Ֆայլերը, որոնք պատճենում կամ տեղափոխում եք, ուղարկվում են Google Cloud կամ գործընկեր կազմակերպություններին՝ վերլուծության նպատակով։ Օրինակ՝ դրանցում կարող է ստուգվել խիստ անձնական տվյալների կամ վնասագրերի առկայությունը։</translation>
 <translation id="9103537084693478942">Տեսանյութերի մշակման ծրագիր</translation>
 <translation id="9103872766612412690">Ձեր տվյալները պաշտպանելու համար <ph name="SITE" /> կայքը սովորաբար գաղտնագրում է օգտագործում: Chromium-ի՝ <ph name="SITE" /> կայքին կապակցվելու փորձի ժամանակ կայքը վերադարձրեց արտասովոր և սխալ մուտքային տվյալներ: Հնարավոր է, որ <ph name="SITE" /> կայքի անվան տակ նենգորդ է հանդես գալիս, կամ Wi-Fi մուտքի էկրանի կապն ընդհատվել է: Ձեր տվյալները, այնուամենայնիվ, ապահով են, քանի որ Chromium-ն ընդհատել էր կապը՝ նախքան տեղի կունենար տվյալների փոխանակում:</translation>
 <translation id="9106062320799175032">Ավելացրեք վճարային հասցեն</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb
index f80724ce..4c4046a 100644
--- a/components/strings/components_strings_is.xtb
+++ b/components/strings/components_strings_is.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Tækjanotkun þín</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, ýttu á Tab og svo Enter til að búa til nýtt Google skjal á skjótan hátt</translation>
 <translation id="385051799172605136">Til baka</translation>
+<translation id="3853684360927654006">Mat á öryggi aðgangsorðs</translation>
 <translation id="3858027520442213535">Uppfæra dagsetningu og tíma</translation>
 <translation id="3858860766373142691">Heiti</translation>
 <translation id="3872834068356954457">Vísindi</translation>
@@ -1681,6 +1682,7 @@
 <translation id="5518670652865028077">Listir og afþreying</translation>
 <translation id="5519516356611866228">Með breytingunum þínum</translation>
 <translation id="5523118979700054094">Heiti reglu</translation>
+<translation id="5525755241743357906">Skrá var afrituð eða færð</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, ýttu á dálkalykilinn (Tab) og svo á Enter til að sérsníða aðgengisverkfærin þín í stillingum ChromeOS</translation>
 <translation id="5528532273234423708">Sjálfvirkni á heimilinu</translation>
 <translation id="55293785478302737">Saumur</translation>
@@ -2933,6 +2935,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, Ýttu á dálkalykilinn (Tab) og svo á Enter til að stilla Chrome sem sjálfgefinn vafra kerfisins í stillingum iOS</translation>
 <translation id="9096679202588811390">Sjónvarpsþættir</translation>
 <translation id="9101630580131696064">Bakki 1</translation>
+<translation id="9102081333385212048">Skrár sem þú afritar eða færir eru sendar í Google Cloud eða til þriðju aðila til greiningar. Þær gætu til dæmis verið skannaðar í leit að viðkvæmum upplýsingum eða spilliforritum.</translation>
 <translation id="9103537084693478942">Myndbandshugbúnaður</translation>
 <translation id="9103872766612412690"><ph name="SITE" /> notast yfirleitt við dulkóðun til að vernda upplýsingarnar þínar. Þegar Chromium reyndi að tengjast <ph name="SITE" /> í þetta skiptið sendi vefsvæðið óvenjuleg og röng skilríki til baka. Þetta getur gerst þegar tölvuþrjótur reynir að þykjast vera <ph name="SITE" /> eða innskráningarskjár fyrir Wi-Fi hefur truflað tenginguna. Upplýsingarnar þínar eru enn öruggar vegna þess að Chromium sleit tengingunni áður en skipst var á gögnum.</translation>
 <translation id="9106062320799175032">Bæta við heimilisfangi greiðanda</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index ac56a69..8fdad057 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">השימוש שלך במכשיר</translation>
 <translation id="3848487483475744267">‏<ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, מקישים על Tab ואז על Enter כדי ליצור במהירות מסמך חדש ב-Google Docs</translation>
 <translation id="385051799172605136">חזרה</translation>
+<translation id="3853684360927654006">כלי לבדיקת חוזק הסיסמה</translation>
 <translation id="3858027520442213535">עדכון התאריך והשעה</translation>
 <translation id="3858860766373142691">שם</translation>
 <translation id="3872834068356954457">מדע</translation>
@@ -1686,6 +1687,7 @@
 <translation id="5518670652865028077">אומנות ובידור</translation>
 <translation id="5519516356611866228">עם השינויים שלך</translation>
 <translation id="5523118979700054094">שם מדיניות</translation>
+<translation id="5525755241743357906">הקובץ מועתק או מועבר</translation>
 <translation id="5526617258931667850">‏<ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, לוחצים על Tab ואז על Enter כדי להתאים אישית את כלי הנגישות בהגדרות ChromeOS</translation>
 <translation id="5528532273234423708">אוטומציה בבית</translation>
 <translation id="55293785478302737">הידוק קצוות</translation>
@@ -2938,6 +2940,7 @@
 <translation id="9096425087209440047">‏<ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, לוחצים על Tab ואז על Enter כדי להגדיר את Chrome כדפדפן ברירת המחדל של המערכת בהגדרות iOS</translation>
 <translation id="9096679202588811390">תוכניות וסדרות טלוויזיה</translation>
 <translation id="9101630580131696064">מגש 1</translation>
+<translation id="9102081333385212048">‏קבצים שמעתיקים או שמעבירים יישלחו אל Google Cloud או לצדדים שלישיים לצורך ניתוח. לדוגמה, יכול להיות שהקבצים יעברו סריקה כדי לאתר מידע אישי רגיש או תוכנות זדוניות.</translation>
 <translation id="9103537084693478942">תוכנות וידאו</translation>
 <translation id="9103872766612412690">‏האתר <ph name="SITE" /> משתמש בדרך כלל בהצפנה כדי להגן על המידע שלך. כאשר Chromium ניסה הפעם להתחבר ל-<ph name="SITE" />, האתר שלח חזרה אישורים חריגים ושגויים. ייתכן שתוקף מנסה להתחזות לאתר <ph name="SITE" />, או שמסך כניסה ל-Wi-Fi הפריע לחיבור. המידע שלך עדיין מאובטח מכיוון ש-Chromium הפסיק את החיבור לפני חילופי הנתונים.</translation>
 <translation id="9106062320799175032">הוספה של כתובת לחיוב</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index 6a738f1..2425664 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -1678,6 +1678,7 @@
 <translation id="5518670652865028077">ಕಲೆ ಮತ್ತು ಮನರಂಜನೆ</translation>
 <translation id="5519516356611866228">ನಿಮ್ಮ ಬದಲಾವಣೆಗಳ ಜೊತೆಗೆ</translation>
 <translation id="5523118979700054094">ನೀತಿ ಹೆಸರು</translation>
+<translation id="5525755241743357906">ಫೈಲ್ ಅನ್ನು ನಕಲಿಸಲಾಗಿದೆ ಅಥವಾ ಸರಿಸಲಾಗಿದೆ</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, ChromeOS ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಪ್ರವೇಶಿಸುವಿಕೆಯ ಪರಿಕರಗಳನ್ನು ವೈಯಕ್ತೀಕರಿಸಲು Tab ಒತ್ತಿ, ನಂತರ Enter ಒತ್ತಿರಿ</translation>
 <translation id="5528532273234423708">ಮನೆಯ ಯಾಂತ್ರೀಕರಣ</translation>
 <translation id="55293785478302737">ಅಂಚನ್ನು ಹೊಲಿಯಿರಿ</translation>
@@ -2929,6 +2930,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, iOS ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ Chrome ಅನ್ನು ಸಿಸ್ಟಂನ ಡೀಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಆಗಿ ಹೊಂದಿಸಲು ಟ್ಯಾಬ್ ಒತ್ತಿರಿ ನಂತರ Enter ಒತ್ತಿರಿ</translation>
 <translation id="9096679202588811390">ಟಿವಿ ಶೋಗಳು ಮತ್ತು ಕಾರ್ಯಕ್ರಮಗಳು</translation>
 <translation id="9101630580131696064">ಟ್ರೇ 1</translation>
+<translation id="9102081333385212048">ನೀವು ನಕಲಿಸುವ ಅಥವಾ ಸರಿಸುವ ಫೈಲ್‌ಗಳನ್ನು ವಿಶ್ಲೇಷಣೆಗಾಗಿ Google Cloud ಅಥವಾ ಥರ್ಡ್-ಪಾರ್ಟಿಗಳಿಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಅವುಗಳನ್ನು ಸೂಕ್ಷ್ಮವಾದ ವೈಯಕ್ತಿಕ ಡೇಟಾ ಅಥವಾ ಮಾಲ್‌ವೇರ್ ಅನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸ್ಕ್ಯಾನ್ ಮಾಡಬಹುದು.</translation>
 <translation id="9103537084693478942">ವೀಡಿಯೊ ಸಾಫ್ಟ್‌ವೇರ್</translation>
 <translation id="9103872766612412690"><ph name="SITE" /> ಸಾಮಾನ್ಯವಾಗಿ ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಸಂರಕ್ಷಿಸಲು ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಪ್ರಯೋಜನವನ್ನು ಬಳಸಿಕೊಳ್ಳುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ Chromium <ph name="SITE" /> ವೆಬ್‌ಸೈಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಪ್ರಯತ್ನಿಸಿದಾಗ, ಆ ವೆಬ್‌ಸೈಟ್‌‌ ಅಸಹಜ ಮತ್ತು ತಪ್ಪು ರುಜುವಾತುಗಳನ್ನು ಹಿಂತಿರುಗಿಸಿದೆ. ದಾಳಿಕೋರರು <ph name="SITE" /> ರೂಪದಲ್ಲಿ ಸೋಗು ಹಾಕಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವಾಗ ಅಥವಾ ವೈ-ಫೈ ಸೈನ್-ಇನ್ ಪರದೆಯು ಸಂಪರ್ಕಕ್ಕೆ ಅಡ್ಡಿಯುಂಟು ಮಾಡಿದಾಗ ಇದು ಕಂಡುಬರಬಹುದು. ಯಾವುದೇ ಡೇಟಾವನ್ನು ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳುವ ಮೊದಲೇ Chromium ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಿರುವ ಕಾರಣ, ನಿಮ್ಮ ಮಾಹಿತಿ ಈಗಲೂ ಸುರಕ್ಷಿತವಾಗಿದೆ.</translation>
 <translation id="9106062320799175032">ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸವನ್ನು ಸೇರಿಸಿ</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb
index c05b611..f174249 100644
--- a/components/strings/components_strings_ky.xtb
+++ b/components/strings/components_strings_ky.xtb
@@ -1681,6 +1681,7 @@
 <translation id="5518670652865028077">Көркөм өнөр жана көңүл ачуу</translation>
 <translation id="5519516356611866228">Өзгөртүүлөрүңүз бар</translation>
 <translation id="5523118979700054094">Саясаттын аталышы</translation>
+<translation id="5525755241743357906">Файл көчүрүлдү же жылдырылды</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, ChromeOS параметрлеринде атайын мүмкүнчүлүктөр куралдарын жекелештирүү үчүн Tab, андан кийин Enter баскычын басыңыз</translation>
 <translation id="5528532273234423708">Үйдү автоматташтыруу</translation>
 <translation id="55293785478302737">Четин жамоо</translation>
@@ -2933,6 +2934,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, iOS жөндөөлөрүнөн Chrome'ду системанын демейки серепчиси катары коюу үчүн Enter баскычын басыңыз</translation>
 <translation id="9096679202588811390">Телешоулор жана программалар</translation>
 <translation id="9101630580131696064">1-түпкүч</translation>
+<translation id="9102081333385212048">Көчүрүлгөн же жылдырылган файлдар Google Булутка же үчүнчү тараптын кызматтарына талдоо үчүн жөнөтүлөт. Мисалы, аларда купуя маалыматтын же кесепеттүү программанын болуусу текшерилет.</translation>
 <translation id="9103537084693478942">Видео үчүн программалык камсыздоо</translation>
 <translation id="9103872766612412690"><ph name="SITE" /> сайты маалыматыңызды коргоо үчүн адатта шифрлөөнү колдонот. Chromium бул жолу <ph name="SITE" /> сайтына туташууга аракет кылганда, вебсайт адаттан тышкары жана туура эмес эсептик дайындарды жөнөттү. Бул чабуулчу өзүн <ph name="SITE" /> катары көрсөткөнгө аракет кылып жатканда же Wi-Fi'дын кирүү экраны туташууну үзгүлтүккө учуратканда орун алышы мүмкүн. Chromium дайындар алмашылганга чейин туташууну үзүп койгондуктан, маалыматыңыздын коопсуздугу бузулган жок.</translation>
 <translation id="9106062320799175032">Төлөмдүн дарегин кошуу</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb
index 6c30854..f0f9b5a 100644
--- a/components/strings/components_strings_lo.xtb
+++ b/components/strings/components_strings_lo.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">ການນຳໃຊ້ອຸປະກອນຂອງທ່ານ</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ Tab ຈາກນັ້ນກົດ Enter ເພື່ອສ້າງ Google Doc ໃໝ່ໄດ້ຢ່າງວ່ອງໄວ</translation>
 <translation id="385051799172605136">ກັບ​ຄືນ​</translation>
+<translation id="3853684360927654006">ຈັກຄິດໄລ່ຄວາມຍາກຂອງລະຫັດຜ່ານ</translation>
 <translation id="3858027520442213535">ອັບ​ເດດ​ວັນ​ທີ ແລະ​ເວ​ລາ</translation>
 <translation id="3858860766373142691">ຊື່</translation>
 <translation id="3872834068356954457">ວິທະຍາສາດ</translation>
@@ -1681,6 +1682,7 @@
 <translation id="5518670652865028077">ສິນລະປະ ແລະ ບັນເທີງ</translation>
 <translation id="5519516356611866228">ພ້ອມກັບການປ່ຽນແປງຂອງທ່ານ</translation>
 <translation id="5523118979700054094">ຊື່​ນະ​ໂຍ​ບາຍ</translation>
+<translation id="5525755241743357906">ສໍາເນົາ ຫຼື ຍ້າຍໄຟລ໌ແລ້ວ</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ tab ແລ້ວກົດ Enter ເພື່ອປັບແຕ່ງເຄື່ອງມືການຊ່ວຍເຂົ້າເຖິງຂອງທ່ານໃນການຕັ້ງຄ່າ ChromeOS ໃຫ້ເປັນສ່ວນຕົວ</translation>
 <translation id="5528532273234423708">ລະບົບຄວບຄຸມອຸປະກອນໃນເຮືອນອັດຕະໂນມັດ</translation>
 <translation id="55293785478302737">ຫຍິບຂອບ</translation>
@@ -2933,6 +2935,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ tab ແລ້ວກົດ Enter ເພື່ອຕັ້ງ Chrome ເປັນໂປຣແກຣມທ່ອງເວັບເລີ່ມຕົ້ນຂອງລະບົບໃນການຕັ້ງຄ່າ iOS</translation>
 <translation id="9096679202588811390">ລາຍການໂທລະທັດ</translation>
 <translation id="9101630580131696064">ຖາດ 1</translation>
+<translation id="9102081333385212048">ໄຟລ໌ທີ່ທ່ານສໍາເນົາ ຫຼື ຍ້າຍອອກຈະຖືກສົ່ງໃຫ້ Google Cloud ຫຼື ພາກສ່ວນທີສາມເພື່ອວິເຄາະ. ຕົວຢ່າງ: ພວກມັນອາດຈະຖືກສະແກນຫາຂໍ້ມູນລະອຽດອ່ອນ ຫຼື ເມົາແວ.</translation>
 <translation id="9103537084693478942">ຊອບແວວິດີໂອ</translation>
 <translation id="9103872766612412690">ໂດຍປົກກະຕິ <ph name="SITE" /> ໃຊ້ການເຂົ້າລະຫັດເພື່ອປົກປ້ອງຂໍ້ມູນຂອງທ່ານ. ເມື່ອ Chromium ພະຍາຍາມເຊື່ອມຕໍ່ກັບ <ph name="SITE" /> ໃນເທື່ອນີ້, ເວັບໄຊໄດ້ມີການສົ່ງຂໍ້ມູນປະຈຳຕົວທີ່ຜິດປົກກະຕິ ແລະບໍ່ຖືກຕ້ອງກັບຄືນ. ນີ້ອາດຈະເກີດຂຶ້ນເມື່ອຜູ້ໂຈມຕີພະຍາຍາມປອມເປັນ <ph name="SITE" /> ຫຼື ໜ້າຈໍການເຂົ້າສູ່ລະບົບ Wi-Fi ໄດ້ຂັດຈັງຫວະການເຊື່ອມຕໍ່. ຂໍ້ມູນຂອງທ່ານຍັງປອດໄພຢູ່ເພາະວ່າ Chromium ໄດ້ຢຸດການເຊື່ອມຕໍ່ກ່ອນທີ່ຈະມີການແລກປ່ຽນຂໍ້ມູນ.</translation>
 <translation id="9106062320799175032">ເພີ່ມທີ່ຢູ່ການຮຽກເກັບເງິນ</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index dd3cc05..30a2599 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -1072,6 +1072,7 @@
 <translation id="3835233591525155343">Įrenginio naudojimas</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, paspauskite tabuliavimo klavišą, tada – „Enter“, jei norite greitai sukurti naują „Google“ dokumentą</translation>
 <translation id="385051799172605136">Atgal</translation>
+<translation id="3853684360927654006">Slaptažodžio patikimumo skaičiuotuvas</translation>
 <translation id="3858027520442213535">Atnaujinti datą ir laiką</translation>
 <translation id="3858860766373142691">Pavadinimas</translation>
 <translation id="3872834068356954457">Mokslas</translation>
@@ -1682,6 +1683,7 @@
 <translation id="5518670652865028077">Menas ir pramogos</translation>
 <translation id="5519516356611866228">Su jūsų pakeitimais</translation>
 <translation id="5523118979700054094">Politikos pavadinimas</translation>
+<translation id="5525755241743357906">Failas nukopijuotas arba perkeltas</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, paspauskite tabuliavimo klavišą, tada „Enter“, jei norite suasmeninti pritaikomumo įrankius „Chrome“ OS nustatymuose</translation>
 <translation id="5528532273234423708">Namų įrenginių automatizavimas</translation>
 <translation id="55293785478302737">Kraštų sukabinimas</translation>
@@ -2935,6 +2937,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />; paspauskite tabuliavimo klavišą, tada „Enter“, kad nustatytumėte „Chrome“ kaip numatytąją sistemos naršyklę „iOS“ nustatymuose</translation>
 <translation id="9096679202588811390">TV laidos ir programos</translation>
 <translation id="9101630580131696064">1 dėklas</translation>
+<translation id="9102081333385212048">Failai, kuriuos nukopijuojate ar perkeliate, siunčiami „Google Cloud“ arba trečiosioms šalims, kad būtų atlikta analizė. Pavyzdžiui, failai gali būti nuskaityti, ar juose nėra neskelbtinų duomenų ar kenkėjiškų programų.</translation>
 <translation id="9103537084693478942">Vaizdo įrašų programinė įranga</translation>
 <translation id="9103872766612412690">Svetainėje <ph name="SITE" /> įprastai naudojama šifruotė informacijai apsaugoti. Šį kartą „Chromium“ bandant prisijungti prie <ph name="SITE" />, ji pateikė neįprastus ir netinkamus prisijungimo duomenis. Gali būti, kad užpuolėjas bando apsimesti svetaine <ph name="SITE" /> arba „Wi-Fi“ prisijungimo ekrane nutrūko ryšys. Jūsų informacija vis tiek liko apsaugota, nes „Chromium“ sustabdė prisijungimą prieš apsikeitimą bet kokiais duomenimis.</translation>
 <translation id="9106062320799175032">Atsiskaitymo adreso pridėjimas</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index cf11e5a..3ed3ff4 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -1070,6 +1070,7 @@
 <translation id="3835233591525155343">Jūsu ierīces lietojums</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />. Lai ātri izveidotu jaunu Google dokumentu, nospiediet tabulēšanas taustiņu un pēc tam — taustiņu Enter.</translation>
 <translation id="385051799172605136">Atpakaļ</translation>
+<translation id="3853684360927654006">Paroles drošuma kalkulators</translation>
 <translation id="3858027520442213535">Atjaunināt datumu un laiku</translation>
 <translation id="3858860766373142691">Nosaukums</translation>
 <translation id="3872834068356954457">Zinātne</translation>
@@ -1680,6 +1681,7 @@
 <translation id="5518670652865028077">Māksla un izklaide</translation>
 <translation id="5519516356611866228">Ar jūsu veiktajām izmaiņām</translation>
 <translation id="5523118979700054094">Politikas nosaukums</translation>
+<translation id="5525755241743357906">Fails tiek kopēts vai pārvietots</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />. Lai Chrome OS iestatījumos personalizētu pieejamības rīkus, nospiediet tabulēšanas taustiņu un pēc tam — taustiņu Enter.</translation>
 <translation id="5528532273234423708">Mājas ierīču automatizācija</translation>
 <translation id="55293785478302737">Malu sašuvums</translation>
@@ -2933,6 +2935,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />; nospiediet tabulēšanas taustiņu un pēc tam — taustiņu Enter, lai iestatītu Chrome kā sistēmas noklusējuma pārlūku iOS iestatījumos.</translation>
 <translation id="9096679202588811390">TV seriāli un pārraides</translation>
 <translation id="9101630580131696064">1. paplāte</translation>
+<translation id="9102081333385212048">Jūsu kopētie vai pārvietotie faili tiek nosūtīti uz Google mākoni vai trešajām pusēm, lai veiktu analīzi. Šie faili var tikt pārmeklēti, lai konstatētu, piemēram, vai tajos ir ietverti sensitīvi dati vai ļaunprātīga programmatūra.</translation>
 <translation id="9103537084693478942">Video programmatūra</translation>
 <translation id="9103872766612412690">Vietnē <ph name="SITE" /> informācijas aizsargāšanai parasti tiek izmantota šifrēšana. Kad pārlūkā Chromium tika mēģināts izveidot savienojumu ar vietni <ph name="SITE" />, šoreiz tā nosūtīja neparastus un nepareizus akreditācijas datus. Iespējams, tas notika, jo uzbrucējs mēģināja uzdoties par vietni <ph name="SITE" />, vai arī Wi-Fi pierakstīšanās ekrāns pārtrauca savienojumu. Jūsu informācija joprojām ir drošībā, jo pārlūks Chromium pārtrauca savienojumu, pirms tika veikta jebkādu datu apmaiņa.</translation>
 <translation id="9106062320799175032">Norēķinu adreses pievienošana</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index 63d0b1c..5071b40 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Enhetsbruken din</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" /> – trykk på Tab og deretter på Enter for å opprette et nytt Google-dokument raskt</translation>
 <translation id="385051799172605136">Tilbake</translation>
+<translation id="3853684360927654006">Kalkulator for passordstyrke</translation>
 <translation id="3858027520442213535">Oppdater dato og klokkeslett</translation>
 <translation id="3858860766373142691">Navn</translation>
 <translation id="3872834068356954457">Vitenskap</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index c550ab5..cd3d5e7 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Korzystanie z urządzenia</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />; naciśnij Tab, a potem Enter, aby szybko utworzyć nowy dokument Google</translation>
 <translation id="385051799172605136">Wstecz</translation>
+<translation id="3853684360927654006">Kalkulator siły hasła</translation>
 <translation id="3858027520442213535">Zaktualizuj datę i godzinę</translation>
 <translation id="3858860766373142691">Nazwa</translation>
 <translation id="3872834068356954457">Nauka</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index e2cfefd..9cf93f9 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Folosirea dispozitivului</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a crea rapid un Document Google</translation>
 <translation id="385051799172605136">Înapoi</translation>
+<translation id="3853684360927654006">Calculator pentru siguranța parolei</translation>
 <translation id="3858027520442213535">Actualizează data și ora</translation>
 <translation id="3858860766373142691">Nume</translation>
 <translation id="3872834068356954457">Știință</translation>
@@ -1681,6 +1682,7 @@
 <translation id="5518670652865028077">Artă și divertisment</translation>
 <translation id="5519516356611866228">Cu modificări</translation>
 <translation id="5523118979700054094">Numele politicii</translation>
+<translation id="5525755241743357906">Fișierul este copiat sau mutat</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a personaliza instrumentele de accesibilitate în setările sistemului de operare Chrome</translation>
 <translation id="5528532273234423708">Automatizarea casei</translation>
 <translation id="55293785478302737">Broșare</translation>
@@ -2934,6 +2936,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe tab, apoi pe Enter ca să setezi Chrome ca browser prestabilit pentru sistem în setările iOS</translation>
 <translation id="9096679202588811390">Seriale și programe</translation>
 <translation id="9101630580131696064">Tava 1</translation>
+<translation id="9102081333385212048">Fișierele pe care le copiezi sau le muți sunt trimise la Google Cloud sau la terți spre analiză. De exemplu, se pot căuta date sensibile sau programe malware.</translation>
 <translation id="9103537084693478942">Programe software video</translation>
 <translation id="9103872766612412690">Site-ul <ph name="SITE" /> folosește în mod obișnuit criptarea pentru a-ți proteja informațiile. Când Chromium a încercat să se conecteze la <ph name="SITE" /> de această dată, site-ul a returnat date de conectare neobișnuite și incorecte. Acest lucru s-a întâmplat fie pentru că un atacator încearcă să falsifice site-ul <ph name="SITE" />, fie pentru că un ecran de conectare Wi-Fi a întrerupt conexiunea. Securitatea informațiilor tale nu a fost afectată, deoarece Chromium a oprit conexiunea înainte ca datele să fie transferate.</translation>
 <translation id="9106062320799175032">Adaugă o adresă de facturare</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index a88d2315..49e522f 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -1070,6 +1070,7 @@
 <translation id="3835233591525155343">Использование устройства</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />. Чтобы быстро создать документ Google, нажмите Tab, а затем Ввод.</translation>
 <translation id="385051799172605136">Назад</translation>
+<translation id="3853684360927654006">Определитель надежности пароля</translation>
 <translation id="3858027520442213535">Обновить дату и время</translation>
 <translation id="3858860766373142691">Название</translation>
 <translation id="3872834068356954457">Наука</translation>
@@ -1680,6 +1681,7 @@
 <translation id="5518670652865028077">Искусство и развлечения</translation>
 <translation id="5519516356611866228">С вашими изменениями</translation>
 <translation id="5523118979700054094">Название правила</translation>
+<translation id="5525755241743357906">Файл скопирован или перемещен</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />. Нажмите Tab, а затем Ввод, чтобы персонализировать инструменты специальных возможностей в настройках Chrome OS.</translation>
 <translation id="5528532273234423708">Автоматизация дома</translation>
 <translation id="55293785478302737">Скобы по краю</translation>
@@ -2932,6 +2934,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />. Нажмите Tab, а затем Ввод, чтобы сделать Chrome браузером по умолчанию в настройках iOS.</translation>
 <translation id="9096679202588811390">Телевизионные шоу и программы</translation>
 <translation id="9101630580131696064">Лоток 1</translation>
+<translation id="9102081333385212048">Файлы, которые вы копируете или перемещаете, передаются на проверку в Google Cloud или сторонние сервисы. В частности, файлы могут быть просканированы на наличие конфиденциальных данных или вредоносного ПО.</translation>
 <translation id="9103537084693478942">ПО для работы с видео</translation>
 <translation id="9103872766612412690">На сайте <ph name="SITE" /> для защиты ваших данных обычно используется шифрование. Однако учетные данные, которые мы получили от сайта <ph name="SITE" /> сейчас, отличаются от тех, которые он отправляет обычно. Вероятно, вредоносный сайт пытается выдать себя за <ph name="SITE" />, либо страница подключения к сети Wi-Fi прервала соединение. Ваша информация по-прежнему в безопасности, так как браузер Chromium разорвал соединение до того, как произошел обмен данными.</translation>
 <translation id="9106062320799175032">Добавьте платежный адрес</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb
index 00bb065..a3543760 100644
--- a/components/strings/components_strings_si.xtb
+++ b/components/strings/components_strings_si.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">ඔබගේ උපාංග භාවිතය</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, ඉක්මනින් නව Google Doc එකක් තැනීමට Tab ඔබා අනතුරුව Enter ඔබන්න</translation>
 <translation id="385051799172605136">ආපසු</translation>
+<translation id="3853684360927654006">මුරපදයේ ශක්ති ගණක යන්ත්‍රය</translation>
 <translation id="3858027520442213535">දිනය සහ වේලාව යාවත්කාලීන කරන්න</translation>
 <translation id="3858860766373142691">නම</translation>
 <translation id="3872834068356954457">විද්‍යාව</translation>
@@ -1681,6 +1682,7 @@
 <translation id="5518670652865028077">කලා සහ විනෝදාස්වාදය</translation>
 <translation id="5519516356611866228">ඔබගේ වෙනස් කිරීම් සමග</translation>
 <translation id="5523118979700054094">ප්‍රතිපත්තියේ නම</translation>
+<translation id="5525755241743357906">ගොනුව පිටපත් කර හෝ ගෙන ගොස් ඇත</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, ChromeOS සැකසීම් තුළ ඔබගේ ප්‍රවේශ්‍යතා මෙවලම් පුද්ගලිකකරණය කිරීමට Tab ඔබා අනතුරුව Enter ඔබන්න</translation>
 <translation id="5528532273234423708">නිවස ස්වයංකරණය</translation>
 <translation id="55293785478302737">දාර මැස්ම</translation>
@@ -2933,6 +2935,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, iOS සැකසීම් තුළ පද්ධතියේ පෙරනිමි බ්‍රවුසරය ලෙස Chrome සැකසීමට ටැබය ඔබා අනතුරුව Enter ඔබන්න</translation>
 <translation id="9096679202588811390">TV සංදර්ශන සහ වැඩසටහන්</translation>
 <translation id="9101630580131696064">බඳුන 1</translation>
+<translation id="9102081333385212048">ඔබ පිටපත් කරන හෝ ගෙන යන ගොනු විශ්ලේෂණය සඳහා Google Cloud හෝ තෙවන පාර්ශ්ව වෙත යවනු ලැබේ. උදාහරණයක් වශයෙන්, සංවේදී දත්ත හෝ අනිෂ්ට මෘදුකාංග සඳහා ඒවා ස්කෑන් කරනු ලැබිය හැක.</translation>
 <translation id="9103537084693478942">වීඩියෝ මෘදුකාංග</translation>
 <translation id="9103872766612412690"><ph name="SITE" /> සාමාන්‍යයෙන් ඔබගේ තොරතුරු ආරක්ෂා කිරීමට සංකේතනය භාවිත කරයි. මෙම අවස්ථාවේ දී Chromium <ph name="SITE" /> වෙත සබැඳීමට උත්සාහ කළ විට, වෙබ් අඩවිය අසාමාන්‍ය සහ වැරදි අක්තපත්‍ර ආපසු එවයි. ප්‍රහාරකයෙක් <ph name="SITE" /> මෙන් ඇඟවීමට උත්සාහ කරමින් සිටින විට, හෝ Wi-Fi පිරීම් තිරයට බාධා වූ විට මෙය සිදු විය හැකිය. දත්ත කිසිවක් හුවමාරු කර ගැනීමට පෙර Chromium සබැඳුම නතර කළ නිසා ඔබගේ තොරතුරු තවමත් සුරක්ෂිතය.</translation>
 <translation id="9106062320799175032">බිල්පත් ලිපිනය එක් කරන්න</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb
index 1e35a43e..5c4c43da 100644
--- a/components/strings/components_strings_sq.xtb
+++ b/components/strings/components_strings_sq.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Përdorimi i pajisjes sate</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, shtyp Tab pastaj Enter për të krijuar shpejt një "Dokument të Google"</translation>
 <translation id="385051799172605136">Prapa</translation>
+<translation id="3853684360927654006">Llogaritësi i fortësisë së fjalëkalimit</translation>
 <translation id="3858027520442213535">Përditëso datën dhe kohën</translation>
 <translation id="3858860766373142691">Emri</translation>
 <translation id="3872834068356954457">Shkenca</translation>
@@ -1681,6 +1682,7 @@
 <translation id="5518670652865028077">Artet dhe zbavitja</translation>
 <translation id="5519516356611866228">Me ndryshimet e tua</translation>
 <translation id="5523118979700054094">Emri i politikës</translation>
+<translation id="5525755241743357906">Skedari u kopjua ose u zhvendos</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />. Shtyp "Tab" dhe më pas "Enter" për të personalizuar veglat e qasshmërisë te cilësimet e ChromeOS.</translation>
 <translation id="5528532273234423708">Automatizimi i shtëpisë</translation>
 <translation id="55293785478302737">Qepje anësore</translation>
@@ -2932,6 +2934,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />; shtyp "Tab" dhe më pas "Enter" për të caktuar Chrome si shfletuesin e parazgjedhur të sistemit te cilësimet e iOS</translation>
 <translation id="9096679202588811390">Shfaqjet dhe programet televizive</translation>
 <translation id="9101630580131696064">Tabakaja 1</translation>
+<translation id="9102081333385212048">Skedarët që kopjon ose zhvendos dërgohen te Google Cloud ose te palë të treta për analizim. Për shembull, mund të skanohen për të dhëna delikate ose softuerë keqdashës.</translation>
 <translation id="9103537084693478942">Softuerët e videove</translation>
 <translation id="9103872766612412690"><ph name="SITE" /> përdor zakonisht enkriptimin për mbrojtjen e informacioneve të tua. Kur Chromium u përpoq të lidhej me <ph name="SITE" /> këtë herë, sajti i uebit dërgoi prapa kredenciale të pazakonta dhe të pasakta. Kjo mund të ndodhë kur një sulmues pretendon se është <ph name="SITE" /> ose kur lidhja është ndërprerë nga një ekran i identifikimit të Wi-Fi. Informacionet e tua janë ende të sigurta sepse Chromium e ndaloi lidhjen përpara se të shkëmbeheshin të dhënat.</translation>
 <translation id="9106062320799175032">Shto adresë faturimi</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index aacc8e2..bdfb3eb 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Enhetsanvändning</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />: tryck på Tabb och sedan på Retur om du snabbt vill skapa ett nytt Google-dokument</translation>
 <translation id="385051799172605136">Föregående</translation>
+<translation id="3853684360927654006">Kalkylator för lösenordssäkerhet</translation>
 <translation id="3858027520442213535">Uppdatera datum och tid</translation>
 <translation id="3858860766373142691">Namn</translation>
 <translation id="3872834068356954457">Vetenskap</translation>
@@ -1681,6 +1682,7 @@
 <translation id="5518670652865028077">Konst och underhållning</translation>
 <translation id="5519516356611866228">Med dina ändringar</translation>
 <translation id="5523118979700054094">Policynamn</translation>
+<translation id="5525755241743357906">Filen har kopierats eller flyttats</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />: tryck på Tabb och sedan på Retur om du vill anpassa tillgänglighetsverktygen i inställningarna för Chrome OS.</translation>
 <translation id="5528532273234423708">Automatisering i hemmet</translation>
 <translation id="55293785478302737">Kanthäftning</translation>
@@ -2934,6 +2936,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />: tryck på Tabb och sedan på Retur om du vill ställa in Chrome som standardwebbläsare i systeminställningarna för iOS</translation>
 <translation id="9096679202588811390">Tv-program</translation>
 <translation id="9101630580131696064">Fack 1</translation>
+<translation id="9102081333385212048">Filer som du kopierar eller flyttar skickas till Google Cloud eller tredje part för analys. De kan till exempel genomsökas efter känsliga uppgifter eller skadlig programvara.</translation>
 <translation id="9103537084693478942">Videoprogramvara</translation>
 <translation id="9103872766612412690">På <ph name="SITE" /> används normalt kryptering (SSL) för att skydda din information. När Chromium försökte ansluta till <ph name="SITE" /> den här gången skickade webbplatsen tillbaka ovanliga och felaktiga uppgifter. Sådant kan hända när en angripare utger sig för att vara <ph name="SITE" /> eller när anslutningen har avbrutits av en wifi-inloggningsskärm. Din information är fortfarande säker eftersom Chromium avbröt anslutningen innan någon data utbyttes.</translation>
 <translation id="9106062320799175032">Lägg till faktureringsadress</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index b4823e7f..b69c03d8 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Matumizi ya kifaa chako</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, bonyeza 'Tab' kisha 'Enter' ili uunde Hati mpya ya Google kwa haraka</translation>
 <translation id="385051799172605136">Rudi nyuma</translation>
+<translation id="3853684360927654006">Kikokotoo cha Uthabiti wa Nenosiri</translation>
 <translation id="3858027520442213535">Sasisha tarehe na saa</translation>
 <translation id="3858860766373142691">Jina</translation>
 <translation id="3872834068356954457">Sayansi</translation>
@@ -1681,6 +1682,7 @@
 <translation id="5518670652865028077">Sanaa na burudani</translation>
 <translation id="5519516356611866228">Ikiwa na mabadiliko uliyoyafanya</translation>
 <translation id="5523118979700054094">Jina la sera</translation>
+<translation id="5525755241743357906">Faili imenakiliwa au imehamishwa</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, Bonyeza 'tab' kisha 'Enter' ili uweke mapendeleo ya zana zako za ufikivu katika mipangilio ya Mfumo wa Uendeshaji wa Chrome</translation>
 <translation id="5528532273234423708">Kutumia mifumo otomatiki nyumbani kwako</translation>
 <translation id="55293785478302737">Mshono wa ncha</translation>
@@ -2930,6 +2932,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, Bonyeza kichupo kisha Enter ili uifanye Chrome iwe kivinjari chaguomsingi cha mfumo kwenye mipangilio ya iOS</translation>
 <translation id="9096679202588811390">Vipindi na maonyesho ya televisheni</translation>
 <translation id="9101630580131696064">Trei ya kwanza</translation>
+<translation id="9102081333385212048">Faili unazonakili au kuhamisha zinatumwa kwenye Wingu la Google au programu zingine ili zifanyiwe uchanganuzi. Kwa mfano, zinaweza kuchanganuliwa ili kubaini data nyeti au programu hasidi.</translation>
 <translation id="9103537084693478942">Programu ya kuhariri video</translation>
 <translation id="9103872766612412690">Kwa kawaida <ph name="SITE" /> hutumia usimbaji fiche ili kulinda maelezo yako. Chromium ilipojaribu kuunganisha kwenye <ph name="SITE" /> wakati huu, tovuti ilituma kitambulisho kisicho cha kawaida na kisicho sahihi. Hili linaweza kutokea mvamizi anapojaribu kujifanya kuwa <ph name="SITE" />, au uchanganuzi wa kuingia katika Wi-Fi umeingilia muunganisho. Maelezo yako yangali salama kwa sababu Chromium ilisimamisha muunganisho kabla data yoyote itumwe.</translation>
 <translation id="9106062320799175032">Ongeza Anwani ya Kutuma Bili</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index 9bcf897..28a06bb 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -743,7 +743,7 @@
 <translation id="2951588413176968965">నా మెయిల్‌బాక్స్</translation>
 <translation id="2952820037279740115">అజ్ఞాత విండోలన్నింటినీ మూసివేయండి</translation>
 <translation id="295526156371527179">హెచ్చరిక: ఈ విధానం ఒక నిఘంటువు కానందున, విధానంలో పేర్కొన్నట్లు నిఘంటువు లాగా విలీనం చేయబడలేదు.</translation>
-<translation id="2955913368246107853">కనుగొను పట్టీని మూసివేయి</translation>
+<translation id="2955913368246107853">కనుగొను బార్‌ను మూసివేయి</translation>
 <translation id="2958544468932521864">క్రికెట్</translation>
 <translation id="2959113999220720579">ముఖం &amp; శరీర సంరక్షణ</translation>
 <translation id="2968103128155246731">వ్యాన్‌లు &amp; మినీ వ్యాన్‌లు</translation>
@@ -1438,7 +1438,7 @@
 <translation id="4877083676943085827">{COUNT,plural, =0{ఏవీ లేవు}=1{<ph name="EXAMPLE_DOMAIN_1" />}=2{<ph name="EXAMPLE_DOMAIN_1" />, <ph name="EXAMPLE_DOMAIN_2" />}other{<ph name="EXAMPLE_DOMAIN_1" />, <ph name="EXAMPLE_DOMAIN_2" />, <ph name="AND_MORE" />}}</translation>
 <translation id="4877422487531841831"><ph name="TEXT" /> శోధన</translation>
 <translation id="4879491255372875719">ఆటోమేటిక్ (డిఫాల్ట్)</translation>
-<translation id="4880827082731008257">శోధన చరిత్ర</translation>
+<translation id="4880827082731008257">హిస్టరీలో సెర్చ్ చేయండి</translation>
 <translation id="4881695831933465202">తెరువు</translation>
 <translation id="4885256590493466218">చెక్అవుట్‌లో <ph name="CARD_DETAIL" />తో పేమెంట్ చేయండి</translation>
 <translation id="4888600795924685526">విదేశీ భాషా అధ్యయనం</translation>
@@ -1684,6 +1684,7 @@
 <translation id="5518670652865028077">కళలు &amp; వినోదం</translation>
 <translation id="5519516356611866228">మీరు చేసిన మార్పులతో డౌన్‌లోడ్ చేసుకోండి</translation>
 <translation id="5523118979700054094">విధానం పేరు</translation>
+<translation id="5525755241743357906">ఫైల్ కాపీ చేయబడింది లేదా తరలించబడింది</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, ChromeOS సెట్టింగ్‌లలో మీ యాక్సెసిబిలిటీ టూల్స్‌ను వ్యక్తిగతీకరించడానికి 'Tab'ను నొక్కి, ఆపై 'Enter'ను నొక్కండి</translation>
 <translation id="5528532273234423708">హోమ్ ఆటోమేషన్</translation>
 <translation id="55293785478302737">కుట్టిన అంచులు</translation>
@@ -2694,7 +2695,7 @@
 <translation id="8340095855084055290"><ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
 <translation id="834457929814110454">మీ భద్రతకు వాటిల్లే ఆపదల గురించి మీకు అర్థం అయ్యి ఉంటే, హానికర ప్రోగ్రామ్‌లు తీసివేయబడటానికి ముందే మీరు <ph name="BEGIN_LINK" />ఈ సైట్‌ను సందర్శించవచ్చు<ph name="END_LINK" />.</translation>
 <translation id="8347658365704983341">దూర విద్య</translation>
-<translation id="8349305172487531364">బుక్‌మార్క్‌ల పట్టీ</translation>
+<translation id="8349305172487531364">బుక్‌మార్క్‌ల బార్‌</translation>
 <translation id="8351131234907093545">గమనికను క్రియేట్ చేయండి</translation>
 <translation id="8355270400102541638">స్థానిక క్రాష్ సందర్భం:</translation>
 <translation id="8363502534493474904">ఎయిర్‌ప్లైన్ మోడ్‌ను ఆఫ్ చేయడం</translation>
@@ -2936,6 +2937,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, ట్యాబ్‌ను నొక్కి, ఆపై 'Enter'ను నొక్కి iOS సెట్టింగ్‌లలో Chromeను సిస్టమ్ ఆటోమేటిక్ బ్రౌజర్‌గా సెట్ చేయండి</translation>
 <translation id="9096679202588811390">టీవీ షోలు &amp; ప్రోగ్రామ్‌లు</translation>
 <translation id="9101630580131696064">ట్రే 1</translation>
+<translation id="9102081333385212048">మీరు కాపీ చేసే లేదా తరలించే ఫైల్స్, విశ్లేషణ కోసం Google క్లౌడ్ లేదా థర్డ్ పార్టీలకు పంపబడతాయి. ఉదాహరణకు, అవి సున్నితమైన వ్యక్తిగత సమాచారం లేదా మాల్‌వేర్ కోసం స్కాన్ చేయబడవచ్చు.</translation>
 <translation id="9103537084693478942">వీడియో సాఫ్ట్‌వేర్</translation>
 <translation id="9103872766612412690"><ph name="SITE" /> సాధారణంగా మీ సమాచారాన్ని రక్షించడానికి ఎన్‌క్రిప్ష‌న్‌ను ఉపయోగిస్తుంది. Chromium ఈసారి <ph name="SITE" />‌ను కనెక్ట్ చేయడానికి ప్రయత్నించినప్పుడు, వెబ్‌సైట్ అసాధారణ మరియు తప్పు ఆధారాలు అని ప్రతిస్పందించింది. దాడి చేసే వ్యక్తి <ph name="SITE" />గా వ్యవహరించి మోసగించడానికి ప్రయత్నిస్తున్నప్పుడు లేదా Wi-Fi సైన్-ఇన్ స్క్రీన్ కనెక్షన్‌కు అంతరాయం కలిగించినప్పుడు ఇలా జరగవచ్చు. ఎలాంటి డేటా వినిమయం సంభవించక ముందే Chromium, కనెక్షన్‌ను ఆపివేసినందున మీ సమాచారం ఇప్పటికీ సురక్షితంగానే ఉంది.</translation>
 <translation id="9106062320799175032">బిల్లింగ్ అడ్రస్‌ను జోడించండి</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index dc41cf7..112b549 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -2292,7 +2292,7 @@
 <translation id="7308436126008021607">การซิงค์ในเบื้องหลัง</translation>
 <translation id="7310392214323165548">อุปกรณ์จะรีสตาร์ทเร็วๆ นี้</translation>
 <translation id="7319430975418800333">A3</translation>
-<translation id="7320336641823683070">ความช่วยเหลือเกี่ยวกับการเชื่อมต่อ</translation>
+<translation id="7320336641823683070">ความช่วยเหลือในการเชื่อมต่อ</translation>
 <translation id="7323804146520582233">ซ่อนส่วน "<ph name="SECTION" />"</translation>
 <translation id="733354035281974745">ลบล้างบัญชีภายในอุปกรณ์</translation>
 <translation id="7334320624316649418">&amp;ทำซ้ำการจัดลำดับใหม่</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index 59aebf5..0c4a579 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">Cihaz kullanımınız</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />, hızlıca yeni bir Google Dokümanı oluşturmak için Sekme'ye, ardından Enter'a basın</translation>
 <translation id="385051799172605136">Geri</translation>
+<translation id="3853684360927654006">Şifre Gücü Hesaplayıcı</translation>
 <translation id="3858027520442213535">Tarih ve saati güncelle</translation>
 <translation id="3858860766373142691">Ad</translation>
 <translation id="3872834068356954457">Bilim</translation>
@@ -1681,6 +1682,7 @@
 <translation id="5518670652865028077">Sanat ve eğlence</translation>
 <translation id="5519516356611866228">Yaptığınız değişiklikler dahil</translation>
 <translation id="5523118979700054094">Politika adı</translation>
+<translation id="5525755241743357906">Dosya kopyalandı veya taşındı</translation>
 <translation id="5526617258931667850"><ph name="MANAGE_CHROMEOS_ACCESSIBILITY_FOCUSED_FRIENDLY_MATCH_TEXT" />, ChromeOS ayarlarında erişilebilirlik araçlarınızı kişiselleştirmek için Sekme'ye, ardından Enter'a basın</translation>
 <translation id="5528532273234423708">Ev otomasyonu</translation>
 <translation id="55293785478302737">Kenar dikişi</translation>
@@ -2934,6 +2936,7 @@
 <translation id="9096425087209440047"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome'u iOS ayarlarından sistemin varsayılan tarayıcısı olarak ayarlamak için sekmeye, ardından Enter'a basın</translation>
 <translation id="9096679202588811390">TV şovları ve programları</translation>
 <translation id="9101630580131696064">Tepsi 1</translation>
+<translation id="9102081333385212048">Kopyaladığınız veya taşıdığınız dosyalar analiz amacıyla Google Cloud'a ya da üçüncü taraflara gönderilir. Dosyalarınızın hassas veriler veya kötü amaçlı yazılım içerip içermediği kontrol edilir.</translation>
 <translation id="9103537084693478942">Video yazılımları</translation>
 <translation id="9103872766612412690"><ph name="SITE" /> normalde bilgilerinizi korumak için şifreleme kullanmaktadır. Chromium bu sefer <ph name="SITE" /> sitesine bağlanmayı denediğinde, web sitesi sıra dışı ve yanlış kimlik bilgileri döndürdü. Bir saldırgan <ph name="SITE" /> gibi davranmaya çalışıyor olabilir ya da bir Kablosuz oturum açma ekranı bağlantıyı kesmiştir. Chromium herhangi bir veri alışverişinden önce bağlantıyı durdurduğu için bilgileriniz hâlâ güvendedir.</translation>
 <translation id="9106062320799175032">Fatura Adresi Ekleyin</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index 4cf0d74..f63ec5a 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -1067,6 +1067,7 @@
 <translation id="3835233591525155343">您的设备使用情况</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />,依次按 Tab 键和 Enter 键即可快速创建新的 Google 文档</translation>
 <translation id="385051799172605136">返回</translation>
+<translation id="3853684360927654006">密码强度计算器</translation>
 <translation id="3858027520442213535">更新日期和时间</translation>
 <translation id="3858860766373142691">名称</translation>
 <translation id="3872834068356954457">科学</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb
index 17db02d7..7a46831 100644
--- a/components/strings/components_strings_zh-HK.xtb
+++ b/components/strings/components_strings_zh-HK.xtb
@@ -1070,6 +1070,7 @@
 <translation id="3835233591525155343">您的裝置使用狀態</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以快速建立新嘅 Google 文件</translation>
 <translation id="385051799172605136">返回</translation>
+<translation id="3853684360927654006">密碼強度計算機</translation>
 <translation id="3858027520442213535">更新日期和時間</translation>
 <translation id="3858860766373142691">名稱</translation>
 <translation id="3872834068356954457">科學</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index 0215dee..b21d2b2 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -1071,6 +1071,7 @@
 <translation id="3835233591525155343">你的裝置使用狀態</translation>
 <translation id="3848487483475744267"><ph name="CREATE_GOOGLE_DOC_FOCUSED_FRIENDLY_MATCH_TEXT" />;按下 Tab 鍵再按下 Enter 鍵即可快速建立新的 Google 文件</translation>
 <translation id="385051799172605136">返回</translation>
+<translation id="3853684360927654006">密碼強度計算機</translation>
 <translation id="3858027520442213535">更新日期和時間</translation>
 <translation id="3858860766373142691">名稱</translation>
 <translation id="3872834068356954457">科學</translation>
diff --git a/components/variations/variations_seed_processor.cc b/components/variations/variations_seed_processor.cc
index dfe929a..4e1b3a02 100644
--- a/components/variations/variations_seed_processor.cc
+++ b/components/variations/variations_seed_processor.cc
@@ -28,7 +28,7 @@
 
 // Associates the variations params of |experiment|, if present.
 void RegisterExperimentParams(const Study& study,
-                              const Study_Experiment& experiment) {
+                              const Study::Experiment& experiment) {
   std::map<std::string, std::string> params;
   for (int i = 0; i < experiment.param_size(); ++i) {
     if (experiment.param(i).has_name() && experiment.param(i).has_value())
@@ -42,7 +42,7 @@
 // Returns nullopt when |experiment| doesn't have a Google web or Google web
 // trigger experiment ID.
 absl::optional<IDCollectionKey> GetKeyForWebExperiment(
-    const Study_Experiment& experiment) {
+    const Study::Experiment& experiment) {
   bool has_web_experiment_id = experiment.has_google_web_experiment_id();
   bool has_web_trigger_experiment_id =
       experiment.has_google_web_trigger_experiment_id();
@@ -55,8 +55,8 @@
   // server before generating a variations seed.
   DCHECK(!(has_web_experiment_id && has_web_trigger_experiment_id));
 
-  Study_GoogleWebVisibility visibility = experiment.google_web_visibility();
-  if (visibility == Study_GoogleWebVisibility_FIRST_PARTY) {
+  Study::GoogleWebVisibility visibility = experiment.google_web_visibility();
+  if (visibility == Study::FIRST_PARTY) {
     return has_web_trigger_experiment_id
                ? GOOGLE_WEB_PROPERTIES_TRIGGER_FIRST_PARTY
                : GOOGLE_WEB_PROPERTIES_FIRST_PARTY;
@@ -68,7 +68,7 @@
 
 // If there are VariationIDs associated with |experiment|, register the
 // VariationIDs.
-void RegisterVariationIds(const Study_Experiment& experiment,
+void RegisterVariationIds(const Study::Experiment& experiment,
                           const std::string& trial_name) {
   if (experiment.has_google_app_experiment_id()) {
     const VariationID variation_id =
@@ -96,12 +96,12 @@
 
 // Executes |callback| on every override defined by |experiment|.
 void ApplyUIStringOverrides(
-    const Study_Experiment& experiment,
+    const Study::Experiment& experiment,
     const VariationsSeedProcessor::UIStringOverrideCallback& callback) {
   UMA_HISTOGRAM_COUNTS_100("Variations.StringsOverridden",
                            experiment.override_ui_string_size());
   for (int i = 0; i < experiment.override_ui_string_size(); ++i) {
-    const Study_Experiment_OverrideUIString& override =
+    const Study::Experiment::OverrideUIString& override =
         experiment.override_ui_string(i);
     callback.Run(override.name_hash(), base::UTF8ToUTF16(override.value()));
   }
@@ -110,12 +110,12 @@
 // Forces the specified |experiment| to be enabled in |study|.
 void ForceExperimentState(
     const Study& study,
-    const Study_Experiment& experiment,
+    const Study::Experiment& experiment,
     const VariationsSeedProcessor::UIStringOverrideCallback& override_callback,
     base::FieldTrial* trial) {
   RegisterExperimentParams(study, experiment);
   RegisterVariationIds(experiment, study.name());
-  if (study.activation_type() == Study_ActivationType_ACTIVATE_ON_STARTUP) {
+  if (study.activation_type() == Study::ACTIVATE_ON_STARTUP) {
     // This call must happen after all params have been registered for the
     // trial. Otherwise, since we look up params by trial and group name, the
     // params won't be registered under the correct key.
@@ -138,7 +138,7 @@
     return;
 
   const Study& study = *processed_study.study();
-  const Study_Experiment& experiment = study.experiment(experiment_index);
+  const Study::Experiment& experiment = study.experiment(experiment_index);
 
   // Process all the features to enable.
   int feature_count = experiment.feature_association().enable_feature_size();
@@ -169,7 +169,7 @@
 // Checks if |experiment| is associated with a forcing flag or feature and if it
 // is, returns whether it should be forced enabled based on the |command_line|
 // or |feature_list| state.
-bool ShouldForceExperiment(const Study_Experiment& experiment,
+bool ShouldForceExperiment(const Study::Experiment& experiment,
                            const base::CommandLine& command_line,
                            const base::FeatureList& feature_list) {
   if (experiment.feature_association().has_forcing_feature_on()) {
@@ -217,7 +217,7 @@
   // This should be kept in sync with the server-side layer validation
   // code: https://go/chrome-variations-layer-validation
   for (int i = 0; i < study.experiment_size(); ++i) {
-    const Study_Experiment& experiment = study.experiment(i);
+    const Study::Experiment& experiment = study.experiment(i);
     if (experiment.has_google_web_experiment_id() ||
         experiment.has_google_web_trigger_experiment_id() ||
         experiment.has_chrome_sync_experiment_id()) {
@@ -248,7 +248,7 @@
   // flag. Force the first experiment with an existing flag.
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
   for (int i = 0; i < study.experiment_size(); ++i) {
-    const Study_Experiment& experiment = study.experiment(i);
+    const Study::Experiment& experiment = study.experiment(i);
     if (ShouldForceExperiment(experiment, *command_line, *feature_list)) {
       base::FieldTrial* trial = base::FieldTrialList::CreateFieldTrial(
           study.name(), experiment.name());
@@ -305,7 +305,7 @@
   bool has_overrides = false;
   bool enables_or_disables_features = false;
   for (int i = 0; i < study.experiment_size(); ++i) {
-    const Study_Experiment& experiment = study.experiment(i);
+    const Study::Experiment& experiment = study.experiment(i);
     RegisterExperimentParams(study, experiment);
 
     // Groups with forcing flags have probability 0 and will never be selected.
@@ -335,7 +335,7 @@
   if (enables_or_disables_features)
     RegisterFeatureOverrides(processed_study, trial.get(), feature_list);
 
-  if (study.activation_type() == Study_ActivationType_ACTIVATE_ON_STARTUP) {
+  if (study.activation_type() == Study::ACTIVATE_ON_STARTUP) {
     // This call must happen after all params have been registered for the
     // trial. Otherwise, since we look up params by trial and group name, the
     // params won't be registered under the correct key.
diff --git a/components/variations/variations_seed_processor_unittest.cc b/components/variations/variations_seed_processor_unittest.cc
index ccde1f6..9f50235 100644
--- a/components/variations/variations_seed_processor_unittest.cc
+++ b/components/variations/variations_seed_processor_unittest.cc
@@ -56,9 +56,10 @@
 const VariationID kExperimentId = 123;
 
 // Adds an experiment to |study| with the specified |name| and |probability|.
-Study_Experiment* AddExperiment(const std::string& name, int probability,
-                                Study* study) {
-  Study_Experiment* experiment = study->add_experiment();
+Study::Experiment* AddExperiment(const std::string& name,
+                                 int probability,
+                                 Study* study) {
+  Study::Experiment* experiment = study->add_experiment();
   experiment->set_name(name);
   experiment->set_probability_weight(probability);
   return experiment;
@@ -233,9 +234,9 @@
   base::CommandLine::ForCurrentProcess()->AppendSwitch(kForcingFlag1);
 
   Study study = CreateStudyWithFlagGroups(100, 0, 0);
-  Study_Experiment* experiment1 = study.mutable_experiment(1);
+  Study::Experiment* experiment1 = study.mutable_experiment(1);
   experiment1->set_google_web_experiment_id(kExperimentId);
-  experiment1->set_google_web_visibility(Study_GoogleWebVisibility_FIRST_PARTY);
+  experiment1->set_google_web_visibility(Study::FIRST_PARTY);
 
   EXPECT_TRUE(CreateTrialFromStudy(study));
   EXPECT_EQ(kFlagGroup1Name,
@@ -362,16 +363,16 @@
   Study study;
   study.set_name("Study1");
   study.set_default_experiment_name("B");
-  study.set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study.set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
-  Study_Experiment* experiment1 = AddExperiment("A", 0, &study);
-  Study_Experiment_OverrideUIString* override =
+  Study::Experiment* experiment1 = AddExperiment("A", 0, &study);
+  Study::Experiment::OverrideUIString* override =
       experiment1->add_override_ui_string();
 
   override->set_name_hash(1234);
   override->set_value("test");
 
-  Study_Experiment* experiment2 = AddExperiment("B", 1, &study);
+  Study::Experiment* experiment2 = AddExperiment("B", 1, &study);
 
   EXPECT_TRUE(CreateTrialFromStudy(study));
 
@@ -395,8 +396,8 @@
   Study study = CreateStudyWithFlagGroups(100, 0, 0);
   ASSERT_EQ(kForcingFlag1, study.experiment(1).forcing_flag());
 
-  study.set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
-  Study_Experiment_OverrideUIString* override =
+  study.set_activation_type(Study::ACTIVATE_ON_STARTUP);
+  Study::Experiment::OverrideUIString* override =
       study.mutable_experiment(1)->add_override_ui_string();
   override->set_name_hash(1234);
   override->set_value("test");
@@ -417,7 +418,7 @@
   study.set_name("study");
   study.set_default_experiment_name("def");
   AddExperiment("abc", 100, &study);
-  Study_Experiment* default_group = AddExperiment("def", 200, &study);
+  Study::Experiment* default_group = AddExperiment("def", 200, &study);
 
   ProcessedStudy processed_study;
   EXPECT_TRUE(processed_study.Init(&study, false));
@@ -453,7 +454,7 @@
 
   default_group->set_name("def");
   EXPECT_TRUE(processed_study.Init(&study, false));
-  Study_Experiment* repeated_group = study.add_experiment();
+  Study::Experiment* repeated_group = study.add_experiment();
   repeated_group->set_name("abc");
   repeated_group->set_probability_weight(1);
   EXPECT_FALSE(processed_study.Init(&study, false));
@@ -463,9 +464,9 @@
   Study study;
   study.set_name("study");
   study.set_default_experiment_name("def");
-  Study_Experiment* exp1 = AddExperiment("exp1", 100, &study);
-  Study_Experiment* exp2 = AddExperiment("exp2", 100, &study);
-  Study_Experiment* exp3 = AddExperiment("exp3", 100, &study);
+  Study::Experiment* exp1 = AddExperiment("exp1", 100, &study);
+  Study::Experiment* exp2 = AddExperiment("exp2", 100, &study);
+  Study::Experiment* exp3 = AddExperiment("exp3", 100, &study);
   AddExperiment("def", 100, &study);
 
   ProcessedStudy processed_study;
@@ -508,7 +509,7 @@
 
   // Setting a different activation type should result in empty
   // |associated_features|.
-  study.set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study.set_activation_type(Study::ACTIVATE_ON_STARTUP);
   EXPECT_TRUE(processed_study.Init(&study, false));
   EXPECT_THAT(processed_study.associated_features(), IsEmpty());
 }
@@ -550,12 +551,12 @@
   study.set_name("Study1");
   study.set_default_experiment_name("B");
 
-  Study_Experiment* experiment1 = AddExperiment("A", 1, &study);
-  Study_Experiment_Param* param = experiment1->add_param();
+  Study::Experiment* experiment1 = AddExperiment("A", 1, &study);
+  Study::Experiment::Param* param = experiment1->add_param();
   param->set_name("x");
   param->set_value("y");
 
-  Study_Experiment* experiment2 = AddExperiment("B", 0, &study);
+  Study::Experiment* experiment2 = AddExperiment("B", 0, &study);
 
   EXPECT_TRUE(CreateTrialFromStudy(study));
   EXPECT_EQ("y", GetVariationParamValue("Study1", "x"));
@@ -570,7 +571,7 @@
 TEST_F(VariationsSeedProcessorTest, VariationParamsWithForcingFlag) {
   Study study = CreateStudyWithFlagGroups(100, 0, 0);
   ASSERT_EQ(kForcingFlag1, study.experiment(1).forcing_flag());
-  Study_Experiment_Param* param = study.mutable_experiment(1)->add_param();
+  Study::Experiment::Param* param = study.mutable_experiment(1)->add_param();
   param->set_name("x");
   param->set_value("y");
 
@@ -593,14 +594,14 @@
   study2->set_default_experiment_name("Default");
   AddExperiment("BB", 100, study2);
   AddExperiment("Default", 0, study2);
-  study2->set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study2->set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
   Study* study3 = seed.add_study();
   study3->set_name("C");
   study3->set_default_experiment_name("Default");
   AddExperiment("CC", 100, study3);
   AddExperiment("Default", 0, study3);
-  study3->set_activation_type(Study_ActivationType_ACTIVATE_ON_QUERY);
+  study3->set_activation_type(Study::ACTIVATE_ON_QUERY);
 
   ClientFilterableState client_state(base::BindOnce([] { return false; }));
   client_state.locale = "en-CA";
@@ -636,7 +637,7 @@
   base::CommandLine::ForCurrentProcess()->AppendSwitch(kForcingFlag1);
 
   Study study = CreateStudyWithFlagGroups(100, 0, 0);
-  study.set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study.set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
   EXPECT_TRUE(CreateTrialFromStudy(study));
   EXPECT_TRUE(base::FieldTrialList::IsTrialActive(kFlagStudyName));
@@ -648,7 +649,7 @@
 TEST_F(VariationsSeedProcessorTest, ForcingFlagAlreadyForced) {
   Study study = CreateStudyWithFlagGroups(100, 0, 0);
   ASSERT_EQ(kNonFlagGroupName, study.experiment(0).name());
-  Study_Experiment_Param* param = study.mutable_experiment(0)->add_param();
+  Study::Experiment::Param* param = study.mutable_experiment(0)->add_param();
   param->set_name("x");
   param->set_value("y");
   study.mutable_experiment(0)->set_google_web_experiment_id(kExperimentId);
@@ -707,8 +708,8 @@
     study.set_default_experiment_name("B");
     AddExperiment("B", 0, &study);
 
-    Study_Experiment* experiment = AddExperiment("A", 1, &study);
-    Study_Experiment_FeatureAssociation* association =
+    Study::Experiment* experiment = AddExperiment("A", 1, &study);
+    Study::Experiment::FeatureAssociation* association =
         experiment->mutable_feature_association();
     if (test_case.enable_feature)
       association->add_enable_feature(test_case.enable_feature);
@@ -836,12 +837,12 @@
     study.set_default_experiment_name(kDefaultGroup);
     AddExperiment(kDefaultGroup, group == DEFAULT_GROUP ? 1 : 0, &study);
 
-    Study_Experiment* feature_enable =
+    Study::Experiment* feature_enable =
         AddExperiment(kEnabledGroup, group == ENABLE_GROUP ? 1 : 0, &study);
     feature_enable->mutable_feature_association()->add_enable_feature(
         test_case.feature.name);
 
-    Study_Experiment* feature_disable =
+    Study::Experiment* feature_disable =
         AddExperiment(kDisabledGroup, group == DISABLE_GROUP ? 1 : 0, &study);
     feature_disable->mutable_feature_association()->add_disable_feature(
         test_case.feature.name);
@@ -911,7 +912,7 @@
     study.set_expiry_date(TimeToProtoTime(test_case.expiry_date));
 
     AddExperiment("Default", 0, &study);
-    Study_Experiment* feature_experiment = AddExperiment("Feature", 1, &study);
+    Study::Experiment* feature_experiment = AddExperiment("Feature", 1, &study);
     if (test_case.study_force_feature_state) {
       feature_experiment->mutable_feature_association()->add_enable_feature(
           test_case.feature.name);
@@ -1047,7 +1048,7 @@
 
   Study* study = seed.add_study();
   study->set_name("Study1");
-  study->set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study->set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
   LayerMemberReference* layer = study->mutable_layer();
   layer->set_layer_id(42);
@@ -1075,7 +1076,7 @@
 
   Study* study = seed.add_study();
   study->set_name("Study1");
-  study->set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study->set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
   LayerMemberReference* layer_membership = study->mutable_layer();
   layer_membership->set_layer_id(42);
@@ -1103,7 +1104,7 @@
 
   Study* study = seed.add_study();
   study->set_name("Study1");
-  study->set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study->set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
   LayerMemberReference* layer_membership = study->mutable_layer();
   layer_membership->set_layer_id(42);
@@ -1129,7 +1130,7 @@
 
   Study* study = seed.add_study();
   study->set_name("Study1");
-  study->set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study->set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
   LayerMemberReference* layer_membership = study->mutable_layer();
   layer_membership->set_layer_id(42);
@@ -1162,7 +1163,7 @@
 
   Study* study = seed.add_study();
   study->set_name("Study1");
-  study->set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study->set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
   LayerMemberReference* layer_membership = study->mutable_layer();
   layer_membership->set_layer_id(42);
@@ -1190,7 +1191,7 @@
 
   Study* study = seed.add_study();
   study->set_name("Study1");
-  study->set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study->set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
   LayerMemberReference* layer_membership = study->mutable_layer();
   layer_membership->set_layer_id(42);
@@ -1218,7 +1219,7 @@
 
   Study* study = seed.add_study();
   study->set_name("Study1");
-  study->set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study->set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
   LayerMemberReference* layer_membership = study->mutable_layer();
   layer_membership->set_layer_id(42);
@@ -1263,7 +1264,7 @@
 
   Study* study = seed.add_study();
   study->set_name("Study1");
-  study->set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study->set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
   LayerMemberReference* layer_membership = study->mutable_layer();
   layer_membership->set_layer_id(42);
@@ -1305,7 +1306,7 @@
 
   Study* study = seed.add_study();
   study->set_name("Study1");
-  study->set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study->set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
   LayerMemberReference* layer_membership = study->mutable_layer();
   layer_membership->set_layer_id(42);
@@ -1405,7 +1406,7 @@
 
   Study* study = seed.add_study();
   study->set_name("Study1");
-  study->set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study->set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
   LayerMemberReference* layer_membership = study->mutable_layer();
   layer_membership->set_layer_id(42);
@@ -1434,7 +1435,7 @@
 
   Study* study = seed.add_study();
   study->set_name("Study1");
-  study->set_activation_type(Study_ActivationType_ACTIVATE_ON_STARTUP);
+  study->set_activation_type(Study::ACTIVATE_ON_STARTUP);
 
   LayerMemberReference* layer_membership = study->mutable_layer();
   layer_membership->set_layer_id(42);
diff --git a/components/viz/service/display/overlay_candidate.h b/components/viz/service/display/overlay_candidate.h
index 1c7d5f1..1dbefcab 100644
--- a/components/viz/service/display/overlay_candidate.h
+++ b/components/viz/service/display/overlay_candidate.h
@@ -162,11 +162,6 @@
   // is the recorded output of rendering the |rpdq|.
   sk_sp<SkDeferredDisplayList> ddl;
 
-  // The bounds in pixels of the rendered |rpdq|.
-  // TODO(petermcneeley) : Refactor the usage of this member to be compatible
-  // with |uv_rect| member in this class.
-  gfx::RectF bounds_rect;
-
   // Quad |shared_quad_state| opacity is ubiquitous for quad types
   // AggregateRenderPassDrawQuad, TileDrawQuad, SolidColorDrawQuad. A delegate
   // context must support non opaque opacity for these types.
diff --git a/components/viz/service/display/skia_renderer.cc b/components/viz/service/display/skia_renderer.cc
index 25c199e..8cadaf9 100644
--- a/components/viz/service/display/skia_renderer.cc
+++ b/components/viz/service/display/skia_renderer.cc
@@ -73,7 +73,9 @@
 #include "ui/gfx/geometry/axis_transform2d.h"
 #include "ui/gfx/geometry/linear_gradient.h"
 #include "ui/gfx/geometry/rect_conversions.h"
+#include "ui/gfx/geometry/rect_f.h"
 #include "ui/gfx/geometry/size_conversions.h"
+#include "ui/gfx/geometry/size_f.h"
 #include "ui/gfx/geometry/skia_conversions.h"
 #include "ui/gfx/geometry/transform.h"
 #include "ui/gfx/geometry/transform_util.h"
@@ -3219,12 +3221,6 @@
     DCHECK(result) << "shared_quad_state->mask_filter_info.Transform() failed.";
   }
 
-  // Reset |quad_to_target_transform|, so the quad will be rendered at the
-  // origin (0,0) without all transforms (translation, scaling, rotation, etc)
-  // and then we will use OS compositor to do those transforms.
-  base::AutoReset<gfx::Transform> auto_reset_transform(
-      &shared_quad_state->quad_to_target_transform, gfx::Transform());
-
   const auto& viewport_size = current_frame()->device_viewport_size;
   auto projection_matrix = gfx::OrthoProjectionMatrix(
       /*left=*/0, /*right=*/viewport_size.width(), /*bottom=*/0,
@@ -3235,14 +3231,23 @@
 
   gfx::Transform target_to_device = window_matrix * projection_matrix;
 
-  // Use nullptr scissor, so we can always render the whole render pass in an
-  // overlay backing.
-  // TODO(penghuang): reusing overlay backing from previous frame to avoid
-  // reproducing the overlay backing if the render pass content quad properties
-  // and content are not changed.
-  DrawQuadParams params = CalculateDrawQuadParams(
-      target_to_device, /*scissor=*/nullptr, quad, /*draw_region=*/nullptr);
-  DrawRPDQParams rpdq_params = CalculateRPDQParams(quad, &params);
+  DrawQuadParams params;
+  DrawRPDQParams rpdq_params{gfx::RectF()};
+  {
+    // Reset |quad_to_target_transform|, so the quad will be rendered at the
+    // origin (0,0) without all transforms (translation, scaling, rotation, etc)
+    // and then we will use OS compositor to do those transforms.
+    base::AutoReset<gfx::Transform> auto_reset_transform(
+        &shared_quad_state->quad_to_target_transform, gfx::Transform());
+    // Use nullptr scissor, so we can always render the whole render pass in an
+    // overlay backing.
+    // TODO(penghuang): reusing overlay backing from previous frame to avoid
+    // reproducing the overlay backing if the render pass content quad
+    // properties and content are not changed.
+    params = CalculateDrawQuadParams(target_to_device, /*scissor_rect=*/nullptr,
+                                     quad, /*draw_region=*/nullptr);
+    rpdq_params = CalculateRPDQParams(quad, &params);
+  }
 
   const auto& filter_bounds = rpdq_params.filter_bounds;
 
@@ -3280,13 +3285,7 @@
 
   // Adjust the overlay |buffer_size| to reduce memory fragmentation. It also
   // increases buffer reusing possibilities.
-#if BUILDFLAG(IS_APPLE)
   constexpr int kBufferMultiple = 64;
-#else  // defined(USE_OZONE)
-  // TODO(petermcneeley) : Support buffer rounding by dynamically changing
-  // texture uvs.
-  constexpr int kBufferMultiple = 1;
-#endif  // BUILDFLAG(IS_APPLE)
   gfx::Size buffer_size(
       cc::MathUtil::CheckedRoundUp(filter_bounds.width(), kBufferMultiple),
       cc::MathUtil::CheckedRoundUp(filter_bounds.height(), kBufferMultiple));
@@ -3387,9 +3386,28 @@
 
   EndPaint(/*failed=*/false);
 
+#if BUILDFLAG(IS_APPLE)
   // Adjust |bounds_rect| to contain the whole buffer and at the right location.
   overlay->bounds_rect.set_origin(gfx::PointF(filter_bounds.origin()));
   overlay->bounds_rect.set_size(gfx::SizeF(buffer_size));
+#else   // defined(USE_OZONE)
+  // Adjust |display_rect| to be include the expanded |filter_bounds|, and
+  // transformed.
+  // TODO(fangzhoug): Merge Ozone and Apple code paths of delegated compositing.
+  overlay->display_rect = gfx::RectF(filter_bounds);
+  quad->shared_quad_state->quad_to_target_transform.TransformRect(
+      &overlay->display_rect);
+  overlay->display_rect.Intersect(
+      gfx::RectF(gfx::SizeF(current_frame()->device_viewport_size)));
+  auto buffer_rect =
+      gfx::RectF(overlay->display_rect.origin(), gfx::SizeF(buffer_size));
+  // Set |uv_rect| to reflect clipping from |buffer_size| to |filter_bounds|.
+  overlay->uv_rect = gfx::RectF{1.f, 1.f};
+  if (buffer_rect != overlay->display_rect) {
+    overlay->uv_rect = cc::MathUtil::ScaleRectProportional(
+        overlay->uv_rect, buffer_rect, overlay->display_rect);
+  }
+#endif  // BUILDFLAG(IS_APPLE)
 }
 #endif  // BUILDFLAG(IS_APPLE) || defined(USE_OZONE)
 
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
index a8dbe36..4c87c0a 100644
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
@@ -190,6 +190,25 @@
     }
 
     @Override
+    public void isConditionalMediationAvailable(
+            final IsConditionalMediationAvailable_Response callback) {
+        if (mGmsCorePackageVersion < GMSCORE_MIN_VERSION) {
+            callback.call(false);
+            return;
+        }
+
+        // The WebAuthenticationConditionalUI feature will only be enabled on Android when gmscore
+        // supports silent discovery. If the gmscore and chromium versions are out of sync for some
+        // reason, this method will return true but chrome will ignore conditional requests.
+        // Android surfaces only platform credentials on conditional requests, use IsUVPAA as a
+        // proxy for availability.
+        mIsUserVerifyingPlatformAuthenticatorAvailableCallbackQueue.add(callback);
+        getFido2CredentialRequest().handleIsUserVerifyingPlatformAuthenticatorAvailableRequest(
+                mRenderFrameHost,
+                isUvpaa -> onIsUserVerifyingPlatformAuthenticatorAvailableResponse(isUvpaa));
+    }
+
+    @Override
     public void cancel() {
         // Not implemented, ignored because request sent to gmscore fido cannot be cancelled.
         return;
diff --git a/content/browser/accessibility/dump_accessibility_node_browsertest.cc b/content/browser/accessibility/dump_accessibility_node_browsertest.cc
index 010b1746..69b9180 100644
--- a/content/browser/accessibility/dump_accessibility_node_browsertest.cc
+++ b/content/browser/accessibility/dump_accessibility_node_browsertest.cc
@@ -970,6 +970,12 @@
 }
 
 IN_PROC_BROWSER_TEST_P(DumpAccessibilityAccNameTest,
+                       NameTextLabelledbyAriaHiddenDifferentVisibilityTypes) {
+  RunAccNameTest(FILE_PATH_LITERAL(
+      "name-text-labelledby-aria-hidden-different-visibility-types.html"));
+}
+
+IN_PROC_BROWSER_TEST_P(DumpAccessibilityAccNameTest,
                        NameTextLabelledbyHiddenDifferentVisibilityTypes) {
   RunAccNameTest(FILE_PATH_LITERAL(
       "name-text-labelledby-hidden-different-visibility-types.html"));
diff --git a/content/browser/aggregation_service/aggregation_service_test_utils.cc b/content/browser/aggregation_service/aggregation_service_test_utils.cc
index 4aafc162..bf66dab 100644
--- a/content/browser/aggregation_service/aggregation_service_test_utils.cc
+++ b/content/browser/aggregation_service/aggregation_service_test_utils.cc
@@ -374,6 +374,10 @@
   return storage_;
 }
 
+MockAggregationService::MockAggregationService() = default;
+
+MockAggregationService::~MockAggregationService() = default;
+
 std::ostream& operator<<(
     std::ostream& out,
     AggregationServicePayloadContents::Operation operation) {
diff --git a/content/browser/aggregation_service/aggregation_service_test_utils.h b/content/browser/aggregation_service/aggregation_service_test_utils.h
index 5111f97..2639795 100644
--- a/content/browser/aggregation_service/aggregation_service_test_utils.h
+++ b/content/browser/aggregation_service/aggregation_service_test_utils.h
@@ -14,9 +14,11 @@
 #include "base/containers/span.h"
 #include "base/threading/sequence_bound.h"
 #include "content/browser/aggregation_service/aggregatable_report.h"
+#include "content/browser/aggregation_service/aggregation_service.h"
 #include "content/browser/aggregation_service/aggregation_service_storage_context.h"
 #include "content/browser/aggregation_service/public_key.h"
 #include "content/common/aggregatable_report.mojom.h"
+#include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/boringssl/src/include/openssl/hpke.h"
@@ -108,6 +110,46 @@
   base::SequenceBound<content::AggregationServiceStorage> storage_;
 };
 
+class MockAggregationService : public AggregationService {
+ public:
+  MockAggregationService();
+  ~MockAggregationService() override;
+
+  // AggregationService:
+  MOCK_METHOD(void,
+              AssembleReport,
+              (AggregatableReportRequest request,
+               AggregationService::AssemblyCallback callback),
+              (override));
+
+  MOCK_METHOD(void,
+              SendReport,
+              (const GURL& url,
+               const AggregatableReport& report,
+               AggregationService::SendCallback callback),
+              (override));
+
+  MOCK_METHOD(void,
+              SendReport,
+              (const GURL& url,
+               const base::Value& value,
+               AggregationService::SendCallback callback),
+              (override));
+
+  MOCK_METHOD(void,
+              ClearData,
+              (base::Time delete_begin,
+               base::Time delete_end,
+               StoragePartition::StorageKeyMatcherFunction filter,
+               base::OnceClosure done),
+              (override));
+
+  MOCK_METHOD(void,
+              ScheduleReport,
+              (AggregatableReportRequest report_request),
+              (override));
+};
+
 // Only used for logging in tests.
 std::ostream& operator<<(
     std::ostream& out,
diff --git a/content/browser/attribution_reporting/attribution_aggregatable_report_golden_unittest.cc b/content/browser/attribution_reporting/attribution_aggregatable_report_golden_unittest.cc
index 8070c352..67870a3d 100644
--- a/content/browser/attribution_reporting/attribution_aggregatable_report_golden_unittest.cc
+++ b/content/browser/attribution_reporting/attribution_aggregatable_report_golden_unittest.cc
@@ -142,9 +142,10 @@
 
  private:
   AggregationServiceImpl& aggregation_service() {
-    return *(static_cast<StoragePartitionImpl*>(
-                 browser_context_.GetDefaultStoragePartition())
-                 ->GetAggregationService());
+    return *static_cast<AggregationServiceImpl*>(
+        static_cast<StoragePartitionImpl*>(
+            browser_context_.GetDefaultStoragePartition())
+            ->GetAggregationService());
   }
 
   testing::AssertionResult VerifyReport(
diff --git a/content/browser/attribution_reporting/attribution_header_utils.h b/content/browser/attribution_reporting/attribution_header_utils.h
index 9cf31bf..57d3edce 100644
--- a/content/browser/attribution_reporting/attribution_header_utils.h
+++ b/content/browser/attribution_reporting/attribution_header_utils.h
@@ -7,6 +7,7 @@
 
 #include "base/values.h"
 #include "content/browser/attribution_reporting/attribution_source_type.h"
+#include "content/common/content_export.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace base {
@@ -22,7 +23,7 @@
 class StorableSource;
 
 // TODO(apaseltiner):  Add a fuzzer.
-absl::optional<StorableSource> ParseSourceRegistration(
+CONTENT_EXPORT absl::optional<StorableSource> ParseSourceRegistration(
     base::Value::Dict registration,
     base::Time source_time,
     url::Origin reporting_origin,
diff --git a/content/browser/attribution_reporting/attribution_header_utils_unittest.cc b/content/browser/attribution_reporting/attribution_header_utils_unittest.cc
index fa48f8e3..24a0c7f9 100644
--- a/content/browser/attribution_reporting/attribution_header_utils_unittest.cc
+++ b/content/browser/attribution_reporting/attribution_header_utils_unittest.cc
@@ -12,11 +12,20 @@
 #include "base/stl_util.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/values_test_util.h"
+#include "base/time/time.h"
 #include "base/values.h"
+#include "content/browser/attribution_reporting/attribution_aggregation_keys.h"
+#include "content/browser/attribution_reporting/attribution_filter_data.h"
+#include "content/browser/attribution_reporting/attribution_source_type.h"
 #include "content/browser/attribution_reporting/attribution_test_utils.h"
+#include "content/browser/attribution_reporting/common_source_info.h"
+#include "content/browser/attribution_reporting/storable_source.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/abseil-cpp/absl/numeric/int128.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/public/common/attribution_reporting/constants.h"
+#include "url/gurl.h"
+#include "url/origin.h"
 
 namespace content {
 namespace {
@@ -245,5 +254,196 @@
   }
 }
 
+TEST(AttributionRegistrationParsingTest, ParseSourceRegistration) {
+  const base::Time source_time = base::Time::Now();
+  const auto reporting_origin = url::Origin::Create(GURL("https://r.example"));
+  const auto source_origin = url::Origin::Create(GURL("https://s.example"));
+  const auto source_type = AttributionSourceType::kNavigation;
+
+  const auto destination_origin =
+      url::Origin::Create(GURL("https://d.example"));
+
+  const base::Time default_expiry_time = source_time + base::Days(30);
+
+  const struct {
+    const char* desc;
+    const char* json;
+    absl::optional<StorableSource> expected;
+  } kTestCases[] = {
+      {
+          "required_fields_only",
+          R"json({"source_event_id":"1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/1, source_origin, destination_origin,
+              reporting_origin, source_time, default_expiry_time, source_type,
+              /*priority=*/0, AttributionFilterData(),
+              /*debug_key=*/absl::nullopt, AttributionAggregationKeys())),
+      },
+      {
+          "source_event_id_missing",
+          R"json({"destination":"https://d.example"})json",
+          absl::nullopt,
+      },
+      {
+          "source_event_id_wrong_type",
+          R"json({"source_event_id":1,"destination":"https://d.example"})json",
+          absl::nullopt,
+      },
+      {
+          "source_event_id_invalid_defaults_to_0",
+          R"json({"source_event_id":"-1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/0, source_origin, destination_origin,
+              reporting_origin, source_time, default_expiry_time, source_type,
+              /*priority=*/0, AttributionFilterData(),
+              /*debug_key=*/absl::nullopt, AttributionAggregationKeys())),
+      },
+      {
+          "destination_missing",
+          R"json({"source_event_id":"1"})json",
+          absl::nullopt,
+      },
+      {
+          "destination_wrong_type",
+          R"json({"source_event_id":"1","destination":0})json",
+          absl::nullopt,
+      },
+      {
+          "priority_valid",
+          R"json({"priority":"-5","source_event_id":"1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/1, source_origin, destination_origin,
+              reporting_origin, source_time, default_expiry_time, source_type,
+              /*priority=*/-5, AttributionFilterData(),
+              /*debug_key=*/absl::nullopt, AttributionAggregationKeys())),
+      },
+      {
+          "priority_wrong_type_defaults_to_0",
+          R"json({"priority":-5,"source_event_id":"1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/1, source_origin, destination_origin,
+              reporting_origin, source_time, default_expiry_time, source_type,
+              /*priority=*/0, AttributionFilterData(),
+              /*debug_key=*/absl::nullopt, AttributionAggregationKeys())),
+      },
+      {
+          "priority_invalid_defaults_to_0",
+          R"json({"priority":"abc","source_event_id":"1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/1, source_origin, destination_origin,
+              reporting_origin, source_time, default_expiry_time, source_type,
+              /*priority=*/0, AttributionFilterData(),
+              /*debug_key=*/absl::nullopt, AttributionAggregationKeys())),
+      },
+      {
+          "expiry_valid",
+          R"json({"expiry":"172801","source_event_id":"1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/1, source_origin, destination_origin,
+              reporting_origin, source_time,
+              /*expiry_time=*/source_time + base::Seconds(172801), source_type,
+              /*priority=*/0, AttributionFilterData(),
+              /*debug_key=*/absl::nullopt, AttributionAggregationKeys())),
+      },
+      {
+          "expiry_wrong_type",
+          R"json({"expiry":172800,"source_event_id":"1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/1, source_origin, destination_origin,
+              reporting_origin, source_time, default_expiry_time, source_type,
+              /*priority=*/0, AttributionFilterData(),
+              /*debug_key=*/absl::nullopt, AttributionAggregationKeys())),
+      },
+      {
+          "expiry_invalid",
+          R"json({"expiry":"abc","source_event_id":"1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/1, source_origin, destination_origin,
+              reporting_origin, source_time, default_expiry_time, source_type,
+              /*priority=*/0, AttributionFilterData(),
+              /*debug_key=*/absl::nullopt, AttributionAggregationKeys())),
+      },
+      {
+          "expiry_below_min",
+          R"json({"expiry":"86399","source_event_id":"1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/1, source_origin, destination_origin,
+              reporting_origin, source_time,
+              /*expiry_time=*/source_time + base::Days(1), source_type,
+              /*priority=*/0, AttributionFilterData(),
+              /*debug_key=*/absl::nullopt, AttributionAggregationKeys())),
+      },
+      {
+          "debug_key_valid",
+          R"json({"debug_key":"5","source_event_id":"1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/1, source_origin, destination_origin,
+              reporting_origin, source_time, default_expiry_time, source_type,
+              /*priority=*/0, AttributionFilterData(),
+              /*debug_key=*/5, AttributionAggregationKeys())),
+      },
+      {
+          "debug_key_invalid",
+          R"json({"debug_key":"-5","source_event_id":"1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/1, source_origin, destination_origin,
+              reporting_origin, source_time, default_expiry_time, source_type,
+              /*priority=*/0, AttributionFilterData(),
+              /*debug_key=*/absl::nullopt, AttributionAggregationKeys())),
+      },
+      {
+          "debug_key_wrong_type",
+          R"json({"debug_key":5,"source_event_id":"1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/1, source_origin, destination_origin,
+              reporting_origin, source_time, default_expiry_time, source_type,
+              /*priority=*/0, AttributionFilterData(),
+              /*debug_key=*/absl::nullopt, AttributionAggregationKeys())),
+      },
+      {
+          "filter_data_valid",
+          R"json({"filter_data":{"a":["b"]},"source_event_id":"1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/1, source_origin, destination_origin,
+              reporting_origin, source_time, default_expiry_time, source_type,
+              /*priority=*/0,
+              AttributionFilterData::CreateForTesting({{"a", {"b"}}}),
+              /*debug_key=*/absl::nullopt, AttributionAggregationKeys())),
+      },
+      {
+          "filter_data_wrong_type",
+          R"json({"filter_data":5,"source_event_id":"1","destination":"https://d.example"})json",
+          absl::nullopt,
+      },
+      {
+          "aggregation_keys_valid",
+          R"json({"aggregation_keys":{"a":"0x1"},"source_event_id":"1","destination":"https://d.example"})json",
+          StorableSource(CommonSourceInfo(
+              /*source_event_id=*/1, source_origin, destination_origin,
+              reporting_origin, source_time, default_expiry_time, source_type,
+              /*priority=*/0, AttributionFilterData(),
+              /*debug_key=*/absl::nullopt,
+              *AttributionAggregationKeys::FromKeys(
+                  {{"a", absl::MakeUint128(0, 1)}}))),
+      },
+      {
+          "aggregation_keys_wrong_type",
+          R"json({"aggregation_keys":5,"source_event_id":"1","destination":"https://d.example"})json",
+          absl::nullopt,
+      },
+  };
+
+  for (const auto& test_case : kTestCases) {
+    base::Value value = base::test::ParseJson(test_case.json);
+    ASSERT_TRUE(value.is_dict()) << test_case.desc;
+
+    EXPECT_EQ(
+        test_case.expected,
+        ParseSourceRegistration(std::move(*value.GetIfDict()), source_time,
+                                reporting_origin, source_origin, source_type))
+        << test_case.desc;
+  }
+}
+
 }  // namespace
 }  // namespace content
diff --git a/content/browser/attribution_reporting/attribution_manager_impl_unittest.cc b/content/browser/attribution_reporting/attribution_manager_impl_unittest.cc
index b9619a4..56cfc77c 100644
--- a/content/browser/attribution_reporting/attribution_manager_impl_unittest.cc
+++ b/content/browser/attribution_reporting/attribution_manager_impl_unittest.cc
@@ -25,7 +25,7 @@
 #include "base/values.h"
 #include "build/build_config.h"
 #include "content/browser/aggregation_service/aggregatable_report.h"
-#include "content/browser/aggregation_service/aggregation_service_impl.h"
+#include "content/browser/aggregation_service/aggregation_service.h"
 #include "content/browser/aggregation_service/aggregation_service_test_utils.h"
 #include "content/browser/attribution_reporting/aggregatable_attribution_utils.h"
 #include "content/browser/attribution_reporting/aggregatable_histogram_contribution.h"
@@ -209,39 +209,6 @@
   base::circular_deque<base::OnceCallback<void(bool)>> callbacks_;
 };
 
-class MockAggregationService : public AggregationServiceImpl {
- public:
-  explicit MockAggregationService(StoragePartitionImpl* partition)
-      : AggregationServiceImpl(/*run_in_memory=*/true,
-                               /*user_data_directory=*/base::FilePath(),
-                               partition) {}
-
-  void AssembleReport(AggregatableReportRequest report_request,
-                      AssemblyCallback callback) override {
-    calls_.push_back(std::move(report_request));
-    callbacks_.push_back(std::move(callback));
-  }
-
-  using AssembleReportCalls = std::vector<AggregatableReportRequest>;
-
-  const AssembleReportCalls& calls() const { return calls_; }
-
-  void RunCallback(size_t index,
-                   absl::optional<AggregatableReport> report,
-                   AssemblyStatus status) {
-    std::move(callbacks_[index]).Run(std::move(report), status);
-  }
-
-  void Reset() {
-    calls_.clear();
-    callbacks_.clear();
-  }
-
- private:
-  AssembleReportCalls calls_;
-  std::vector<AssemblyCallback> callbacks_;
-};
-
 }  // namespace
 
 class AttributionManagerImplTest : public testing::Test {
@@ -300,8 +267,7 @@
   void CreateAggregationService() {
     auto* partition = static_cast<StoragePartitionImpl*>(
         browser_context_->GetDefaultStoragePartition());
-    auto aggregation_service =
-        std::make_unique<MockAggregationService>(partition);
+    auto aggregation_service = std::make_unique<MockAggregationService>();
     aggregation_service_ = aggregation_service.get();
     partition->OverrideAggregationServiceForTesting(
         std::move(aggregation_service));
@@ -1193,12 +1159,16 @@
   checkpoint.Call(2);
 
   // Simulate the reports being sent and removed from storage.
+  EXPECT_CALL(*aggregation_service_, AssembleReport)
+      .Times(3)
+      .WillRepeatedly([](AggregatableReportRequest request,
+                         AggregationService::AssemblyCallback callback) {
+        std::move(callback).Run(CreateExampleAggregatableReport(),
+                                AggregationService::AssemblyStatus::kOk);
+      });
+
   task_environment_.FastForwardBy(kFirstReportingWindow);
-  EXPECT_THAT(aggregation_service_->calls(), SizeIs(3));
-  for (size_t i = 0; i < 3; i++) {
-    aggregation_service_->RunCallback(i, CreateExampleAggregatableReport(),
-                                      AggregationService::AssemblyStatus::kOk);
-  }
+
   EXPECT_THAT(report_sender_->calls(), SizeIs(6));
   report_sender_->RunCallbacksAndReset(
       {SendResult::Status::kSent, SendResult::Status::kSent,
@@ -1722,6 +1692,17 @@
 
     EXPECT_THAT(StoredSources(), SizeIs(1)) << test_case.name;
 
+    if (test_case.send_expected) {
+      EXPECT_CALL(*aggregation_service_, AssembleReport)
+          .WillOnce([](AggregatableReportRequest request,
+                       AggregationService::AssemblyCallback callback) {
+            std::move(callback).Run(CreateExampleAggregatableReport(),
+                                    AggregationService::AssemblyStatus::kOk);
+          });
+    } else {
+      EXPECT_CALL(*aggregation_service_, AssembleReport).Times(0);
+    }
+
     attribution_manager_->HandleTrigger(
         DefaultAggregatableTriggerBuilder()
             .SetReportingOrigin(reporting_origin)
@@ -1733,10 +1714,6 @@
     EXPECT_THAT(report_sender_->calls(), IsEmpty()) << test_case.name;
 
     if (test_case.send_expected) {
-      aggregation_service_->RunCallback(
-          0, CreateExampleAggregatableReport(),
-          AggregationService::AssemblyStatus::kOk);
-
       EXPECT_THAT(
           report_sender_->debug_calls(),
           ElementsAre(AllOf(ReportSourceIs(
@@ -1805,16 +1782,27 @@
           /*is_debug_report=*/false,
           Field(&SendResult::status, SendResult::Status::kSent)));
 
+  Checkpoint checkpoint;
+  {
+    InSequence seq;
+    EXPECT_CALL(*aggregation_service_, AssembleReport).Times(0);
+    EXPECT_CALL(checkpoint, Call(1));
+    EXPECT_CALL(*aggregation_service_, AssembleReport)
+        .WillOnce([](AggregatableReportRequest request,
+                     AggregationService::AssemblyCallback callback) {
+          std::move(callback).Run(CreateExampleAggregatableReport(),
+                                  AggregationService::AssemblyStatus::kOk);
+        });
+  }
+
   // Make sure the report is not sent earlier than its report time.
   task_environment_.FastForwardBy(kFirstReportingWindow -
                                   base::Microseconds(1));
-  EXPECT_THAT(aggregation_service_->calls(), IsEmpty());
+
+  checkpoint.Call(1);
 
   task_environment_.FastForwardBy(base::Microseconds(1));
-  EXPECT_THAT(aggregation_service_->calls(), SizeIs(1));
 
-  aggregation_service_->RunCallback(0, CreateExampleAggregatableReport(),
-                                    AggregationService::AssemblyStatus::kOk);
   // One event-level report, one aggregatable report.
   EXPECT_THAT(report_sender_->calls(), SizeIs(2));
   report_sender_->RunCallbacksAndReset(
@@ -1852,16 +1840,28 @@
           /*is_debug_report=*/false,
           Field(&SendResult::status, SendResult::Status::kFailedToAssemble)));
 
+  Checkpoint checkpoint;
+  {
+    InSequence seq;
+    EXPECT_CALL(*aggregation_service_, AssembleReport).Times(0);
+    EXPECT_CALL(checkpoint, Call(1));
+    EXPECT_CALL(*aggregation_service_, AssembleReport)
+        .WillOnce([](AggregatableReportRequest request,
+                     AggregationService::AssemblyCallback callback) {
+          std::move(callback).Run(
+              absl::nullopt,
+              AggregationService::AssemblyStatus::kAssemblyFailed);
+        });
+  }
+
   // Make sure the report is not sent earlier than its report time.
   task_environment_.FastForwardBy(kFirstReportingWindow -
                                   base::Microseconds(1));
-  EXPECT_THAT(aggregation_service_->calls(), IsEmpty());
+
+  checkpoint.Call(1);
 
   task_environment_.FastForwardBy(base::Microseconds(1));
-  EXPECT_THAT(aggregation_service_->calls(), SizeIs(1));
 
-  aggregation_service_->RunCallback(
-      0, absl::nullopt, AggregationService::AssemblyStatus::kAssemblyFailed);
   // Event-level report was sent.
   EXPECT_THAT(report_sender_->calls(), SizeIs(1));
 
diff --git a/content/browser/first_party_sets/first_party_set_parser.cc b/content/browser/first_party_sets/first_party_set_parser.cc
index b03570f..02b9eb0 100644
--- a/content/browser/first_party_sets/first_party_set_parser.cc
+++ b/content/browser/first_party_sets/first_party_set_parser.cc
@@ -19,6 +19,7 @@
 #include "base/strings/string_util.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "url/gurl.h"
 #include "url/origin.h"
@@ -203,7 +204,7 @@
   if (!value_deserialized || !value_deserialized->is_dict())
     return {};
 
-  std::vector<std::pair<net::SchemefulSite, net::SchemefulSite>> map;
+  std::vector<std::pair<net::SchemefulSite, net::FirstPartySetEntry>> map;
   base::flat_set<net::SchemefulSite> owner_set;
   base::flat_set<net::SchemefulSite> member_set;
   for (const auto item : value_deserialized->DictItems()) {
@@ -222,7 +223,7 @@
       continue;
     }
     if (!owner_set.contains(maybe_owner)) {
-      map.emplace_back(*maybe_owner, *maybe_owner);
+      map.emplace_back(*maybe_owner, net::FirstPartySetEntry(*maybe_owner));
     }
     // Check disjointness. Note that we are relying on the JSON Parser to
     // eliminate the possibility of a site being used as a key more than once,
@@ -233,7 +234,8 @@
     }
     owner_set.insert(*maybe_owner);
     member_set.insert(*maybe_member);
-    map.emplace_back(std::move(*maybe_member), std::move(*maybe_owner));
+    map.emplace_back(std::move(*maybe_member),
+                     net::FirstPartySetEntry(std::move(*maybe_owner)));
   }
   return map;
 }
@@ -243,7 +245,7 @@
   base::DictionaryValue dict;
   for (const auto& it : sets) {
     std::string maybe_member = it.first.Serialize();
-    std::string owner = it.second.Serialize();
+    std::string owner = it.second.primary().Serialize();
     if (maybe_member != owner) {
       dict.SetKey(std::move(maybe_member), base::Value(std::move(owner)));
     }
@@ -261,9 +263,9 @@
   return Canonicalize(origin_string, emit_errors);
 }
 
-base::flat_map<net::SchemefulSite, net::SchemefulSite>
-FirstPartySetParser::ParseSetsFromStream(std::istream& input) {
-  std::vector<std::pair<net::SchemefulSite, net::SchemefulSite>> map;
+FirstPartySetParser::SetsMap FirstPartySetParser::ParseSetsFromStream(
+    std::istream& input) {
+  std::vector<std::pair<net::SchemefulSite, net::FirstPartySetEntry>> map;
   base::flat_set<net::SchemefulSite> elements;
   for (std::string line; std::getline(input, line);) {
     base::StringPiece trimmed = base::TrimWhitespaceASCII(line, base::TRIM_ALL);
@@ -286,9 +288,9 @@
       return {};
     }
     auto [owner, members] = output;
-    map.emplace_back(owner, owner);
+    map.emplace_back(owner, net::FirstPartySetEntry(owner));
     for (net::SchemefulSite& member : members) {
-      map.emplace_back(std::move(member), owner);
+      map.emplace_back(std::move(member), net::FirstPartySetEntry(owner));
     }
   }
   return map;
diff --git a/content/browser/first_party_sets/first_party_set_parser.h b/content/browser/first_party_sets/first_party_set_parser.h
index 491a8b50..601deae 100644
--- a/content/browser/first_party_sets/first_party_set_parser.h
+++ b/content/browser/first_party_sets/first_party_set_parser.h
@@ -11,7 +11,6 @@
 #include "base/callback.h"
 #include "base/containers/flat_map.h"
 #include "base/containers/flat_set.h"
-#include "base/files/file_path.h"
 #include "base/strings/string_piece_forward.h"
 #include "base/values.h"
 #include "content/common/content_export.h"
@@ -19,6 +18,7 @@
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace net {
+class FirstPartySetEntry;
 class SchemefulSite;
 }
 
@@ -26,7 +26,7 @@
 
 class CONTENT_EXPORT FirstPartySetParser {
  public:
-  using SetsMap = base::flat_map<net::SchemefulSite, net::SchemefulSite>;
+  using SetsMap = base::flat_map<net::SchemefulSite, net::FirstPartySetEntry>;
   using SingleSet =
       std::pair<net::SchemefulSite, base::flat_set<net::SchemefulSite>>;
   using ParseError = FirstPartySetsHandler::ParseError;
diff --git a/content/browser/first_party_sets/first_party_set_parser_unittest.cc b/content/browser/first_party_sets/first_party_set_parser_unittest.cc
index 0f77b65..4820087a 100644
--- a/content/browser/first_party_sets/first_party_set_parser_unittest.cc
+++ b/content/browser/first_party_sets/first_party_set_parser_unittest.cc
@@ -11,6 +11,7 @@
 #include "base/files/scoped_temp_dir.h"
 #include "base/json/json_reader.h"
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -29,8 +30,7 @@
   return testing::ExplainMatchResult(testing::Eq(want), got, result_listener);
 }
 
-base::flat_map<net::SchemefulSite, net::SchemefulSite> ParseSets(
-    const std::string& sets) {
+FirstPartySetParser::SetsMap ParseSets(const std::string& sets) {
   std::istringstream stream(sets);
   return FirstPartySetParser::ParseSetsFromStream(stream);
 }
@@ -64,10 +64,13 @@
 
   std::istringstream stream(input);
   EXPECT_THAT(FirstPartySetParser::ParseSetsFromStream(stream),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://aaaa.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://aaaa.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST(FirstPartySetParser, RejectsMissingOwner) {
@@ -107,14 +110,19 @@
       R"({"owner": "https://example.test", "members": ["https://aaaa.test"]})";
 
   EXPECT_THAT(ParseSets(input),
-              UnorderedElementsAre(Pair(SerializesTo("https://example2.test"),
-                                        SerializesTo("https://example2.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://example2.test")),
-                                   Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://aaaa.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example2.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example2.test")))),
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://aaaa.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST(FirstPartySetParser, RejectsOwnerWithoutRegisteredDomain) {
@@ -162,14 +170,19 @@
       R"(["https://member3.test"]})";
 
   EXPECT_THAT(ParseSets(input),
-              UnorderedElementsAre(Pair(SerializesTo("https://example2.test"),
-                                        SerializesTo("https://example2.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://example2.test")),
-                                   Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member3.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example2.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example2.test")))),
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member3.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST(FirstPartySetParser, RejectsMemberWithoutRegisteredDomain) {
@@ -184,10 +197,13 @@
                             R"("members": ["https://aaaa.test"]})";
 
   EXPECT_THAT(ParseSets(input),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://aaaa.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://aaaa.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST(FirstPartySetParser, TruncatesSubdomain_Member) {
@@ -195,10 +211,13 @@
                             R"("members": ["https://subdomain.aaaa.test"]})";
 
   EXPECT_THAT(ParseSets(input),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://aaaa.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://aaaa.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST(FirstPartySetParser, AcceptsMultipleSets) {
@@ -210,14 +229,19 @@
 
   std::istringstream stream(input);
   EXPECT_THAT(FirstPartySetParser::ParseSetsFromStream(stream),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://foo.test"),
-                                        SerializesTo("https://foo.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://foo.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://foo.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test"))))));
 }
 
 TEST(FirstPartySetParser, AcceptsMultipleSetsWithWhitespace) {
@@ -231,14 +255,19 @@
 
   std::istringstream stream(input);
   EXPECT_THAT(FirstPartySetParser::ParseSetsFromStream(stream),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://foo.test"),
-                                        SerializesTo("https://foo.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://foo.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://foo.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test"))))));
 }
 
 TEST(FirstPartySetParser, RejectsInvalidSets_InvalidOwner) {
@@ -260,10 +289,13 @@
                             R"("members": ["https://member1.test"],})";
 
   EXPECT_THAT(ParseSets(input),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST(FirstPartySetParser, Rejects_SameOwner) {
@@ -304,16 +336,18 @@
   EXPECT_EQ(R"({"https://member1.test":"https://example1.test"})",
             FirstPartySetParser::SerializeFirstPartySets(
                 {{net::SchemefulSite(GURL("https://member1.test")),
-                  net::SchemefulSite(GURL("https://example1.test"))},
+                  net::FirstPartySetEntry(
+                      net::SchemefulSite(GURL("https://example1.test")))},
                  {net::SchemefulSite(GURL("https://example1.test")),
-                  net::SchemefulSite(GURL("https://example1.test"))}}));
+                  net::FirstPartySetEntry(
+                      net::SchemefulSite(GURL("https://example1.test")))}}));
 }
 
 TEST(FirstPartySetParser, SerializeFirstPartySetsWithOpaqueOrigin) {
   EXPECT_EQ(R"({"https://member1.test":"null"})",
             FirstPartySetParser::SerializeFirstPartySets(
                 {{net::SchemefulSite(GURL("https://member1.test")),
-                  net::SchemefulSite(GURL(""))}}));
+                  net::FirstPartySetEntry(net::SchemefulSite(GURL("")))}}));
 }
 
 TEST(FirstPartySetParser, SerializeFirstPartySetsEmptySet) {
@@ -328,18 +362,23 @@
   // Sanity check that the input is actually valid JSON.
   ASSERT_TRUE(base::JSONReader::Read(input));
 
-  EXPECT_THAT(
-      FirstPartySetParser::DeserializeFirstPartySets(input),
-      UnorderedElementsAre(Pair(SerializesTo("https://member1.test"),
-                                SerializesTo("https://example1.test")),
-                           Pair(SerializesTo("https://member3.test"),
-                                SerializesTo("https://example1.test")),
-                           Pair(SerializesTo("https://example1.test"),
-                                SerializesTo("https://example1.test")),
-                           Pair(SerializesTo("https://member2.test"),
-                                SerializesTo("https://example2.test")),
-                           Pair(SerializesTo("https://example2.test"),
-                                SerializesTo("https://example2.test"))));
+  EXPECT_THAT(FirstPartySetParser::DeserializeFirstPartySets(input),
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example1.test")))),
+                  Pair(SerializesTo("https://member3.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example1.test")))),
+                  Pair(SerializesTo("https://example1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example1.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example2.test")))),
+                  Pair(SerializesTo("https://example2.test"),
+                       net::FirstPartySetEntry(net::SchemefulSite(
+                           GURL("https://example2.test"))))));
 }
 
 TEST(FirstPartySetParser, DeserializeFirstPartySetsEmptySet) {
@@ -357,9 +396,11 @@
   EXPECT_THAT(
       FirstPartySetParser::DeserializeFirstPartySets(input),
       UnorderedElementsAre(Pair(SerializesTo("https://member1.test"),
-                                SerializesTo("https://example2.test")),
+                                net::FirstPartySetEntry(net::SchemefulSite(
+                                    GURL("https://example2.test")))),
                            Pair(SerializesTo("https://example2.test"),
-                                SerializesTo("https://example2.test"))));
+                                net::FirstPartySetEntry(net::SchemefulSite(
+                                    GURL("https://example2.test"))))));
 }
 
 // Singleton set is ignored.
@@ -372,9 +413,11 @@
   EXPECT_THAT(
       FirstPartySetParser::DeserializeFirstPartySets(input),
       UnorderedElementsAre(Pair(SerializesTo("https://member1.test"),
-                                SerializesTo("https://example2.test")),
+                                net::FirstPartySetEntry(net::SchemefulSite(
+                                    GURL("https://example2.test")))),
                            Pair(SerializesTo("https://example2.test"),
-                                SerializesTo("https://example2.test"))));
+                                net::FirstPartySetEntry(net::SchemefulSite(
+                                    GURL("https://example2.test"))))));
 }
 
 class FirstPartySetParserInvalidContentTest
diff --git a/content/browser/first_party_sets/first_party_sets_handler_impl.cc b/content/browser/first_party_sets/first_party_sets_handler_impl.cc
index ed490cf..0927277 100644
--- a/content/browser/first_party_sets/first_party_sets_handler_impl.cc
+++ b/content/browser/first_party_sets/first_party_sets_handler_impl.cc
@@ -27,6 +27,7 @@
 #include "content/public/browser/first_party_sets_handler.h"
 #include "content/public/common/content_client.h"
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace content {
@@ -66,9 +67,9 @@
 FlattenedSets SetListToFlattenedSets(const std::vector<SingleSet>& set_list) {
   FlattenedSets sets;
   for (const auto& [owner, members] : set_list) {
-    sets.emplace(owner, owner);
+    sets.emplace(owner, net::FirstPartySetEntry(owner));
     for (const net::SchemefulSite& member : members)
-      sets.emplace(member, owner);
+      sets.emplace(member, net::FirstPartySetEntry(owner));
   }
   return sets;
 }
@@ -77,11 +78,11 @@
 // from a site to its owner.
 void UpdateCustomizationMap(
     const std::vector<SingleSet>& set_list,
-    FirstPartySetsHandlerImpl::PolicyCustomization& site_to_owner) {
+    FirstPartySetsHandlerImpl::PolicyCustomization& site_to_entry) {
   for (const auto& [owner, members] : set_list) {
-    site_to_owner.emplace(owner, owner);
+    site_to_entry.emplace(owner, net::FirstPartySetEntry(owner));
     for (const net::SchemefulSite& member : members)
-      site_to_owner.emplace(member, owner);
+      site_to_entry.emplace(member, net::FirstPartySetEntry(owner));
   }
 }
 
@@ -100,7 +101,7 @@
     // Add the index of `site`'s policy set to the list of policy set indices
     // that also overlap with site_owner.
     auto [site_and_sets, inserted] =
-        policy_set_overlaps.insert({it->second, {}});
+        policy_set_overlaps.insert({it->second.primary(), {}});
     site_and_sets->second.insert(policy_set_index);
   }
 }
@@ -152,11 +153,11 @@
 // TODO(https://crbug.com/1349487): Since this is basically the same as
 // FirstPartySetsManager::FindOwnerInternal(), move the common algorithm into
 // //net to be reused in both here and FirstPartySetsManager.
-absl::optional<net::SchemefulSite> FindOwner(
+absl::optional<net::FirstPartySetEntry> FindOwner(
     const net::SchemefulSite& site,
-    const FirstPartySetsHandlerImpl::FlattenedSets& sets,
+    const FlattenedSets& sets,
     const FirstPartySetsHandlerImpl::PolicyCustomization& policy_sets) {
-  absl::optional<net::SchemefulSite> owner;
+  absl::optional<net::FirstPartySetEntry> owner;
   if (const auto it = policy_sets.find(site); it != policy_sets.end()) {
     owner = it->second;
   } else if (const auto it = sets.find(site); it != sets.end()) {
@@ -222,9 +223,9 @@
 FirstPartySetsHandlerImpl::ComputeEnterpriseCustomizations(
     const FlattenedSets& sets,
     const FirstPartySetParser::ParsedPolicySetLists& policy) {
-  // Maps a site to its new owner if it has one.
-  base::flat_map<net::SchemefulSite, absl::optional<net::SchemefulSite>>
-      site_to_owner;
+  // Maps a site to its new entry if it has one.
+  base::flat_map<net::SchemefulSite, absl::optional<net::FirstPartySetEntry>>
+      site_to_entry;
 
   // Normalize the addition sets to prevent them from affecting the same
   // existing set.
@@ -238,35 +239,32 @@
       SetListToFlattenedSets(normalized_additions);
 
   // All of the policy sets are automatically inserted into site_to_owner.
-  UpdateCustomizationMap(policy.replacements, site_to_owner);
-  UpdateCustomizationMap(normalized_additions, site_to_owner);
+  UpdateCustomizationMap(policy.replacements, site_to_entry);
+  UpdateCustomizationMap(normalized_additions, site_to_entry);
 
-  // Maps old owner to new owner.
-  base::flat_map<net::SchemefulSite, net::SchemefulSite>
+  // Maps old owner to new entry.
+  base::flat_map<net::SchemefulSite, net::FirstPartySetEntry>
       addition_intersected_owners;
-  for (const auto& [new_member, new_owner] : flattened_additions) {
+  for (const auto& [new_member, new_entry] : flattened_additions) {
     if (const auto entry = sets.find(new_member); entry != sets.end()) {
       // Found an overlap with the existing list of sets.
-      addition_intersected_owners.emplace(entry->second, new_owner);
+      addition_intersected_owners.emplace(entry->second.primary(), new_entry);
     }
   }
 
   // Maps an existing owner to the members it lost due to replacement.
   base::flat_map<net::SchemefulSite, base::flat_set<net::SchemefulSite>>
       potential_singletons;
-  for (const auto& [member, owner] : flattened_replacements) {
-    if (member == owner)
+  for (const auto& [member, set_entry] : flattened_replacements) {
+    if (member == set_entry.primary())
       continue;
     if (auto entry = sets.find(member);
-        entry != sets.end() && entry->second != member) {
-      const net::SchemefulSite& existing_owner = entry->second;
-      if (!addition_intersected_owners.contains(existing_owner) &&
-          !flattened_additions.contains(existing_owner) &&
-          !flattened_replacements.contains(existing_owner)) {
-        auto [it, successful] = potential_singletons.emplace(
-            existing_owner, base::flat_set<net::SchemefulSite>{member});
-        if (!successful)
-          it->second.insert(member);
+        entry != sets.end() && entry->second.primary() != member) {
+      const net::FirstPartySetEntry& existing_entry = entry->second;
+      if (!addition_intersected_owners.contains(existing_entry.primary()) &&
+          !flattened_additions.contains(existing_entry.primary()) &&
+          !flattened_replacements.contains(existing_entry.primary())) {
+        potential_singletons[existing_entry.primary()].insert(member);
       }
     }
   }
@@ -277,7 +275,7 @@
   base::flat_set<net::SchemefulSite> replaced_existing_owners;
   for (const auto& [site, unused_owner] : flattened_replacements) {
     if (const auto entry = sets.find(site);
-        entry != sets.end() && entry->second == site) {
+        entry != sets.end() && entry->second.primary() == site) {
       // Site was an owner in the existing sets.
       bool inserted = replaced_existing_owners.emplace(site).second;
       DCHECK(inserted);
@@ -287,17 +285,17 @@
   // Find out which potential singletons are actually singletons; delete
   // members whose owners left; and reparent the sets that intersected with
   // an addition set.
-  for (const auto& [member, owner] : sets) {
+  for (const auto& [member, set_entry] : sets) {
     // Reparent all sites in any intersecting addition sets.
-    if (auto entry = addition_intersected_owners.find(owner);
+    if (auto entry = addition_intersected_owners.find(set_entry.primary());
         entry != addition_intersected_owners.end() &&
         !flattened_replacements.contains(member)) {
-      site_to_owner.emplace(member, entry->second);
+      site_to_entry.emplace(member, entry->second);
     }
-    if (member == owner)
+    if (member == set_entry.primary())
       continue;
     // Remove non-singletons from the potential list.
-    if (auto entry = potential_singletons.find(owner);
+    if (auto entry = potential_singletons.find(set_entry.primary());
         entry != potential_singletons.end() &&
         !entry->second.contains(member)) {
       // This owner lost members, but it still has at least one (`member`),
@@ -305,21 +303,21 @@
       potential_singletons.erase(entry);
     }
     // Remove members from sets whose owner left.
-    if (replaced_existing_owners.contains(owner) &&
+    if (replaced_existing_owners.contains(set_entry.primary()) &&
         !flattened_replacements.contains(member) &&
-        !addition_intersected_owners.contains(owner)) {
-      bool inserted = site_to_owner.emplace(member, absl::nullopt).second;
+        !addition_intersected_owners.contains(set_entry.primary())) {
+      bool inserted = site_to_entry.emplace(member, absl::nullopt).second;
       DCHECK(inserted);
     }
   }
   // Any owner remaining in `potential_singleton` is a real singleton, so delete
   // it:
   for (auto& [owner, members] : potential_singletons) {
-    bool inserted = site_to_owner.emplace(owner, absl::nullopt).second;
+    bool inserted = site_to_entry.emplace(owner, absl::nullopt).second;
     DCHECK(inserted);
   }
 
-  return site_to_owner;
+  return site_to_entry;
 }
 
 FirstPartySetsHandlerImpl::FirstPartySetsHandlerImpl(
@@ -448,7 +446,7 @@
 }
 
 void FirstPartySetsHandlerImpl::SetCompleteSets(
-    base::flat_map<net::SchemefulSite, net::SchemefulSite> sets) {
+    base::flat_map<net::SchemefulSite, net::FirstPartySetEntry> sets) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(!sets_.has_value());
   sets_ = std::move(sets);
@@ -480,10 +478,10 @@
 
 // static
 base::flat_set<net::SchemefulSite> FirstPartySetsHandlerImpl::ComputeSetsDiff(
-    const FirstPartySetsHandlerImpl::FlattenedSets& old_sets,
-    const FirstPartySetsHandlerImpl::PolicyCustomization& old_policy,
-    const FirstPartySetsHandlerImpl::FlattenedSets& current_sets,
-    const FirstPartySetsHandlerImpl::PolicyCustomization& current_policy) {
+    const FlattenedSets& old_sets,
+    const PolicyCustomization& old_policy,
+    const FlattenedSets& current_sets,
+    const PolicyCustomization& current_policy) {
   // TODO(https://crbug.com/1219656): For now we don't clear site data if FPSs
   // is disabled. This may change with future feature ruquest.
   if ((old_sets.empty() && old_policy.empty()) ||
@@ -493,27 +491,28 @@
   std::vector<net::SchemefulSite> result;
   for (const auto& old_pair : old_sets) {
     const net::SchemefulSite& old_member = old_pair.first;
-    const net::SchemefulSite& old_owner = old_pair.second;
+    const net::FirstPartySetEntry& old_entry = old_pair.second;
 
     if (base::Contains(old_policy, old_member))
       continue;
 
-    absl::optional<net::SchemefulSite> current_owner =
+    absl::optional<net::FirstPartySetEntry> current_entry =
         FindOwner(old_member, current_sets, current_policy);
     // Look for the removed sites and the ones have owner changed.
-    if (!current_owner.has_value() || current_owner.value() != old_owner) {
+    if (!current_entry.has_value() ||
+        current_entry.value().primary() != old_entry.primary()) {
       result.push_back(old_member);
     }
   }
 
   for (const auto& old_pair : old_policy) {
     const net::SchemefulSite& old_member = old_pair.first;
-    const absl::optional<net::SchemefulSite>& old_owner = old_pair.second;
+    const absl::optional<net::FirstPartySetEntry>& old_entry = old_pair.second;
 
-    absl::optional<net::SchemefulSite> current_owner =
+    const absl::optional<net::FirstPartySetEntry> current_entry =
         FindOwner(old_member, current_sets, current_policy);
     // Look for the ones have owner changed.
-    if (old_owner.has_value() && current_owner != old_owner) {
+    if (old_entry.has_value() && current_entry != old_entry) {
       result.push_back(old_member);
     }
   }
diff --git a/content/browser/first_party_sets/first_party_sets_handler_impl.h b/content/browser/first_party_sets/first_party_sets_handler_impl.h
index b5afe603..4ddd7b3 100644
--- a/content/browser/first_party_sets/first_party_sets_handler_impl.h
+++ b/content/browser/first_party_sets/first_party_sets_handler_impl.h
@@ -23,6 +23,7 @@
 #include "content/common/content_export.h"
 #include "content/public/browser/first_party_sets_handler.h"
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace content {
@@ -36,7 +37,8 @@
 // the current First-Party Sets data to disk.
 class CONTENT_EXPORT FirstPartySetsHandlerImpl : public FirstPartySetsHandler {
  public:
-  using FlattenedSets = base::flat_map<net::SchemefulSite, net::SchemefulSite>;
+  using FlattenedSets =
+      base::flat_map<net::SchemefulSite, net::FirstPartySetEntry>;
   using SetsReadyOnceCallback = base::OnceCallback<void(FlattenedSets)>;
   using PolicyCustomization = FirstPartySetsHandler::PolicyCustomization;
 
diff --git a/content/browser/first_party_sets/first_party_sets_handler_impl_unittest.cc b/content/browser/first_party_sets/first_party_sets_handler_impl_unittest.cc
index 65dd537..e3b9532 100644
--- a/content/browser/first_party_sets/first_party_sets_handler_impl_unittest.cc
+++ b/content/browser/first_party_sets/first_party_sets_handler_impl_unittest.cc
@@ -16,6 +16,7 @@
 #include "content/browser/first_party_sets/first_party_set_parser.h"
 #include "content/public/browser/first_party_sets_handler.h"
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "testing/gmock/include/gmock/gmock-matchers.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -47,10 +48,12 @@
   FirstPartySetsHandlerImpl::FlattenedSets result;
   for (const auto& [owner, members] : owners_to_members) {
     net::SchemefulSite owner_site((GURL(owner)));
-    result.insert(std::make_pair(owner_site, owner_site));
+    result.insert(
+        std::make_pair(owner_site, net::FirstPartySetEntry(owner_site)));
     for (const std::string& member : members) {
       net::SchemefulSite member_site((GURL(member)));
-      result.insert(std::make_pair(member_site, owner_site));
+      result.insert(
+          std::make_pair(member_site, net::FirstPartySetEntry(owner_site)));
     }
   }
   return result;
@@ -98,11 +101,14 @@
 TEST(FirstPartySetsHandlerImpl, ComputeSetsDiff_SitesJoined) {
   FirstPartySetsHandlerImpl::FlattenedSets old_sets = {
       {net::SchemefulSite(GURL("https://example.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://member1.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://member3.test")),
-       net::SchemefulSite(GURL("https://example.test"))}};
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))}};
   // Consistency check the reviewer-friendly format matches the input.
   ASSERT_THAT(ParseSetsFromStream(
                   R"({"owner": "https://example.test", "members": )"
@@ -111,15 +117,18 @@
 
   FirstPartySetsHandlerImpl::FlattenedSets current_sets = {
       {net::SchemefulSite(GURL("https://example.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://member1.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://member3.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://foo.test")),
-       net::SchemefulSite(GURL("https://foo.test"))},
+       net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))},
       {net::SchemefulSite(GURL("https://member2.test")),
-       net::SchemefulSite(GURL("https://foo.test"))},
+       net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))},
   };
   // Consistency check the reviewer-friendly format matches the input.
   ASSERT_THAT(
@@ -140,15 +149,18 @@
 TEST(FirstPartySetsHandlerImpl, ComputeSetsDiff_SitesLeft) {
   FirstPartySetsHandlerImpl::FlattenedSets old_sets = {
       {net::SchemefulSite(GURL("https://example.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://member1.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://member3.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://foo.test")),
-       net::SchemefulSite(GURL("https://foo.test"))},
+       net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))},
       {net::SchemefulSite(GURL("https://member2.test")),
-       net::SchemefulSite(GURL("https://foo.test"))}};
+       net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}};
   // Consistency check the reviewer-friendly format matches the input.
   ASSERT_THAT(
       ParseSetsFromStream(R"({"owner": "https://example.test", "members": )"
@@ -158,9 +170,11 @@
 
   FirstPartySetsHandlerImpl::FlattenedSets current_sets = {
       {net::SchemefulSite(GURL("https://example.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://member1.test")),
-       net::SchemefulSite(GURL("https://example.test"))}};
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))}};
   // Consistency check the reviewer-friendly format matches the input.
   ASSERT_THAT(ParseSetsFromStream(R"({"owner": "https://example.test", )"
                                   R"("members": ["https://member1.test"]})"),
@@ -179,15 +193,17 @@
 TEST(FirstPartySetsHandlerImpl, ComputeSetsDiff_OwnerChanged) {
   FirstPartySetsHandlerImpl::FlattenedSets old_sets = {
       {net::SchemefulSite(GURL("https://example.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://member1.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://foo.test")),
-       net::SchemefulSite(GURL("https://foo.test"))},
+       net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))},
       {net::SchemefulSite(GURL("https://member2.test")),
-       net::SchemefulSite(GURL("https://foo.test"))},
+       net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))},
       {net::SchemefulSite(GURL("https://member3.test")),
-       net::SchemefulSite(GURL("https://foo.test"))}};
+       net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}};
   // Consistency check the reviewer-friendly format matches the input.
   ASSERT_THAT(ParseSetsFromStream(
                   R"({"owner": "https://example.test", "members": )"
@@ -198,15 +214,18 @@
 
   FirstPartySetsHandlerImpl::FlattenedSets current_sets = {
       {net::SchemefulSite(GURL("https://example.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://member1.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://member3.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://foo.test")),
-       net::SchemefulSite(GURL("https://foo.test"))},
+       net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))},
       {net::SchemefulSite(GURL("https://member2.test")),
-       net::SchemefulSite(GURL("https://foo.test"))}};
+       net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}};
   // Consistency check the reviewer-friendly format matches the input.
   ASSERT_THAT(
       ParseSetsFromStream(R"({"owner": "https://example.test", "members": )"
@@ -224,11 +243,14 @@
 TEST(FirstPartySetsHandlerImpl, ComputeSetsDiff_OwnerLeft) {
   FirstPartySetsHandlerImpl::FlattenedSets old_sets = {
       {net::SchemefulSite(GURL("https://example.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://foo.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://bar.test")),
-       net::SchemefulSite(GURL("https://example.test"))}};
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))}};
   // Consistency check the reviewer-friendly format matches the input.
   ASSERT_THAT(
       ParseSetsFromStream(R"({"owner": "https://example.test", "members": )"
@@ -237,9 +259,9 @@
 
   FirstPartySetsHandlerImpl::FlattenedSets current_sets = {
       {net::SchemefulSite(GURL("https://foo.test")),
-       net::SchemefulSite(GURL("https://foo.test"))},
+       net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))},
       {net::SchemefulSite(GURL("https://bar.test")),
-       net::SchemefulSite(GURL("https://foo.test"))}};
+       net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}};
   // Consistency check the reviewer-friendly format matches the input.
   ASSERT_THAT(ParseSetsFromStream(R"(
       {"owner": "https://foo.test", "members": ["https://bar.test"]})"),
@@ -261,9 +283,11 @@
 TEST(FirstPartySetsHandlerImpl, ComputeSetsDiff_OwnerMemberRotate) {
   FirstPartySetsHandlerImpl::FlattenedSets old_sets = {
       {net::SchemefulSite(GURL("https://example.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://foo.test")),
-       net::SchemefulSite(GURL("https://example.test"))}};
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))}};
   // Consistency check the reviewer-friendly format matches the input.
   ASSERT_THAT(
       ParseSetsFromStream(R"({"owner": "https://example.test", "members": )"
@@ -272,9 +296,9 @@
 
   FirstPartySetsHandlerImpl::FlattenedSets current_sets = {
       {net::SchemefulSite(GURL("https://example.test")),
-       net::SchemefulSite(GURL("https://foo.test"))},
+       net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))},
       {net::SchemefulSite(GURL("https://foo.test")),
-       net::SchemefulSite(GURL("https://foo.test"))}};
+       net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}};
   // Consistency check the reviewer-friendly format matches the input.
   ASSERT_THAT(
       ParseSetsFromStream(
@@ -295,9 +319,11 @@
   // Empty old_sets.
   FirstPartySetsHandlerImpl::FlattenedSets current_sets = {
       {net::SchemefulSite(GURL("https://example.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://member1.test")),
-       net::SchemefulSite(GURL("https://example.test"))}};
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))}};
   // Consistency check the reviewer-friendly format matches the input.
   ASSERT_THAT(ParseSetsFromStream(R"({"owner": "https://example.test", )"
                                   R"("members": ["https://member1.test"]})"),
@@ -313,9 +339,11 @@
   // Empty current sets.
   FirstPartySetsHandlerImpl::FlattenedSets old_sets = {
       {net::SchemefulSite(GURL("https://example.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://member1.test")),
-       net::SchemefulSite(GURL("https://example.test"))}};
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))}};
   // Consistency check the reviewer-friendly format matches the input.
   ASSERT_THAT(ParseSetsFromStream(R"({"owner": "https://example.test", )"
                                   R"("members": ["https://member1.test"]})"),
@@ -330,16 +358,16 @@
 TEST(FirstPartySetsHandlerImpl, ComputeSetsDiff_PolicySitesJoined) {
   FirstPartySetsHandlerImpl::PolicyCustomization current_policy = {
       {net::SchemefulSite(GURL("https://foo.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
       {net::SchemefulSite(GURL("https://member2.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
   };
 
   // "https://example.test" and "https://member2.test" joined FPSs via
   // enterprise policy. We don't clear site data upon joining, so the computed
   // diff should be empty.
   EXPECT_THAT(FirstPartySetsHandlerImpl::ComputeSetsDiff(
-                  /*old_sets=*/{}, /*old_sets=*/{}, /*current_sets=*/{},
+                  /*old_sets=*/{}, /*old_policy=*/{}, /*current_sets=*/{},
                   current_policy),
               IsEmpty());
 }
@@ -347,9 +375,11 @@
 TEST(FirstPartySetsHandlerImpl, ComputeSetsDiff_PolicyRemovedSitesJoined) {
   FirstPartySetsHandlerImpl::FlattenedSets sets = {
       {net::SchemefulSite(GURL("https://example.test")),
-       net::SchemefulSite(GURL("https://example.test"))},
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))},
       {net::SchemefulSite(GURL("https://member1.test")),
-       net::SchemefulSite(GURL("https://example.test"))}};
+       net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))}};
   // Consistency check the reviewer-friendly format matches the input.
   ASSERT_THAT(ParseSetsFromStream(R"({"owner": "https://example.test",)"
                                   R"("members": ["https://member1.test"]})"),
@@ -358,20 +388,20 @@
   // "https://example.test" was removed from FPSs by policy modifications.
   FirstPartySetsHandlerImpl::PolicyCustomization old_policy = {
       {net::SchemefulSite(GURL("https://foo.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
       {net::SchemefulSite(GURL("https://member1.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
       {net::SchemefulSite(GURL("https://example.test")), absl::nullopt},
   };
 
   // "https://example.test" added back to FPSs.
   FirstPartySetsHandlerImpl::PolicyCustomization current_policy = {
       {net::SchemefulSite(GURL("https://foo.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
       {net::SchemefulSite(GURL("https://member1.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
       {net::SchemefulSite(GURL("https://example.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
   };
 
   // We don't clear site data upon joining, so the computed diff should be
@@ -385,19 +415,19 @@
 TEST(FirstPartySetsHandlerImpl, ComputeSetsDiff_PolicyMemberLeft) {
   FirstPartySetsHandlerImpl::PolicyCustomization old_policy = {
       {net::SchemefulSite(GURL("https://foo.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
       {net::SchemefulSite(GURL("https://member1.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
       {net::SchemefulSite(GURL("https://member2.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
   };
 
   // "https://member2.test" left FPSs via enterprise policy.
   FirstPartySetsHandlerImpl::PolicyCustomization current_policy = {
       {net::SchemefulSite(GURL("https://foo.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
       {net::SchemefulSite(GURL("https://member1.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
   };
 
   EXPECT_THAT(
@@ -409,18 +439,23 @@
 TEST(FirstPartySetsHandlerImpl, ComputeSetsDiff_PolicyOwnerLeft) {
   FirstPartySetsHandlerImpl::PolicyCustomization old_policy = {
       {net::SchemefulSite(GURL("https://example.test")),
-       {net::SchemefulSite(GURL("https://example.test"))}},
+       {net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))}},
       {net::SchemefulSite(GURL("https://member1.test")),
-       {net::SchemefulSite(GURL("https://example.test"))}},
+       {net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))}},
       {net::SchemefulSite(GURL("https://member2.test")),
-       {net::SchemefulSite(GURL("https://example.test"))}},
+       {net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://example.test")))}},
   };
 
   FirstPartySetsHandlerImpl::PolicyCustomization current_policy = {
       {net::SchemefulSite(GURL("https://member1.test")),
-       {net::SchemefulSite(GURL("https://member1.test"))}},
+       {net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://member1.test")))}},
       {net::SchemefulSite(GURL("https://member2.test")),
-       {net::SchemefulSite(GURL("https://member1.test"))}},
+       {net::FirstPartySetEntry(
+           net::SchemefulSite(GURL("https://member1.test")))}},
   };
 
   // Expected diff: "https://example.test" left FPSs, "https://member1.test" and
@@ -439,24 +474,24 @@
 TEST(FirstPartySetsHandlerImpl, ComputeSetsDiff_PolicyMembersChangeSet) {
   FirstPartySetsHandlerImpl::PolicyCustomization old_policy = {
       {net::SchemefulSite(GURL("https://foo.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
       {net::SchemefulSite(GURL("https://member1.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
       {net::SchemefulSite(GURL("https://bar.test")),
-       {net::SchemefulSite(GURL("https://bar.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://bar.test")))}},
       {net::SchemefulSite(GURL("https://member2.test")),
-       {net::SchemefulSite(GURL("https://bar.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://bar.test")))}},
   };
 
   FirstPartySetsHandlerImpl::PolicyCustomization current_policy = {
       {net::SchemefulSite(GURL("https://foo.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
       {net::SchemefulSite(GURL("https://member2.test")),
-       {net::SchemefulSite(GURL("https://foo.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))}},
       {net::SchemefulSite(GURL("https://bar.test")),
-       {net::SchemefulSite(GURL("https://bar.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://bar.test")))}},
       {net::SchemefulSite(GURL("https://member1.test")),
-       {net::SchemefulSite(GURL("https://bar.test"))}},
+       {net::FirstPartySetEntry(net::SchemefulSite(GURL("https://bar.test")))}},
   };
 
   EXPECT_THAT(
@@ -584,10 +619,13 @@
       /*flag_value=*/"https://example.test,https://member1.test");
 
   EXPECT_THAT(GetSetsAndWait(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST_F(FirstPartySetsHandlerImplEnabledTest,
@@ -602,12 +640,17 @@
 
   auto expected_sets = UnorderedElementsAre(
       Pair(SerializesTo("https://example.test"),
-           SerializesTo("https://example.test")),
+           net::FirstPartySetEntry(
+               net::SchemefulSite(GURL("https://example.test")))),
       Pair(SerializesTo("https://member1.test"),
-           SerializesTo("https://example.test")),
-      Pair(SerializesTo("https://foo.test"), SerializesTo("https://foo.test")),
+           net::FirstPartySetEntry(
+               net::SchemefulSite(GURL("https://example.test")))),
+      Pair(SerializesTo("https://foo.test"),
+           net::FirstPartySetEntry(
+               net::SchemefulSite(GURL("https://foo.test")))),
       Pair(SerializesTo("https://member2.test"),
-           SerializesTo("https://foo.test")));
+           net::FirstPartySetEntry(
+               net::SchemefulSite(GURL("https://foo.test")))));
 
   // Persisted sets are expected to be loaded with the provided path.
   FirstPartySetsHandlerImpl::GetInstance()->Init(
@@ -636,12 +679,17 @@
 
   auto expected_sets = UnorderedElementsAre(
       Pair(SerializesTo("https://example.test"),
-           SerializesTo("https://example.test")),
+           net::FirstPartySetEntry(
+               net::SchemefulSite(GURL("https://example.test")))),
       Pair(SerializesTo("https://member1.test"),
-           SerializesTo("https://example.test")),
-      Pair(SerializesTo("https://foo.test"), SerializesTo("https://foo.test")),
+           net::FirstPartySetEntry(
+               net::SchemefulSite(GURL("https://example.test")))),
+      Pair(SerializesTo("https://foo.test"),
+           net::FirstPartySetEntry(
+               net::SchemefulSite(GURL("https://foo.test")))),
       Pair(SerializesTo("https://member2.test"),
-           SerializesTo("https://foo.test")));
+           net::FirstPartySetEntry(
+               net::SchemefulSite(GURL("https://foo.test")))));
 
   // Persisted sets are expected to be loaded with the provided path.
   FirstPartySetsHandlerImpl::GetInstance()->Init(
@@ -669,11 +717,13 @@
   FirstPartySetsHandlerImpl::GetInstance()->SetPublicFirstPartySets(
       WritePublicSetsFile(input));
 
-  auto expected_sets =
-      UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                SerializesTo("https://example.test")),
-                           Pair(SerializesTo("https://member.test"),
-                                SerializesTo("https://example.test")));
+  auto expected_sets = UnorderedElementsAre(
+      Pair(SerializesTo("https://example.test"),
+           net::FirstPartySetEntry(
+               net::SchemefulSite(GURL("https://example.test")))),
+      Pair(SerializesTo("https://member.test"),
+           net::FirstPartySetEntry(
+               net::SchemefulSite(GURL("https://example.test")))));
 
   // Persisted sets are expected to be loaded with the provided path.
   FirstPartySetsHandlerImpl::GetInstance()->Init(scoped_dir_.GetPath(),
@@ -716,21 +766,25 @@
   FirstPartySetsHandlerImpl::GetInstance()->SetPublicFirstPartySets(
       WritePublicSetsFile(input));
 
-  EXPECT_THAT(future.Get(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member.test"),
-                                        SerializesTo("https://example.test"))));
+  EXPECT_THAT(future.Get(), UnorderedElementsAre(
+                                Pair(SerializesTo("https://example.test"),
+                                     net::FirstPartySetEntry(net::SchemefulSite(
+                                         GURL("https://example.test")))),
+                                Pair(SerializesTo("https://member.test"),
+                                     net::FirstPartySetEntry(net::SchemefulSite(
+                                         GURL("https://example.test"))))));
 
   EXPECT_THAT(
       FirstPartySetsHandlerImpl::GetInstance()->GetSets(
           base::BindLambdaForTesting(
               [](FirstPartySetsHandlerImpl::FlattenedSets) { FAIL(); })),
-      testing::Optional(
-          UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                    SerializesTo("https://example.test")),
-                               Pair(SerializesTo("https://member.test"),
-                                    SerializesTo("https://example.test")))));
+      testing::Optional(UnorderedElementsAre(
+          Pair(SerializesTo("https://example.test"),
+               net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://example.test")))),
+          Pair(SerializesTo("https://member.test"),
+               net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://example.test")))))));
 }
 
 class FirstPartySetsHandlerGetCustomizationForPolicyTest
@@ -831,15 +885,20 @@
   EXPECT_THAT(GetCustomization(),
               UnorderedElementsAre(
                   Pair(SerializesTo("https://owner1.test"),
-                       Optional(SerializesTo("https://owner2.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner2.test"))))),
                   Pair(SerializesTo("https://member1.test"),
-                       Optional(SerializesTo("https://member1.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://member1.test"))))),
                   Pair(SerializesTo("https://owner3.test"),
-                       Optional(SerializesTo("https://member1.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://member1.test"))))),
                   Pair(SerializesTo("https://member2.test"),
-                       Optional(SerializesTo("https://owner2.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner2.test"))))),
                   Pair(SerializesTo("https://owner2.test"),
-                       Optional(SerializesTo("https://owner2.test")))));
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner2.test")))))));
 }
 
 TEST(FirstPartySetsProfilePolicyCustomizations, EmptyPolicySetLists) {
@@ -863,9 +922,11 @@
   EXPECT_THAT(customization,
               UnorderedElementsAre(
                   Pair(SerializesTo("https://member2.test"),
-                       Optional(SerializesTo("https://owner2.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner2.test"))))),
                   Pair(SerializesTo("https://owner2.test"),
-                       Optional(SerializesTo("https://owner2.test")))));
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner2.test")))))));
 }
 
 // The common member between the policy and existing set is removed from its
@@ -884,9 +945,11 @@
   EXPECT_THAT(customization,
               UnorderedElementsAre(
                   Pair(SerializesTo("https://member1b.test"),
-                       Optional(SerializesTo("https://owner2.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner2.test"))))),
                   Pair(SerializesTo("https://owner2.test"),
-                       Optional(SerializesTo("https://owner2.test")))));
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner2.test")))))));
 }
 
 // The common owner between the policy and existing set is removed and its
@@ -905,9 +968,11 @@
   EXPECT_THAT(customization,
               UnorderedElementsAre(
                   Pair(SerializesTo("https://member2.test"),
-                       Optional(SerializesTo("https://owner1.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner1.test"))))),
                   Pair(SerializesTo("https://owner1.test"),
-                       Optional(SerializesTo("https://owner1.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner1.test"))))),
                   Pair(SerializesTo("https://member1a.test"), absl::nullopt),
                   Pair(SerializesTo("https://member1b.test"), absl::nullopt)));
 }
@@ -927,9 +992,11 @@
   EXPECT_THAT(customization,
               UnorderedElementsAre(
                   Pair(SerializesTo("https://member1.test"),
-                       Optional(SerializesTo("https://owner3.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner3.test"))))),
                   Pair(SerializesTo("https://owner3.test"),
-                       Optional(SerializesTo("https://owner3.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner3.test"))))),
                   Pair(SerializesTo("https://owner1.test"), absl::nullopt)));
 }
 
@@ -948,9 +1015,11 @@
   EXPECT_THAT(customization,
               UnorderedElementsAre(
                   Pair(SerializesTo("https://member2.test"),
-                       Optional(SerializesTo("https://owner2.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner2.test"))))),
                   Pair(SerializesTo("https://owner2.test"),
-                       Optional(SerializesTo("https://owner2.test")))));
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner2.test")))))));
 }
 
 // The owner of a policy set is also a member in an existing set.
@@ -969,13 +1038,17 @@
   EXPECT_THAT(customization,
               UnorderedElementsAre(
                   Pair(SerializesTo("https://owner1.test"),
-                       Optional(SerializesTo("https://member2.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://member2.test"))))),
                   Pair(SerializesTo("https://member2a.test"),
-                       Optional(SerializesTo("https://member2.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://member2.test"))))),
                   Pair(SerializesTo("https://member2b.test"),
-                       Optional(SerializesTo("https://member2.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://member2.test"))))),
                   Pair(SerializesTo("https://member2.test"),
-                       Optional(SerializesTo("https://member2.test")))));
+                       Optional(net::FirstPartySetEntry(net::SchemefulSite(
+                           GURL("https://member2.test")))))));
 }
 
 // The owner of a policy set is also an owner of an existing set.
@@ -994,13 +1067,17 @@
   EXPECT_THAT(customization,
               UnorderedElementsAre(
                   Pair(SerializesTo("https://member2.test"),
-                       Optional(SerializesTo("https://owner1.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner1.test"))))),
                   Pair(SerializesTo("https://member1.test"),
-                       Optional(SerializesTo("https://owner1.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner1.test"))))),
                   Pair(SerializesTo("https://member3.test"),
-                       Optional(SerializesTo("https://owner1.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner1.test"))))),
                   Pair(SerializesTo("https://owner1.test"),
-                       Optional(SerializesTo("https://owner1.test")))));
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner1.test")))))));
 }
 
 TEST(FirstPartySetsProfilePolicyCustomizations,
@@ -1027,29 +1104,29 @@
                    {net::SchemefulSite(GURL("https://member42.test"))})})),
       UnorderedElementsAre(
           Pair(net::SchemefulSite(GURL("https://member0.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner0.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner0.test"))))),
           Pair(net::SchemefulSite(GURL("https://member1.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner1.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner1.test"))))),
           Pair(net::SchemefulSite(GURL("https://member2.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner1.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner1.test"))))),
           Pair(net::SchemefulSite(GURL("https://member42.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner42.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner42.test"))))),
           Pair(net::SchemefulSite(GURL("https://owner0.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner0.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner0.test"))))),
           Pair(net::SchemefulSite(GURL("https://owner1.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner1.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner1.test"))))),
           Pair(net::SchemefulSite(GURL("https://owner2.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner1.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner1.test"))))),
           Pair(net::SchemefulSite(GURL("https://owner42.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner42.test"))))));
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner42.test")))))));
 }
 
 TEST(FirstPartySetsProfilePolicyCustomizations,
@@ -1076,29 +1153,29 @@
                    {net::SchemefulSite(GURL("https://member42.test"))})})),
       UnorderedElementsAre(
           Pair(net::SchemefulSite(GURL("https://member0.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner0.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner0.test"))))),
           Pair(net::SchemefulSite(GURL("https://member1.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner2.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner2.test"))))),
           Pair(net::SchemefulSite(GURL("https://member2.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner2.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner2.test"))))),
           Pair(net::SchemefulSite(GURL("https://member42.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner42.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner42.test"))))),
           Pair(net::SchemefulSite(GURL("https://owner0.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner0.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner0.test"))))),
           Pair(net::SchemefulSite(GURL("https://owner1.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner2.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner2.test"))))),
           Pair(net::SchemefulSite(GURL("https://owner2.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner2.test")))),
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner2.test"))))),
           Pair(net::SchemefulSite(GURL("https://owner42.test")),
-               absl::make_optional(
-                   net::SchemefulSite(GURL("https://owner42.test"))))));
+               absl::make_optional(net::FirstPartySetEntry(
+                   net::SchemefulSite(GURL("https://owner42.test")))))));
 }
 
 // Existing set overlaps with both replacement and addition set.
@@ -1117,14 +1194,19 @@
   EXPECT_THAT(customization,
               UnorderedElementsAre(
                   Pair(SerializesTo("https://member1.test"),
-                       Optional(SerializesTo("https://owner0.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner0.test"))))),
                   Pair(SerializesTo("https://owner0.test"),
-                       Optional(SerializesTo("https://owner0.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner0.test"))))),
                   Pair(SerializesTo("https://new-member1.test"),
-                       Optional(SerializesTo("https://owner1.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner1.test"))))),
                   Pair(SerializesTo("https://member2.test"),
-                       Optional(SerializesTo("https://owner1.test"))),
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner1.test"))))),
                   Pair(SerializesTo("https://owner1.test"),
-                       Optional(SerializesTo("https://owner1.test")))));
+                       Optional(net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://owner1.test")))))));
 }
 }  // namespace content
diff --git a/content/browser/first_party_sets/first_party_sets_loader.cc b/content/browser/first_party_sets/first_party_sets_loader.cc
index b2fe03b..b254ef9 100644
--- a/content/browser/first_party_sets/first_party_sets_loader.cc
+++ b/content/browser/first_party_sets/first_party_sets_loader.cc
@@ -20,6 +20,7 @@
 #include "base/task/thread_pool.h"
 #include "content/browser/first_party_sets/first_party_set_parser.h"
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace content {
@@ -146,27 +147,26 @@
 
   // Erase the intersection between |sets_| and |manually_specified_set_| and
   // any members whose owner was in the intersection.
-  base::EraseIf(
-      sets_, [&owner, members](
-                 const std::pair<net::SchemefulSite, net::SchemefulSite>& p) {
-        return p.first == owner || p.second == owner ||
-               members.contains(p.first) || members.contains(p.second);
-      });
+  base::EraseIf(sets_, [&owner, members](const auto& p) {
+    return p.first == owner || p.second.primary() == owner ||
+           members.contains(p.first) || members.contains(p.second.primary());
+  });
 
   // Next, we must add the manually specified set to |sets_|.
   sets_.emplace(owner, owner);
   for (const net::SchemefulSite& member : members) {
-    sets_.emplace(member, owner);
+    sets_.emplace(member, net::FirstPartySetEntry(owner));
   }
   // Now remove singleton sets, which are sets that just contain sites that
   // *are* owners, but no longer have any (other) members.
   std::set<net::SchemefulSite> owners_with_members;
   for (const auto& it : sets_) {
-    if (it.first != it.second)
-      owners_with_members.insert(it.second);
+    if (it.first != it.second.primary())
+      owners_with_members.insert(it.second.primary());
   }
   base::EraseIf(sets_, [&owners_with_members](const auto& p) {
-    return p.first == p.second && !base::Contains(owners_with_members, p.first);
+    return p.first == p.second.primary() &&
+           !base::Contains(owners_with_members, p.first);
   });
 }
 
diff --git a/content/browser/first_party_sets/first_party_sets_loader.h b/content/browser/first_party_sets/first_party_sets_loader.h
index c28a6c89..03caf9cf 100644
--- a/content/browser/first_party_sets/first_party_sets_loader.h
+++ b/content/browser/first_party_sets/first_party_sets_loader.h
@@ -6,14 +6,12 @@
 #define CONTENT_BROWSER_FIRST_PARTY_SETS_FIRST_PARTY_SETS_LOADER_H_
 
 #include "base/callback.h"
-#include "base/containers/flat_map.h"
 #include "base/files/file.h"
 #include "base/sequence_checker.h"
 #include "base/thread_annotations.h"
 #include "base/timer/elapsed_timer.h"
 #include "content/browser/first_party_sets/first_party_set_parser.h"
 #include "content/common/content_export.h"
-#include "net/base/schemeful_site.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace content {
@@ -25,9 +23,9 @@
 // `SetManuallySpecifiedSet`.
 class CONTENT_EXPORT FirstPartySetsLoader {
  public:
-  using LoadCompleteOnceCallback = base::OnceCallback<void(
-      base::flat_map<net::SchemefulSite, net::SchemefulSite>)>;
-  using FlattenedSets = base::flat_map<net::SchemefulSite, net::SchemefulSite>;
+  using LoadCompleteOnceCallback =
+      base::OnceCallback<void(FirstPartySetParser::SetsMap)>;
+  using FlattenedSets = FirstPartySetParser::SetsMap;
   using SingleSet = FirstPartySetParser::SingleSet;
 
   explicit FirstPartySetsLoader(LoadCompleteOnceCallback on_load_complete);
diff --git a/content/browser/first_party_sets/first_party_sets_loader_unittest.cc b/content/browser/first_party_sets/first_party_sets_loader_unittest.cc
index 5947f64..eb2e10c7 100644
--- a/content/browser/first_party_sets/first_party_sets_loader_unittest.cc
+++ b/content/browser/first_party_sets/first_party_sets_loader_unittest.cc
@@ -19,6 +19,7 @@
 #include "base/test/test_future.h"
 #include "content/browser/first_party_sets/first_party_set_parser.h"
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "testing/gmock/include/gmock/gmock-matchers.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -60,14 +61,13 @@
 
   FirstPartySetsLoader& loader() { return loader_; }
 
-  base::flat_map<net::SchemefulSite, net::SchemefulSite> WaitAndGetResult() {
+  FirstPartySetsLoader::FlattenedSets WaitAndGetResult() {
     return future_.Get();
   }
 
  private:
   base::test::TaskEnvironment env_;
-  base::test::TestFuture<base::flat_map<net::SchemefulSite, net::SchemefulSite>>
-      future_;
+  base::test::TestFuture<FirstPartySetsLoader::FlattenedSets> future_;
   FirstPartySetsLoader loader_;
 };
 
@@ -94,10 +94,13 @@
   loader().SetManuallySpecifiedSet("");
 
   EXPECT_THAT(WaitAndGetResult(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://aaaa.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://aaaa.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST_F(FirstPartySetsLoaderTest, AcceptsMultipleSets) {
@@ -112,14 +115,19 @@
   loader().SetManuallySpecifiedSet("");
 
   EXPECT_THAT(WaitAndGetResult(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://foo.test"),
-                                        SerializesTo("https://foo.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://foo.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://foo.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test"))))));
 }
 
 TEST_F(FirstPartySetsLoaderTest, SetComponentSets_Idempotent) {
@@ -138,14 +146,19 @@
 
   EXPECT_THAT(WaitAndGetResult(),
               // The second call to SetComponentSets should have had no effect.
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://foo.test"),
-                                        SerializesTo("https://foo.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://foo.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://foo.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test"))))));
 }
 
 TEST_F(FirstPartySetsLoaderTest, OwnerIsOnlyMember) {
@@ -236,10 +249,13 @@
   SetComponentSets(loader(), "");
 
   EXPECT_THAT(WaitAndGetResult(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST_F(FirstPartySetsLoaderTest,
@@ -250,10 +266,13 @@
   SetComponentSets(loader(), "");
 
   EXPECT_THAT(WaitAndGetResult(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST_F(FirstPartySetsLoaderTest, SetsManuallySpecified_Valid_MultipleMembers) {
@@ -263,12 +282,16 @@
   SetComponentSets(loader(), "");
 
   EXPECT_THAT(WaitAndGetResult(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST_F(FirstPartySetsLoaderTest,
@@ -287,10 +310,13 @@
   SetComponentSets(loader(), "");
 
   EXPECT_THAT(WaitAndGetResult(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST_F(FirstPartySetsLoaderTest, SetsManuallySpecified_Valid_RepeatedMember) {
@@ -302,12 +328,16 @@
   SetComponentSets(loader(), "");
 
   EXPECT_THAT(WaitAndGetResult(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST_F(FirstPartySetsLoaderTest, SetsManuallySpecified_DeduplicatesOwnerOwner) {
@@ -319,16 +349,22 @@
       "https://example.test,https://member1.test,https://member2.test");
 
   EXPECT_THAT(WaitAndGetResult(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://bar.test"),
-                                        SerializesTo("https://bar.test")),
-                                   Pair(SerializesTo("https://member4.test"),
-                                        SerializesTo("https://bar.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://bar.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://bar.test")))),
+                  Pair(SerializesTo("https://member4.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://bar.test"))))));
 }
 
 TEST_F(FirstPartySetsLoaderTest,
@@ -341,16 +377,22 @@
       "https://example.test,https://member1.test,https://member3.test");
 
   EXPECT_THAT(WaitAndGetResult(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member3.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://bar.test"),
-                                        SerializesTo("https://bar.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://bar.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member3.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://bar.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://bar.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://bar.test"))))));
 }
 
 TEST_F(FirstPartySetsLoaderTest,
@@ -362,16 +404,22 @@
   loader().SetManuallySpecifiedSet("https://example.test,https://member3.test");
 
   EXPECT_THAT(WaitAndGetResult(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member3.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://foo.test"),
-                                        SerializesTo("https://foo.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://foo.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://foo.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member3.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://foo.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test"))))));
 }
 
 TEST_F(FirstPartySetsLoaderTest,
@@ -384,20 +432,28 @@
       "https://example.test,https://member1.test,https://member2.test");
 
   EXPECT_THAT(WaitAndGetResult(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://foo.test"),
-                                        SerializesTo("https://foo.test")),
-                                   Pair(SerializesTo("https://member3.test"),
-                                        SerializesTo("https://foo.test")),
-                                   Pair(SerializesTo("https://bar.test"),
-                                        SerializesTo("https://bar.test")),
-                                   Pair(SerializesTo("https://member4.test"),
-                                        SerializesTo("https://bar.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://foo.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test")))),
+                  Pair(SerializesTo("https://member3.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test")))),
+                  Pair(SerializesTo("https://bar.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://bar.test")))),
+                  Pair(SerializesTo("https://member4.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://bar.test"))))));
 }
 
 TEST_F(FirstPartySetsLoaderTest,
@@ -412,10 +468,13 @@
   // disallow singleton sets, we ensure that such cases are caught and
   // removed.
   EXPECT_THAT(WaitAndGetResult(),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 }  // namespace content
diff --git a/content/browser/first_party_sets/test/first_party_set_parser_fuzzer.cc b/content/browser/first_party_sets/test/first_party_set_parser_fuzzer.cc
index 7b96035..1a2c814c 100644
--- a/content/browser/first_party_sets/test/first_party_set_parser_fuzzer.cc
+++ b/content/browser/first_party_sets/test/first_party_set_parser_fuzzer.cc
@@ -9,6 +9,7 @@
 #include <sstream>
 
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 
 namespace content {
 
@@ -19,7 +20,7 @@
 
   // We deserialize -> serialize -> deserialize the input and make sure the
   // outcomes from the two deserialization matches.
-  base::flat_map<net::SchemefulSite, net::SchemefulSite> deserialized =
+  FirstPartySetParser::SetsMap deserialized =
       FirstPartySetParser::DeserializeFirstPartySets(string_input);
   std::string serialized_input =
       FirstPartySetParser::SerializeFirstPartySets(deserialized);
@@ -34,8 +35,8 @@
   for (const auto& pair : deserialized) {
     if (base::StartsWith(pair.first.GetInternalOriginForTesting().host(),
                          ".") ||
-        base::StartsWith(pair.second.GetInternalOriginForTesting().host(),
-                         ".")) {
+        base::StartsWith(
+            pair.second.primary().GetInternalOriginForTesting().host(), ".")) {
       return 0;
     }
   }
diff --git a/content/browser/first_party_sets/test/first_party_set_parser_json_fuzzer.cc b/content/browser/first_party_sets/test/first_party_set_parser_json_fuzzer.cc
index 1794a10b..75f04d0 100644
--- a/content/browser/first_party_sets/test/first_party_set_parser_json_fuzzer.cc
+++ b/content/browser/first_party_sets/test/first_party_set_parser_json_fuzzer.cc
@@ -8,6 +8,7 @@
 #include <iostream>
 
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "testing/libfuzzer/proto/json.pb.h"
 #include "testing/libfuzzer/proto/json_proto_converter.h"
 #include "testing/libfuzzer/proto/lpm_interface.h"
@@ -26,7 +27,7 @@
 
   // We deserialize -> serialize -> deserialize the input and make sure the
   // outcomes from the two deserialization matches.
-  base::flat_map<net::SchemefulSite, net::SchemefulSite> deserialized =
+  FirstPartySetParser::SetsMap deserialized =
       FirstPartySetParser::DeserializeFirstPartySets(native_input);
   std::string serialized_input =
       FirstPartySetParser::SerializeFirstPartySets(deserialized);
@@ -41,8 +42,8 @@
   for (const auto& pair : deserialized) {
     if (base::StartsWith(pair.first.GetInternalOriginForTesting().host(),
                          ".") ||
-        base::StartsWith(pair.second.GetInternalOriginForTesting().host(),
-                         ".")) {
+        base::StartsWith(
+            pair.second.primary().GetInternalOriginForTesting().host(), ".")) {
       return;
     }
   }
diff --git a/content/browser/first_party_sets/test/first_party_set_parser_map_fuzzer.cc b/content/browser/first_party_sets/test/first_party_set_parser_map_fuzzer.cc
index 5e63c52..a087f44 100644
--- a/content/browser/first_party_sets/test/first_party_set_parser_map_fuzzer.cc
+++ b/content/browser/first_party_sets/test/first_party_set_parser_map_fuzzer.cc
@@ -9,6 +9,7 @@
 
 #include "content/browser/first_party_sets/test/first_party_set_parser_map_fuzzer.pb.h"
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "testing/libfuzzer/proto/lpm_interface.h"
 #include "url/gurl.h"
 
@@ -25,25 +26,25 @@
   return net::SchemefulSite(kSiteTestCases[site.site_test_case_index()]);
 }
 
-base::flat_map<net::SchemefulSite, net::SchemefulSite> ConvertProtoToMap(
+FirstPartySetParser::SetsMap ConvertProtoToMap(
     const firstpartysets::proto::FirstPartySets& sets) {
-  base::flat_map<net::SchemefulSite, net::SchemefulSite> map;
+  FirstPartySetParser::SetsMap map;
   for (const firstpartysets::proto::SitePair& item : sets.items()) {
     auto member_or_owner = GetSchemefulSite(item.member_or_owner());
     auto owner = GetSchemefulSite(item.owner());
-    map.emplace(std::move(member_or_owner), std::move(owner));
+    map.emplace(std::move(member_or_owner),
+                net::FirstPartySetEntry(std::move(owner)));
   }
   return map;
 }
 
-bool AreEquivalent(
-    base::flat_map<net::SchemefulSite, net::SchemefulSite>& native_input,
-    base::flat_map<net::SchemefulSite, net::SchemefulSite>& output) {
+bool AreEquivalent(FirstPartySetParser::SetsMap& native_input,
+                   FirstPartySetParser::SetsMap& output) {
   if (native_input.empty() && output.empty())
     return true;
 
   auto is_owner_entry = [](const auto& pair) {
-    return pair.first == pair.second;
+    return pair.first == pair.second.primary();
   };
   base::EraseIf(native_input, is_owner_entry);
   base::EraseIf(output, is_owner_entry);
@@ -57,10 +58,9 @@
   if (getenv("LPM_DUMP_NATIVE_INPUT"))
     std::cout << input.DebugString() << std::endl;
 
-  base::flat_map<net::SchemefulSite, net::SchemefulSite> native_input =
-      ConvertProtoToMap(input);
+  FirstPartySetParser::SetsMap native_input = ConvertProtoToMap(input);
 
-  base::flat_map<net::SchemefulSite, net::SchemefulSite> deserialized =
+  FirstPartySetParser::SetsMap deserialized =
       FirstPartySetParser::DeserializeFirstPartySets(
           FirstPartySetParser::SerializeFirstPartySets(native_input));
 
diff --git a/content/browser/metrics/histograms_internals_ui.cc b/content/browser/metrics/histograms_internals_ui.cc
index c14ae1d..516cbef 100644
--- a/content/browser/metrics/histograms_internals_ui.cc
+++ b/content/browser/metrics/histograms_internals_ui.cc
@@ -104,8 +104,7 @@
       histograms_list.Append(std::move(histogram_dict));
   }
 
-  ResolveJavascriptCallback(base::Value(params.callback_id),
-                            base::Value(std::move(histograms_list)));
+  ResolveJavascriptCallback(base::Value(params.callback_id), histograms_list);
 }
 
 void HistogramsMessageHandler::HandleStartMoninoring(
@@ -118,7 +117,7 @@
 
 void HistogramsMessageHandler::HandleFetchDiff(const base::Value::List& args) {
   JsParams params = AllowJavascriptAndUnpackParams(args);
-  base::ListValue histograms_list = histogram_monitor_.GetDiff();
+  base::Value::List histograms_list = histogram_monitor_.GetDiff();
   ResolveJavascriptCallback(base::Value(params.callback_id),
                             std::move(histograms_list));
 }
diff --git a/content/browser/metrics/histograms_monitor.cc b/content/browser/metrics/histograms_monitor.cc
index e10ef4c..fedc01e 100644
--- a/content/browser/metrics/histograms_monitor.cc
+++ b/content/browser/metrics/histograms_monitor.cc
@@ -26,7 +26,7 @@
   }
 }
 
-base::ListValue HistogramsMonitor::GetDiff() {
+base::Value::List HistogramsMonitor::GetDiff() {
   FetchHistograms();
   base::StatisticsRecorder::Histograms histograms =
       base::StatisticsRecorder::Sort(base::StatisticsRecorder::WithName(
@@ -39,9 +39,9 @@
   HistogramSynchronizer::FetchHistograms();
 }
 
-base::ListValue HistogramsMonitor::GetDiffInternal(
+base::Value::List HistogramsMonitor::GetDiffInternal(
     const base::StatisticsRecorder::Histograms& histograms) {
-  base::ListValue histograms_list;
+  base::Value::List histograms_list;
   for (const base::HistogramBase* const histogram : histograms) {
     std::unique_ptr<base::HistogramSamples> snapshot =
         histogram->SnapshotSamples();
diff --git a/content/browser/metrics/histograms_monitor.h b/content/browser/metrics/histograms_monitor.h
index 04d267a..d19273e0 100644
--- a/content/browser/metrics/histograms_monitor.h
+++ b/content/browser/metrics/histograms_monitor.h
@@ -30,7 +30,7 @@
 
   // Gets the histogram diffs between the current histograms and the snapshot
   // recorded in StartMonitoring().
-  base::ListValue GetDiff();
+  base::Value::List GetDiff();
 
  private:
   // Imports histograms from the StatisticsRecorder.
@@ -40,7 +40,7 @@
 
   // Gets the difference between the histograms argument and the stored snapshot
   // recorded in StartMonitoring().
-  base::ListValue GetDiffInternal(
+  base::Value::List GetDiffInternal(
       const base::StatisticsRecorder::Histograms& histograms);
 
   std::string query_;
diff --git a/content/browser/metrics/histograms_monitor_unittest.cc b/content/browser/metrics/histograms_monitor_unittest.cc
index d9615e4..33ac03ca 100644
--- a/content/browser/metrics/histograms_monitor_unittest.cc
+++ b/content/browser/metrics/histograms_monitor_unittest.cc
@@ -29,16 +29,16 @@
   monitor.StartMonitoring("");
 
   // Get diff immediately should return nothing.
-  base::ListValue diff = monitor.GetDiff();
-  ASSERT_EQ(diff.GetListDeprecated().size(), 0ull);
+  base::Value::List diff = monitor.GetDiff();
+  ASSERT_EQ(diff.size(), 0ull);
 
   // Add more data to histogram.
   histogram1->Add(30);
   histogram1->Add(40);
 
   diff = monitor.GetDiff();
-  ASSERT_EQ(diff.GetListDeprecated().size(), 1ull);
-  std::string* header1 = diff.GetListDeprecated()[0].FindStringKey("header");
+  ASSERT_EQ(diff.size(), 1ull);
+  std::string* header1 = diff[0].FindStringKey("header");
   EXPECT_EQ(*header1,
             "Histogram: MonitorHistogram1 recorded 2 samples, mean = 35.0");
 
@@ -47,8 +47,8 @@
       "MonitorHistogram2", 1, 1000, 10, base::HistogramBase::kNoFlags);
   histogram2->Add(50);
   diff = monitor.GetDiff();
-  ASSERT_EQ(diff.GetListDeprecated().size(), 2ull);
-  std::string* header2 = diff.GetListDeprecated()[1].FindStringKey("header");
+  ASSERT_EQ(diff.size(), 2ull);
+  std::string* header2 = diff[1].FindStringKey("header");
   EXPECT_EQ(*header2,
             "Histogram: MonitorHistogram2 recorded 1 samples, mean = 50.0");
 }
@@ -65,8 +65,8 @@
   base::HistogramBase* histogram2 = base::Histogram::FactoryGet(
       "MonitorHistogram2", 1, 1000, 10, base::HistogramBase::kNoFlags);
   histogram2->Add(50);
-  base::ListValue diff = monitor.GetDiff();
-  ASSERT_EQ(diff.GetListDeprecated().size(), 0ull);
+  base::Value::List diff = monitor.GetDiff();
+  ASSERT_EQ(diff.size(), 0ull);
 }
 
 }  // namespace content
diff --git a/content/browser/net/sandboxed_socket_broker_browsertest.cc b/content/browser/net/sandboxed_socket_broker_browsertest.cc
index 0b0f3f7..f9fce79 100644
--- a/content/browser/net/sandboxed_socket_broker_browsertest.cc
+++ b/content/browser/net/sandboxed_socket_broker_browsertest.cc
@@ -5,6 +5,7 @@
 #include "base/feature_list.h"
 #include "base/run_loop.h"
 #include "base/test/scoped_feature_list.h"
+#include "content/browser/buildflags.h"
 #include "content/browser/net/socket_broker_impl.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/network_service_instance.h"
@@ -70,11 +71,7 @@
   }
 
   void SetUp() override {
-#if BUILDFLAG(IS_WIN)
-    // TODO(https://crbug.com/1311014): Run these tests on Windows once the
-    // broker can open and release sockets.
-    GTEST_SKIP();
-#else
+#if BUILDFLAG(USE_SOCKET_BROKER)
     if (check_sandbox_) {
       ASSERT_TRUE(IsOutOfProcessNetworkService());
       ASSERT_TRUE(sandbox::policy::features::IsNetworkSandboxEnabled());
@@ -86,10 +83,12 @@
 
     ASSERT_TRUE(embedded_test_server_.InitializeAndListen());
     ContentBrowserTest::SetUp();
+#else
+    GTEST_SKIP();
 #endif
   }
 
-#if !BUILDFLAG(IS_WIN)
+#if BUILDFLAG(USE_SOCKET_BROKER)
   void SetUpOnMainThread() override {
     embedded_test_server_.StartAcceptingConnections();
   }
@@ -115,6 +114,17 @@
   bool check_sandbox_ = true;
 };
 
+mojo::Remote<network::mojom::NetworkContext> CreateNetworkContext() {
+  mojo::Remote<network::mojom::NetworkContext> network_context;
+  network::mojom::NetworkContextParamsPtr context_params =
+      network::mojom::NetworkContextParams::New();
+  context_params->cert_verifier_params = GetCertVerifierParams(
+      cert_verifier::mojom::CertVerifierCreationParams::New());
+  CreateNetworkContextInNetworkService(
+      network_context.BindNewPipeAndPassReceiver(), std::move(context_params));
+  return network_context;
+}
+
 void OnConnected(base::OnceClosure quit_closure,
                  int result,
                  const absl::optional<net::IPEndPoint>& local_addr,
@@ -211,5 +221,39 @@
   EXPECT_EQ(socket_broker.tcp_socket_count(), 1);
 }
 
+IN_PROC_BROWSER_TEST_F(SandboxedSocketBrokerBrowserTest,
+                       TcpEndToEndCrashingService) {
+  if (IsInProcessNetworkService())
+    GTEST_SKIP();
+
+  auto network_context = CreateNetworkContext();
+
+  ASSERT_TRUE(network_context.is_bound());
+
+  // Run test on the first network context.
+  RunTcpEndToEndTest(network_context.get(), embedded_test_server_);
+
+  // Manually call SimulateCrash instead of
+  // BrowserTestBase::SimulateNetworkServiceCrash to avoid the cleanup and
+  // reconnection work it does.
+  mojo::Remote<network::mojom::NetworkServiceTest> network_service_test;
+  GetNetworkService()->BindTestInterface(
+      network_service_test.BindNewPipeAndPassReceiver());
+  IgnoreNetworkServiceCrashes();
+  network_service_test->SimulateCrash();
+
+  // Make sure the cached mojo::Remote<NetworkService> receives error
+  // notification.
+  FlushNetworkServiceInstanceForTesting();
+
+  network_context.FlushForTesting();
+
+  auto network_context2 = CreateNetworkContext();
+  ASSERT_TRUE(network_context2.is_bound());
+
+  // Run the test again, in the new network service.
+  RunTcpEndToEndTest(network_context2.get(), embedded_test_server_);
+}
+
 }  // namespace
 }  // namespace content
diff --git a/content/browser/net/socket_broker_impl.cc b/content/browser/net/socket_broker_impl.cc
index 5db9ee7..c3c287f 100644
--- a/content/browser/net/socket_broker_impl.cc
+++ b/content/browser/net/socket_broker_impl.cc
@@ -4,12 +4,21 @@
 
 #include "content/browser/net/socket_broker_impl.h"
 
+#include <errno.h>
+
+#include "base/files/file_util.h"
 #include "mojo/public/cpp/bindings/remote.h"
+#include "net/base/address_family.h"
 #include "net/base/net_errors.h"
 #include "net/log/net_log_source.h"
 #include "net/socket/socket_descriptor.h"
 #include "net/socket/tcp_socket.h"
 
+#if !BUILDFLAG(IS_WIN)
+#include <netinet/in.h>
+#include <sys/socket.h>
+#endif
+
 namespace content {
 
 SocketBrokerImpl::SocketBrokerImpl() = default;
@@ -22,12 +31,17 @@
 #if BUILDFLAG(IS_WIN)
   std::move(callback).Run(mojo::PlatformHandle(), net::ERR_FAILED);
 #else
-  net::SocketDescriptor socket;
-  int rv =
-      net::TCPSocket::OpenAndReleaseSocketDescriptor(address_family, &socket);
-  base::ScopedFD fd(socket);
-
-  std::move(callback).Run(mojo::PlatformHandle(std::move(fd)), rv);
+  base::ScopedFD socket(net::CreatePlatformSocket(
+      net::ConvertAddressFamily(address_family), SOCK_STREAM,
+      address_family == AF_UNIX ? 0 : IPPROTO_TCP));
+  int rv = net::OK;
+  if (!socket.is_valid()) {
+    rv = net::MapSystemError(errno);
+  } else if (!base::SetNonBlocking(socket.get())) {
+    rv = net::MapSystemError(errno);
+    socket.reset();
+  }
+  std::move(callback).Run(mojo::PlatformHandle(std::move(socket)), rv);
 #endif
 }
 
diff --git a/content/browser/network_service_instance_impl.cc b/content/browser/network_service_instance_impl.cc
index 8fc4e67..a9b6d29 100644
--- a/content/browser/network_service_instance_impl.cc
+++ b/content/browser/network_service_instance_impl.cc
@@ -283,8 +283,17 @@
     }
   }
 
-  GetNetworkService()->CreateNetworkContext(std::move(context),
-                                            std::move(params));
+  // This might recreate g_client if the network service needed to be restarted.
+  auto* network_service = GetNetworkService();
+
+#if BUILDFLAG(USE_SOCKET_BROKER)
+  if (GetContentClient()->browser()->ShouldSandboxNetworkService() &&
+      !params->socket_broker) {
+    params->socket_broker = g_client->BindSocketBroker();
+  }
+#endif  // BUILDFLAG(USE_SOCKET_BROKER)
+
+  network_service->CreateNetworkContext(std::move(context), std::move(params));
 }
 
 scoped_refptr<base::SequencedTaskRunner>& GetNetworkTaskRunnerStorage() {
@@ -835,13 +844,6 @@
             .InitWithNewPipeAndPassReceiver());
   }
 
-#if BUILDFLAG(USE_SOCKET_BROKER)
-  if (GetContentClient()->browser()->ShouldSandboxNetworkService() &&
-      !params->socket_broker) {
-    params->socket_broker = g_client->BindSocketBroker();
-  }
-#endif  // BUILDFLAG(USE_SOCKET_BROKER)
-
 #if BUILDFLAG(IS_ANDROID)
   // On Android, if a cookie_manager pending receiver was passed then migration
   // should not be attempted as the cookie file is already being accessed by the
diff --git a/content/browser/private_aggregation/private_aggregation_manager_impl_unittest.cc b/content/browser/private_aggregation/private_aggregation_manager_impl_unittest.cc
index 45cf5d2..d72d74afa 100644
--- a/content/browser/private_aggregation/private_aggregation_manager_impl_unittest.cc
+++ b/content/browser/private_aggregation/private_aggregation_manager_impl_unittest.cc
@@ -70,35 +70,6 @@
               (override));
 };
 
-class MockAggregationService : public AggregationService {
- public:
-  MOCK_METHOD(void,
-              AssembleReport,
-              (AggregatableReportRequest report_request,
-               AssemblyCallback callback),
-              (override));
-  MOCK_METHOD(void,
-              SendReport,
-              (const GURL& url,
-               const AggregatableReport& report,
-               SendCallback callback),
-              (override));
-  MOCK_METHOD(void,
-              SendReport,
-              (const GURL& url,
-               const base::Value& contents,
-               SendCallback callback),
-              (override));
-  MOCK_METHOD(void,
-              ClearData,
-              (base::Time delete_begin,
-               base::Time delete_end,
-               StoragePartition::StorageKeyMatcherFunction filter,
-               base::OnceClosure done),
-              (override));
-  MOCK_METHOD(void, ScheduleReport, (AggregatableReportRequest), (override));
-};
-
 class PrivateAggregationManagerImplUnderTest
     : public PrivateAggregationManagerImpl {
  public:
diff --git a/content/browser/renderer_host/navigation_controller_impl.cc b/content/browser/renderer_host/navigation_controller_impl.cc
index 1429a688..b70d624 100644
--- a/content/browser/renderer_host/navigation_controller_impl.cc
+++ b/content/browser/renderer_host/navigation_controller_impl.cc
@@ -1255,7 +1255,8 @@
 #if BUILDFLAG(IS_ANDROID)
     // TODO(crbug.com/1266277): Clean up the logic of setting
     // |overriding_user_agent_changed| post-launch.
-    if (base::FeatureList::IsEnabled(features::kRequestDesktopSiteExceptions)) {
+    if (base::FeatureList::IsEnabled(features::kRequestDesktopSiteExceptions) ||
+        base::FeatureList::IsEnabled(features::kRequestDesktopSiteAdditions)) {
       // Must honor user agent overrides in the |navigation_request|, such as
       // from things like RequestDesktopSiteWebContentsObserverAndroid. As a
       // result, besides comparing |pending_entry_|'s user agent against
@@ -1280,7 +1281,8 @@
 #if BUILDFLAG(IS_ANDROID)
     // TODO(crbug.com/1266277): Clean up the logic of setting
     // |overriding_user_agent_changed| post-launch.
-    if (base::FeatureList::IsEnabled(features::kRequestDesktopSiteExceptions)) {
+    if (base::FeatureList::IsEnabled(features::kRequestDesktopSiteExceptions) ||
+        base::FeatureList::IsEnabled(features::kRequestDesktopSiteAdditions)) {
       // Must honor user agent overrides in the |navigation_request|, such as
       // from things like RequestDesktopSiteWebContentsObserverAndroid. As a
       // result, besides checking |pending_entry_|'s user agent, also need to
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
index 8b31164c..55a9e45 100644
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -44,6 +44,7 @@
 #include "components/services/storage/shared_storage/shared_storage_manager.h"
 #include "components/services/storage/storage_service_impl.h"
 #include "components/variations/net/variations_http_headers.h"
+#include "content/browser/aggregation_service/aggregation_service.h"
 #include "content/browser/aggregation_service/aggregation_service_features.h"
 #include "content/browser/aggregation_service/aggregation_service_impl.h"
 #include "content/browser/attribution_reporting/attribution_manager_impl.h"
@@ -969,7 +970,7 @@
       network::mojom::CookieManager* cookie_manager,
       InterestGroupManagerImpl* interest_group_manager,
       AttributionManager* attribution_manager,
-      AggregationServiceImpl* aggregation_service,
+      AggregationService* aggregation_service,
       storage::SharedStorageManager* shared_storage_manager,
       bool perform_storage_cleanup,
       const base::Time begin,
@@ -1692,7 +1693,7 @@
   return native_io_context_.get();
 }
 
-AggregationServiceImpl* StoragePartitionImpl::GetAggregationService() {
+AggregationService* StoragePartitionImpl::GetAggregationService() {
   DCHECK(initialized_);
   return aggregation_service_.get();
 }
@@ -2401,7 +2402,7 @@
     network::mojom::CookieManager* cookie_manager,
     InterestGroupManagerImpl* interest_group_manager,
     AttributionManager* attribution_manager,
-    AggregationServiceImpl* aggregation_service,
+    AggregationService* aggregation_service,
     storage::SharedStorageManager* shared_storage_manager,
     bool perform_storage_cleanup,
     const base::Time begin,
@@ -2811,7 +2812,7 @@
 }
 
 void StoragePartitionImpl::OverrideAggregationServiceForTesting(
-    std::unique_ptr<AggregationServiceImpl> aggregation_service) {
+    std::unique_ptr<AggregationService> aggregation_service) {
   DCHECK(initialized_);
   aggregation_service_ = std::move(aggregation_service);
 }
diff --git a/content/browser/storage_partition_impl.h b/content/browser/storage_partition_impl.h
index 776c64a0..7d74987 100644
--- a/content/browser/storage_partition_impl.h
+++ b/content/browser/storage_partition_impl.h
@@ -64,7 +64,7 @@
 
 namespace content {
 
-class AggregationServiceImpl;
+class AggregationService;
 class AttributionManager;
 class BackgroundFetchContext;
 class BlobRegistryWrapper;
@@ -141,7 +141,7 @@
       std::unique_ptr<SharedStorageWorkletHostManager>
           shared_storage_worklet_host_manager);
   void OverrideAggregationServiceForTesting(
-      std::unique_ptr<AggregationServiceImpl> aggregation_service);
+      std::unique_ptr<AggregationService> aggregation_service);
   void OverrideAttributionManagerForTesting(
       std::unique_ptr<AttributionManager> attribution_manager);
 
@@ -253,7 +253,7 @@
   void SetFontAccessManagerForTesting(
       std::unique_ptr<FontAccessManager> font_access_manager);
   std::string GetPartitionDomain();
-  AggregationServiceImpl* GetAggregationService();
+  AggregationService* GetAggregationService();
   FontAccessManager* GetFontAccessManager();
 #if BUILDFLAG(ENABLE_LIBRARY_CDMS)
   MediaLicenseManager* GetMediaLicenseManager();
@@ -652,7 +652,7 @@
   std::unique_ptr<InterestGroupManagerImpl> interest_group_manager_;
   std::unique_ptr<BrowsingTopicsSiteDataManager>
       browsing_topics_site_data_manager_;
-  std::unique_ptr<AggregationServiceImpl> aggregation_service_;
+  std::unique_ptr<AggregationService> aggregation_service_;
 #if BUILDFLAG(ENABLE_LIBRARY_CDMS)
   std::unique_ptr<MediaLicenseManager> media_license_manager_;
 #endif  // BUILDFLAG(ENABLE_LIBRARY_CDMS)
diff --git a/content/browser/storage_partition_impl_unittest.cc b/content/browser/storage_partition_impl_unittest.cc
index fd1a632..c966f9b 100644
--- a/content/browser/storage_partition_impl_unittest.cc
+++ b/content/browser/storage_partition_impl_unittest.cc
@@ -48,7 +48,7 @@
 #include "components/services/storage/shared_storage/shared_storage_manager.h"
 #include "components/services/storage/shared_storage/shared_storage_options.h"
 #include "components/services/storage/storage_service_impl.h"
-#include "content/browser/aggregation_service/aggregation_service_impl.h"
+#include "content/browser/aggregation_service/aggregation_service_test_utils.h"
 #include "content/browser/attribution_reporting/attribution_manager_impl.h"
 #include "content/browser/attribution_reporting/attribution_test_utils.h"
 #include "content/browser/attribution_reporting/attribution_trigger.h"
@@ -539,22 +539,6 @@
       observation_{this};
 };
 
-class MockAggregationService : public AggregationServiceImpl {
- public:
-  explicit MockAggregationService(StoragePartitionImpl* partition)
-      : AggregationServiceImpl(/*run_in_memory=*/true,
-                               /*user_data_directory=*/base::FilePath(),
-                               partition) {}
-
-  MOCK_METHOD(void,
-              ClearData,
-              (base::Time delete_begin,
-               base::Time delete_end,
-               StoragePartition::StorageKeyMatcherFunction filter,
-               base::OnceClosure done),
-              (override));
-};
-
 bool IsWebSafeSchemeForTest(const std::string& scheme) {
   return scheme == url::kHttpScheme;
 }
@@ -2064,8 +2048,7 @@
   StoragePartitionImpl* partition = static_cast<StoragePartitionImpl*>(
       browser_context()->GetDefaultStoragePartition());
 
-  auto aggregation_service =
-      std::make_unique<MockAggregationService>(partition);
+  auto aggregation_service = std::make_unique<MockAggregationService>();
   auto* aggregation_service_ptr = aggregation_service.get();
   partition->OverrideAggregationServiceForTesting(
       std::move(aggregation_service));
diff --git a/content/browser/webauth/authenticator_common.cc b/content/browser/webauth/authenticator_common.cc
index c08d270e..d24658eb 100644
--- a/content/browser/webauth/authenticator_common.cc
+++ b/content/browser/webauth/authenticator_common.cc
@@ -13,38 +13,27 @@
 #include "base/bind.h"
 #include "base/callback_helpers.h"
 #include "base/check.h"
-#include "base/command_line.h"
-#include "base/containers/contains.h"
-#include "base/metrics/histogram_macros.h"
 #include "base/notreached.h"
-#include "base/rand_util.h"
 #include "base/strings/string_piece.h"
-#include "base/strings/utf_string_conversion_utils.h"
 #include "base/timer/timer.h"
 #include "build/build_config.h"
-#include "build/chromeos_buildflags.h"
 #include "content/browser/bad_message.h"
 #include "content/browser/renderer_host/back_forward_cache_disable.h"
 #include "content/browser/webauth/authenticator_environment_impl.h"
 #include "content/browser/webauth/client_data_json.h"
-#include "content/browser/webauth/is_uvpaa.h"
 #include "content/browser/webauth/virtual_authenticator_manager_impl.h"
 #include "content/browser/webauth/virtual_fido_discovery_factory.h"
 #include "content/browser/webauth/webauth_request_security_checker.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/content_browser_client.h"
-#include "content/public/browser/device_service.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/content_client.h"
-#include "content/public/common/content_switches.h"
 #include "crypto/sha2.h"
-#include "device/base/features.h"
 #include "device/fido/attestation_statement.h"
 #include "device/fido/authenticator_data.h"
 #include "device/fido/authenticator_get_assertion_response.h"
 #include "device/fido/ctap_make_credential_request.h"
-#include "device/fido/features.h"
 #include "device/fido/fido_authenticator.h"
 #include "device/fido/fido_constants.h"
 #include "device/fido/fido_parsing_utils.h"
@@ -56,15 +45,11 @@
 #include "device/fido/public_key.h"
 #include "device/fido/public_key_credential_descriptor.h"
 #include "device/fido/public_key_credential_params.h"
-#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
 #include "net/cert/asn1_util.h"
 #include "net/der/input.h"
 #include "net/der/parse_values.h"
 #include "net/der/parser.h"
-#include "services/network/public/cpp/is_potentially_trustworthy.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
-#include "url/url_constants.h"
-#include "url/url_util.h"
 
 #if BUILDFLAG(IS_MAC)
 #include "device/fido/mac/authenticator.h"
@@ -73,6 +58,16 @@
 
 #if BUILDFLAG(IS_CHROMEOS)
 #include "device/fido/cros/authenticator.h"
+#include "device/fido/features.h"
+#endif
+
+#if BUILDFLAG(IS_WIN)
+#include "device/fido/features.h"
+#include "device/fido/win/authenticator.h"
+#endif
+
+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
+#include "content/browser/webauth/is_uvpaa.h"
 #endif
 
 namespace content {
@@ -1159,6 +1154,30 @@
 #endif
 }
 
+void AuthenticatorCommon::IsConditionalMediationAvailable(
+    blink::mojom::Authenticator::IsConditionalMediationAvailableCallback
+        callback) {
+  // Conditional mediation is always supported if the virtual environment is
+  // providing a platform authenticator.
+  absl::optional<bool> embedder_isuvpaa_override =
+      GetWebAuthenticationDelegate()
+          ->IsUserVerifyingPlatformAuthenticatorAvailableOverride(
+              GetRenderFrameHost());
+  if (embedder_isuvpaa_override.has_value()) {
+    std::move(callback).Run(*embedder_isuvpaa_override);
+    return;
+  }
+#if BUILDFLAG(IS_MAC)
+  std::move(callback).Run(true);
+#elif BUILDFLAG(IS_WIN)
+  device::WinWebAuthnApiAuthenticator::IsConditionalMediationAvailable(
+      AuthenticatorEnvironmentImpl::GetInstance()->win_webauthn_api(),
+      std::move(callback));
+#else
+  std::move(callback).Run(false);
+#endif
+}
+
 void AuthenticatorCommon::Cancel() {
   CancelWithStatus(blink::mojom::AuthenticatorStatus::ABORT_ERROR);
 }
diff --git a/content/browser/webauth/authenticator_common.h b/content/browser/webauth/authenticator_common.h
index 6a0fd01..73d76ea 100644
--- a/content/browser/webauth/authenticator_common.h
+++ b/content/browser/webauth/authenticator_common.h
@@ -13,7 +13,6 @@
 #include <vector>
 
 #include "base/containers/flat_set.h"
-#include "base/containers/span.h"
 #include "base/memory/raw_ptr.h"
 #include "base/timer/timer.h"
 #include "content/common/content_export.h"
@@ -22,11 +21,8 @@
 #include "content/public/browser/web_authentication_request_proxy.h"
 #include "device/fido/authenticator_get_assertion_response.h"
 #include "device/fido/authenticator_make_credential_response.h"
-#include "device/fido/authenticator_selection_criteria.h"
 #include "device/fido/ctap_get_assertion_request.h"
 #include "device/fido/ctap_make_credential_request.h"
-#include "device/fido/fido_constants.h"
-#include "device/fido/fido_transport_protocol.h"
 #include "device/fido/make_credential_request_handler.h"
 #include "services/data_decoder/public/cpp/data_decoder.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -89,6 +85,9 @@
   void IsUserVerifyingPlatformAuthenticatorAvailable(
       blink::mojom::Authenticator::
           IsUserVerifyingPlatformAuthenticatorAvailableCallback callback);
+  void IsConditionalMediationAvailable(
+      blink::mojom::Authenticator::IsConditionalMediationAvailableCallback
+          callback);
   void Cancel();
 
   void Cleanup();
diff --git a/content/browser/webauth/authenticator_impl.cc b/content/browser/webauth/authenticator_impl.cc
index 64588c1..ba7a175 100644
--- a/content/browser/webauth/authenticator_impl.cc
+++ b/content/browser/webauth/authenticator_impl.cc
@@ -71,6 +71,11 @@
       std::move(callback));
 }
 
+void AuthenticatorImpl::IsConditionalMediationAvailable(
+    IsConditionalMediationAvailableCallback callback) {
+  authenticator_common_->IsConditionalMediationAvailable(std::move(callback));
+}
+
 void AuthenticatorImpl::Cancel() {
   authenticator_common_->Cancel();
 }
diff --git a/content/browser/webauth/authenticator_impl.h b/content/browser/webauth/authenticator_impl.h
index 3aecd186..bb8f2a02 100644
--- a/content/browser/webauth/authenticator_impl.h
+++ b/content/browser/webauth/authenticator_impl.h
@@ -57,6 +57,8 @@
                     GetAssertionCallback callback) override;
   void IsUserVerifyingPlatformAuthenticatorAvailable(
       IsUserVerifyingPlatformAuthenticatorAvailableCallback callback) override;
+  void IsConditionalMediationAvailable(
+      IsConditionalMediationAvailableCallback callback) override;
   void Cancel() override;
 
   std::unique_ptr<AuthenticatorCommon> authenticator_common_;
diff --git a/content/public/browser/first_party_sets_handler.h b/content/public/browser/first_party_sets_handler.h
index 6a858e1..48554f28 100644
--- a/content/public/browser/first_party_sets_handler.h
+++ b/content/public/browser/first_party_sets_handler.h
@@ -5,12 +5,17 @@
 #ifndef CONTENT_PUBLIC_BROWSER_FIRST_PARTY_SETS_HANDLER_H_
 #define CONTENT_PUBLIC_BROWSER_FIRST_PARTY_SETS_HANDLER_H_
 
+#include "base/callback.h"
 #include "base/files/file.h"
 #include "base/values.h"
 #include "content/common/content_export.h"
 #include "net/base/schemeful_site.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
+namespace net {
+class FirstPartySetEntry;
+}
+
 namespace content {
 
 // The FirstPartySetsHandler class allows an embedder to provide
@@ -43,12 +48,13 @@
     int error_index;
   };
 
-  // The keys are member sites and the values are their owners in the final
+  // The keys are member sites and the values are their entries in the final
   // list of First-Party Sets that result from combining the public sets and
   // the per-profile Overrides policy. Entries of site -> absl::nullopt means
   // the key site is considered deleted from the existing First-Party Sets.
   using PolicyCustomization =
-      base::flat_map<net::SchemefulSite, absl::optional<net::SchemefulSite>>;
+      base::flat_map<net::SchemefulSite,
+                     absl::optional<net::FirstPartySetEntry>>;
 
   virtual ~FirstPartySetsHandler() = default;
 
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index e00d9af..6c5d0bb 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -1555,6 +1555,7 @@
     "//components/web_package",
     "//components/web_package/test_support",
     "//content/app:for_content_tests",
+    "//content/browser:buildflags",
     "//content/browser:for_content_tests",
     "//content/browser/attribution_reporting:attribution_reporting_proto",
     "//content/browser/background_sync:background_sync_proto",
diff --git a/content/test/attribution_simulator_impl.cc b/content/test/attribution_simulator_impl.cc
index 66c0c1e..a1c8938 100644
--- a/content/test/attribution_simulator_impl.cc
+++ b/content/test/attribution_simulator_impl.cc
@@ -660,11 +660,13 @@
       manager.get(), storage_partition, json_converter, rejected_sources,
       rejected_triggers, replaced_event_level_reports);
 
-  storage_partition->GetAggregationService()->SetPublicKeysForTesting(
-      GURL(kPrivacySandboxAggregationServiceTrustedServerUrlParam.Get()),
-      PublicKeyset({aggregation_service::GenerateKey().public_key},
-                   /*fetch_time=*/base::Time::Now(),
-                   /*expiry_time=*/base::Time::Max()));
+  static_cast<AggregationServiceImpl*>(
+      storage_partition->GetAggregationService())
+      ->SetPublicKeysForTesting(
+          GURL(kPrivacySandboxAggregationServiceTrustedServerUrlParam.Get()),
+          PublicKeyset({aggregation_service::GenerateKey().public_key},
+                       /*fetch_time=*/base::Time::Now(),
+                       /*expiry_time=*/base::Time::Max()));
 
   base::Time last_event_time = GetEventTime(events->back());
 
diff --git a/content/test/data/accessibility/accname/name-text-labelledby-aria-hidden-different-visibility-types-expected-blink.txt b/content/test/data/accessibility/accname/name-text-labelledby-aria-hidden-different-visibility-types-expected-blink.txt
new file mode 100644
index 0000000..2a201b1
--- /dev/null
+++ b/content/test/data/accessibility/accname/name-text-labelledby-aria-hidden-different-visibility-types-expected-blink.txt
@@ -0,0 +1 @@
+textField name='a b c d e' nameFrom=relatedElement
diff --git a/content/test/data/accessibility/accname/name-text-labelledby-aria-hidden-different-visibility-types.html b/content/test/data/accessibility/accname/name-text-labelledby-aria-hidden-different-visibility-types.html
new file mode 100644
index 0000000..d1847b6
--- /dev/null
+++ b/content/test/data/accessibility/accname/name-text-labelledby-aria-hidden-different-visibility-types.html
@@ -0,0 +1,14 @@
+<!--
+@BLINK-DENY:description
+-->
+<!DOCTYPE html>
+<input id="test" aria-labelledby="t1">
+<div aria-hidden="true">
+  <div id="t1">
+    <span aria-hidden="true">a</span>
+    <span style="display:none">b</span>
+    <span style="visibility:hidden">c</span>
+    <span>d</span>
+    e
+  </div>
+</div>
diff --git a/content/test/data/accessibility/accname/name-text-labelledby-hidden-different-visibility-types-expected-blink.txt b/content/test/data/accessibility/accname/name-text-labelledby-hidden-different-visibility-types-expected-blink.txt
index bfea8687..2a201b1 100644
--- a/content/test/data/accessibility/accname/name-text-labelledby-hidden-different-visibility-types-expected-blink.txt
+++ b/content/test/data/accessibility/accname/name-text-labelledby-hidden-different-visibility-types-expected-blink.txt
@@ -1 +1 @@
-textField name='b c d e' nameFrom=relatedElement
+textField name='a b c d e' nameFrom=relatedElement
diff --git a/content/test/data/accessibility/html/canvas-fallback-expected-auralinux.txt b/content/test/data/accessibility/html/canvas-fallback-expected-auralinux.txt
index 96bb6ba..f171c61 100644
--- a/content/test/data/accessibility/html/canvas-fallback-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/canvas-fallback-expected-auralinux.txt
@@ -10,7 +10,7 @@
 ++++++[paragraph] description='Visibility hidden paragraph in fallback content' described-by
 ++++++++[static] name='This is another paragraph in fallback'
 ++++++[static] name='<newline>    '
-++++++[heading] name='Aria hidden paragraph in fallback content' description-for
+++++++[heading] description-for
 ++++++++[static] name='Aria hidden paragraph in fallback content'
 ++++++[static] name='<newline>    '
 ++++++[heading]
diff --git a/content/test/data/accessibility/html/canvas-fallback-expected-blink.txt b/content/test/data/accessibility/html/canvas-fallback-expected-blink.txt
index 1275efc..bfb5403 100644
--- a/content/test/data/accessibility/html/canvas-fallback-expected-blink.txt
+++ b/content/test/data/accessibility/html/canvas-fallback-expected-blink.txt
@@ -11,7 +11,7 @@
 ++++++++paragraph description='Visibility hidden paragraph in fallback content'
 ++++++++++staticText name='This is another paragraph in fallback'
 ++++++++staticText name='<newline>    '
-++++++++heading invisible name='Aria hidden paragraph in fallback content' hierarchicalLevel=1
+++++++++heading invisible hierarchicalLevel=1
 ++++++++++staticText invisible name='Aria hidden paragraph in fallback content'
 ++++++++staticText name='<newline>    '
 ++++++++heading invisible hierarchicalLevel=1
diff --git a/content/test/data/accessibility/html/canvas-fallback-expected-uia-win.txt b/content/test/data/accessibility/html/canvas-fallback-expected-uia-win.txt
index 75d6edd..7fab11d 100644
--- a/content/test/data/accessibility/html/canvas-fallback-expected-uia-win.txt
+++ b/content/test/data/accessibility/html/canvas-fallback-expected-uia-win.txt
@@ -10,7 +10,7 @@
 ++++++Group
 ++++++++Text Name='This is another paragraph in fallback'
 ++++++Text Name='<newline>    '
-++++++Text Name='Aria hidden paragraph in fallback content' IsControlElement=false
+++++++Text IsControlElement=false
 ++++++++Text Name='Aria hidden paragraph in fallback content' IsControlElement=false
 ++++++Text Name='<newline>    '
 ++++++Text IsControlElement=false
@@ -18,4 +18,4 @@
 ++++++Text Name='<newline>    '
 ++++++Text IsControlElement=false
 ++++++++Text Name='Visibility hidden paragraph in fallback content' IsControlElement=false
-++++++Text Name='<newline>  '
\ No newline at end of file
+++++++Text Name='<newline>  '
diff --git a/content/test/data/accessibility/html/label-updates-expected-blink.txt b/content/test/data/accessibility/html/label-updates-expected-blink.txt
index 3d56b44..8458296 100644
--- a/content/test/data/accessibility/html/label-updates-expected-blink.txt
+++ b/content/test/data/accessibility/html/label-updates-expected-blink.txt
@@ -1,19 +1,19 @@
 rootWebArea
 ++genericContainer ignored
 ++++genericContainer
-++++++textField name='oranges'
+++++++textField
 ++++++++genericContainer
 ++++++labelText ignored invisible
 ++++++++genericContainer ignored invisible
 ++++++++++genericContainer ignored invisible
 ++++++++++++staticText ignored invisible name='oranges'
-++++++textField name='oranges'
+++++++textField
 ++++++++genericContainer
 ++++++labelText ignored invisible
 ++++++++genericContainer ignored invisible
 ++++++++++genericContainer ignored invisible
 ++++++++++++staticText ignored invisible name='oranges'
-++++++textField name='bananas'
+++++++textField
 ++++++++genericContainer
 ++++++labelText ignored invisible
 ++++++++staticText ignored invisible name='bananas'
diff --git a/content/test/data/android/authenticator.html b/content/test/data/android/authenticator.html
index 96a0f0c..0165173 100644
--- a/content/test/data/android/authenticator.html
+++ b/content/test/data/android/authenticator.html
@@ -97,6 +97,30 @@
                         window.document.title = 'Fail: ' + e.name + " " + e.message;
                 });
             }
+
+            function doIsConditionalMediationAvailable() {
+                if (window.PublicKeyCredential === undefined) {
+                    window.document.title = 'Fail: PublicKeyCredential === undefined';
+                    return;
+                }
+
+                if (window.PublicKeyCredential.isConditionalMediationAvailable === undefined) {
+                    window.document.title = 'Fail: isConditionalMediationAvailable() === undefined';
+                    return;
+                }
+
+                PublicKeyCredential.isConditionalMediationAvailable()
+                    .then(r => {
+                        if (r == false) {
+                            window.document.title = 'Success';
+                        } else {
+                            window.document.title = 'Fail: expected response to be false, got ' + r + ' instead';
+                        }
+                    })
+                    .catch(e => {
+                        window.document.title = 'Fail: ' + e.name + " " + e.message;
+                });
+            }
         </script>
     </head>
     <body>
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
index d915175..89c18eb4 100644
--- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -347,9 +347,6 @@
 # Failures in fuchsia-chrome browser
 crbug.com/1295076 [ fuchsia fuchsia-chrome ] Pixel_CanvasDisplaySRGBAccelerated2D [ Failure ]
 
-# Pixel_WebGPUImportVideoFrame hangs on Windows FYI bots
-crbug.com/1274796 [ win skia-renderer-gl ] Pixel_WebGPUImportVideoFrame [ Failure ]
-
 # Crashes on gpu-fyi-win10-nvidia-rel-32
 crbug.com/1300670 [ win nvidia-0x2184 passthrough ] Pixel_WebGPUImportVideoFrameUnaccelerated [ Failure ]
 crbug.com/1300670 [ win nvidia-0x2184 passthrough ] Pixel_WebGPUImportVideoFrameOffscreenCanvas [ Failure ]
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
index d0023b6..b496fc78 100644
--- a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
@@ -527,6 +527,7 @@
 crbug.com/1345782 [ mac amd-0x6821 angle-opengl passthrough ] deqp/functional/gles3/texturespecification/texstorage2d_format_cube_01.html [ RetryOnFailure ]
 crbug.com/1345782 [ mac amd-0x6821 angle-opengl passthrough ] deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil.html [ RetryOnFailure ]
 crbug.com/1345782 [ mac amd-0x6821 angle-opengl passthrough ] deqp/functional/gles3/textureformat/sized_color_cube_npot_01.html [ RetryOnFailure ]
+crbug.com/1350287 [ mac amd-0x6821 angle-opengl passthrough ] deqp/functional/gles3/occlusionquery_strict.html [ RetryOnFailure ]
 
 crbug.com/1227762 [ bigsur amd-0x6821 angle-disabled no-passthrough skia-renderer-gl ] conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html [ Failure ]
 crbug.com/1227762 [ bigsur amd-0x6821 angle-disabled no-passthrough skia-renderer-gl ] conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte.html [ Failure ]
diff --git a/content/test/gpu/run_gpu_integration_test.py b/content/test/gpu/run_gpu_integration_test.py
index 98dcd78b..0e2c12b 100755
--- a/content/test/gpu/run_gpu_integration_test.py
+++ b/content/test/gpu/run_gpu_integration_test.py
@@ -87,17 +87,6 @@
     rest_args_filtered.append('--retry-limit=2')
   rest_args_filtered.extend(
       ['--repository-absolute-path', gpu_path_util.CHROMIUM_SRC_DIR])
-
-  # This is a dirty hack to debug crbug.com/1345782 and should be removed ASAP.
-  if (sys.platform == 'darwin' and os.environ.get('GTEST_SHARD_INDEX') == '7'
-      and 'webgl_conformance' in args):
-    jobs_parser = argparse.ArgumentParser()
-    jobs_parser.add_argument('--jobs', type=int, help=argparse.SUPPRESS)
-    job_args, jobless_args = jobs_parser.parse_known_args(rest_args_filtered)
-    if job_args.jobs:
-      jobless_args.append('--jobs=1')
-      rest_args_filtered = jobless_args
-
   return rest_args_filtered
 
 
diff --git a/content/utility/BUILD.gn b/content/utility/BUILD.gn
index 299b13d..f6fe3ed 100644
--- a/content/utility/BUILD.gn
+++ b/content/utility/BUILD.gn
@@ -132,7 +132,7 @@
     }
   }
 
-  if (is_linux || is_chromeos_ash || is_chromeos_lacros) {
+  if (is_linux || is_chromeos) {
     deps += [ "//components/services/screen_ai:screen_ai_sandbox_hook" ]
   }
 
diff --git a/device/fido/win/authenticator.cc b/device/fido/win/authenticator.cc
index d80a4649..12d10409 100644
--- a/device/fido/win/authenticator.cc
+++ b/device/fido/win/authenticator.cc
@@ -44,6 +44,7 @@
 
 }  // namespace
 
+// static
 void WinWebAuthnApiAuthenticator::IsUserVerifyingPlatformAuthenticatorAvailable(
     WinWebAuthnApi* api,
     base::OnceCallback<void(bool is_available)> callback) {
@@ -63,6 +64,23 @@
       std::move(callback));
 }
 
+// static
+void WinWebAuthnApiAuthenticator::IsConditionalMediationAvailable(
+    WinWebAuthnApi* api,
+    base::OnceCallback<void(bool is_available)> callback) {
+  base::ThreadPool::PostTaskAndReplyWithResult(
+      FROM_HERE,
+      {base::TaskPriority::USER_VISIBLE, base::MayBlock(),
+       base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN},
+      base::BindOnce(
+          [](WinWebAuthnApi* api) {
+            return api && api->IsAvailable() && api->SupportsSilentDiscovery();
+          },
+          api),
+      std::move(callback));
+}
+
+// static
 void WinWebAuthnApiAuthenticator::EnumeratePlatformCredentials(
     WinWebAuthnApi* api,
     base::OnceCallback<
@@ -101,6 +119,7 @@
       std::move(callback));
 }
 
+// static
 void WinWebAuthnApiAuthenticator::DeletePlatformCredential(
     WinWebAuthnApi* api,
     base::span<const uint8_t> credential_id,
diff --git a/device/fido/win/authenticator.h b/device/fido/win/authenticator.h
index 6806074..4f03870 100644
--- a/device/fido/win/authenticator.h
+++ b/device/fido/win/authenticator.h
@@ -37,6 +37,12 @@
       WinWebAuthnApi* api,
       base::OnceCallback<void(bool is_available)>);
 
+  // This method is safe to call without checking WinWebAuthnApi::IsAvailable().
+  // Returns false if |api| is nullptr.
+  static void IsConditionalMediationAvailable(
+      WinWebAuthnApi* api,
+      base::OnceCallback<void(bool is_available)>);
+
   // Get metadata for all credentials in the platform authenticator. If such
   // metadata is not available then the callback will be invoked with an empty
   // list.
diff --git a/device/fido/win/authenticator_unittest.cc b/device/fido/win/authenticator_unittest.cc
index c8fa6e0..8cdeed79 100644
--- a/device/fido/win/authenticator_unittest.cc
+++ b/device/fido/win/authenticator_unittest.cc
@@ -8,6 +8,7 @@
 #include <memory>
 #include <vector>
 
+#include "base/test/bind.h"
 #include "base/test/task_environment.h"
 #include "device/fido/ctap_get_assertion_request.h"
 #include "device/fido/public_key_credential_rp_entity.h"
@@ -188,5 +189,21 @@
   EXPECT_EQ(cred.user.display_name, kUserDisplayName);
 }
 
+TEST_F(WinAuthenticatorTest, IsConditionalMediationAvailable) {
+  for (bool silent_discovery : {false, true}) {
+    SCOPED_TRACE(silent_discovery);
+    fake_webauthn_api_->set_supports_silent_discovery(silent_discovery);
+    test::TestCallbackReceiver<bool> callback;
+    base::RunLoop run_loop;
+    WinWebAuthnApiAuthenticator::IsConditionalMediationAvailable(
+        fake_webauthn_api_.get(),
+        base::BindLambdaForTesting([&](bool is_available) {
+          EXPECT_EQ(is_available, silent_discovery);
+          run_loop.Quit();
+        }));
+    run_loop.Run();
+  }
+}
+
 }  // namespace
 }  // namespace device
diff --git a/docs/code_reviews.md b/docs/code_reviews.md
index aa3580ec1..2ee4d62 100644
--- a/docs/code_reviews.md
+++ b/docs/code_reviews.md
@@ -212,8 +212,9 @@
 
 Note that Owners-Override by itself is not enough on your own CLs. Where this
 matters is when you are sheriffing. For example, if you want to revert or
-disable a test, your Owners-Override on the CL is not enough. You need
-another committer to LGTM the CL.
+disable a test, your Owners-Override on the CL is not enough. You also need
+either another committer to LGTM the CL or, for clean reverts, a `Bot-Commit:
++1` from the [rubber-stamper bot](#automated-code_review).
 
 ## Mechanical changes
 
diff --git a/docs/infra/glossary.md b/docs/infra/glossary.md
new file mode 100644
index 0000000..ade2c4b
--- /dev/null
+++ b/docs/infra/glossary.md
@@ -0,0 +1,112 @@
+# Glossary
+
+This page provides definitions of phrases and terminology used in Chromium's
+[continuous integration](https://en.wikipedia.org/wiki/Continuous_integration)
+infrastructure.
+
+
+## Builds
+
+* __Build__: A Buildbucket job that runs a single CI-specific task. Composed of
+  multiple steps rendered in Milo (e.g. a step for 'fetching the source', a step
+  for 'compile', etc.). A build is associated with a single Builder.
+  As of writing (Q3 2022), all Buildbucket builds are themselves Swarming tasks.
+
+* __Builder__: A named configuration (or grouping) of builds in Buildbucket. All
+  builds of a builder share the same config. For the most part, this means they
+  run the same recipe and have largely the same set of steps. A builder may also
+  be referred to as a __bot__, but that term is ambiguous and should be avoided
+  since it can be confused with a __Swarming bot__. (See the [LUCI](#luci)
+  section below.)
+  * __Builder/Tester Split__: At the end of their builds, some builders may
+    trigger builds on other builders. When the parent build only compiles and
+    the child build only runs tests, we call this model a "builder/tester
+    split". The child is referred to as the tester, and the parent (confusingly)
+    referred to as the builder.
+  * __CI Builder__ or __Post-submit Builder__: A builder that compiles/tests a
+    branch of Chromium. Often triggered when changes to the branch are
+    submitted, these post-submit builders run on a continuous basis.
+  * __FYI Builder__: A CI builder with reduced priority and impact. Ideally
+    used only for experiments or for temporary build/test configs. May also be
+    referred to as an "informational" builder.
+  * __Trybot__ or __Trybuilder__ or __Pre-submit Builder__: A builder that
+    compiles/tests a pending CL before submission.
+  * __Tryjob__: A single build of a trybot.
+
+* __Chromium's CQ__: The set of trybots required for any Chromium CL to pass
+  before submission. These are mandatory for nearly every CL.
+  * __CQ Builder__: One of the mandatory trybots. See
+    [here](../../infra/config/generated/cq-builders.md#required-builders) for
+    the full list.
+  * __Optional Trybot__: A trybot that's not a default CQ builder. These can
+    be triggered manually by a developer. Or they can be required by the CQ
+    if the CL includes changes to a specific file path. See
+    [here](../../infra/config/generated/cq-builders.md#optional-builders) for a
+    list of the optional trybots and the filepaths that require them. Trybots
+    that fall into that latter category can also be referred to as
+    __path-based trybots__.
+
+* __Builder Group__: A logical grouping of builders. For example, the
+  "chromium.linux" builder group is a set of builders that test basic
+  functionality of Chromium on Linux.
+
+* __Waterfall__: A largely historical term that often refers to a particular
+  grouping of Builders or Builder Groups. Examples include:
+  * __The Perf Waterfall__: Builders in the
+    [chrome.perf](https://ci.chromium.org/p/chrome/g/chrome.perf) builder group.
+  * __The Main Waterfall__: Another historical term. Often refers to the set of
+    builders whose failures close the
+    [Chromium tree](https://chromium-status.appspot.com/). Spans multiple
+    builder groups.
+
+## LUCI
+
+LUCI is a collection of continuous integration services running on Google Cloud.
+These services largely make-up the backbone of Chromium's CI.
+
+* __Buildbucket__: A LUCI service that tracks builds, and queues them into
+  Builders.
+
+* __Change Verifier__ or __CV__: A LUCI service that triggers and manages the
+  builds a CL must pass before the CL is submitted into the repository's trunk.
+  These builds are known as "pre-submit", and the full set of required builds
+  that CV enforces for a repo are that repo's "CQ". (See above for a description
+  of Chromium's particular CQ.)
+
+* __CIPD__: A LUCI service for hosting and distributing packages. Packages
+  stored in CIPD are arbitrary sets of files. Practically, these are often SDKs,
+  toolchains, and other various binaries not suitable for being checked-into a
+  Git repo directly.
+
+* __Milo__: A LUCI service that renders Builds in a web-browser UI. Hosted on
+  https://ci.chromium.org. Alliases also include https://build.chromium.org and
+  https://luci-milo.appspot.com.
+
+* __Recipe__: A LUCI technology that defines what steps a build runs. Written in
+  a domain-specific language embedded in Python. Nearly all builds run a recipe.
+  (The alternative to recipes being a binary that implements the luciexe
+  protocol. As of Q3 2022, non-recipe luciexe binaries have limited use in
+  Chromium's infra.)
+
+* __Swarming__: A LUCI service that runs arbitrary tasks across a fleet of
+  workers knows as Swarming bots.
+  * __Swarming bot__: A single worker that communicates with the Swarming server
+    and executes Swarming tasks. The worker often, but not necessarily, runs on
+    a Linux, Mac, or Win VM. A bot belongs to one or more Swarming pools.
+  * __Swarming pool__: A collection of Swarming bots. A pool acts as a security
+    boundary, enforcing who can view and trigger tasks on its bots.
+  * __Swarming task__: A single workload request. A task defines a command to
+    run, and is associated to a single Swarming pool.
+
+## Misc
+
+* __CAS__: Content Addresses Storage, a service for storing binary blobs. Used
+  on Chromium's infra to store and transfer test inputs from the builder that
+  compiles the tests to the Swarming bots that run them. May also be referred
+  to by its predecessor's name: "isolate".
+* __Gerrit__: The code-review tool for changes to Google-hosted Git
+  repositoris. See chromium/src.git's Gerrit instance
+  [here](https://chromium-review.googlesource.com/).
+* __Gitiles__: The web-browser UI for Google-hosted Git repositories. See
+  chromium/src.git on gitiles
+  [here](https://chromium.googlesource.com/chromium/src/+/HEAD).
diff --git a/docs/speed/bot_health_sheriffing/glossary.md b/docs/speed/bot_health_sheriffing/glossary.md
deleted file mode 100644
index c9bad7d..0000000
--- a/docs/speed/bot_health_sheriffing/glossary.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# Bot health sheriff glossary
-
-* **Alert: **An row in Sheriff-o-matic that indicates a problem affecting a test.
-
-* **Benchmark: **A set of test cases that measure some aspect of Chrome's performance. The most common type of benchmark that we manage is Telemetry benchmarks.
-
-* **Bisect: **A binary search within a range of Chrome commits to find which the revision responsible for a functional or performance regression. Pinpoint is the name of the bisection microservice.
-
-* **Bot: **An ambiguous term that can mean either *swarming bot* or *host*.
-
-* **Device: **The physical hardware that we run performance tests on.
-
-* **Flakiness dashboard: **[A dashboard](https://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=blink_perf.layout) that shows the revisions at which a given test failed. Also known as the test results dashboard.
-
-* **Host: **The physical hardware that Telemetry runs on. For desktop testing, this is the same as the *device* on which the testing is done. For mobile testing, the *host* can mean either the Linux desktop or one of the multiple Docker containers within that Linux desktop, each with access to a single attached mobile device.
-
-* **Hostname: **A string identifier for the host which looks like "build139-b1". For mobile testing, there's both a hostname for the Linux desktop (e.g. "build140-b1") and a hostname for each Docker container within that host (e.g. "build140-b1--device6").
-
-* **Isolate: **A container sent to a swarming bot containing everything that a swarming task needs to run. (Pronounced "ice-o-lit".)
-
-* **Logdog: **The microservice within LUCI that displays logs.
-
-* **LUCI: **An acronym standing for **"**Layered Universal Continuous Integration". It is a collection of scalable open-source build infrastructure services that includes microservices like swarming and LogDog.
-
-* **Pinging a bug: **To add a comment on a bug asking if there's any status update. Generally this is done when we expected some action to have been taken towards resolving the bug, but it wasn't.
-
-* **Pinging a person [offline]**: To contact someone on chat. Generally, this is done to follow up on a bug that's particularly urgent or that needs attention from someone who has been unresponsive on Monorail.
-
-* **Pinpoint: **[The microservice](https://pinpoint-dot-chromeperf.appspot.com/) used to run bisects.
-
-* **Sherff-o-matic: **[The central tool](https://sheriff-o-matic.appspot.com/chromium.perf#) used to bot health sheriff.
-
-* **Snooze: **An action taken by sheriffs to dismiss an alert for a defined amount of time.
-
-* **Story: **A single test case within a Telemetry benchmark.
-
-* **Swarming: **A set of AppEngine services used to distribute and run tasks on a pool of hosts.
-
-* **Swarming bot: **A Python binary running on each host that polls for new swarming tasks and executes them.
-
-* **Swarming task: **A command that a given swarming bot is told to run (e.g. "Run this Telemetry Python script with these parameters.").
-
-* **Telemetry: **The infrastructure used to write Chrome performance benchmarks.
-
diff --git a/docs/speed/bot_health_sheriffing/how_to_access_test_logs.md b/docs/speed/bot_health_sheriffing/how_to_access_test_logs.md
deleted file mode 100644
index bdbb38c..0000000
--- a/docs/speed/bot_health_sheriffing/how_to_access_test_logs.md
+++ /dev/null
@@ -1,89 +0,0 @@
-# How to access and navigate test logs
-
-**Important**: When making changes to this document, also update duplicate files under the [internal docs](http://goto.google.com/perf-bot-health-sheriffs).
-
-When trying to understand a failure, it can be useful to inspect the test logs where the failure occurred.
-
-[TOC]
-
-## Accessing test logs
-
-### Accessing the log for the most recent failure
-
-Usually, Sheriff-o-matic will include a link directly in the alert to the most recent instance of the test failure. Just click on "shard #0 (failed)".
-
-![Sheriff-o-matic shard #0 failed link](images/som_shard_0.png)
-
-### Accessing the logs for older failures
-
-From the Sheriff-o-matic alert, click the "Examine" link to access a list of recent runs on the given bot.
-
-![Sheriff-o-matic open examine pane](images/som_examine.png)
-
-If the failure spans multiple platforms, you can select which platform you care about from the top of the new pane.
-
-![Sheriff-o-matic choose bot from examine pane](images/som_examine_choose_bot.png)
-
-This new pane shows all recent runs, not just runs where this benchmark failed, so it's often useful to use Ctrl+F and search for the failing benchmark name to highlight these runs.Next, click the build number for the run for which you want to access the logs. Once you've found the run you want the logs for, click the build number for the run for which you want to access the logs.
-
-![Sheriff-o-matic choose build number](images/som_choose_build_number.png)
-
-Once at the build page listing all steps, we need to find the test step that failed. Start by selecting to show "Non-Green Only" steps at the top of the page.
-
-![Sheriff-o-matic choose non-green only](images/som_choose_non_green_only.png)
-
-After doing this, search for your benchmark's name (in this case, "v8.browsing_desktop") until you find a step with a name like "<benchmark_name> on <platform>". Click the "shard #0 (failed)" link below that step to open the logs.
-
-![Sheriff-o-matic choose shard #0 failed link from test steps](images/som_test_steps_shard_0.png)
-
-### Accessing the log for the new perf recipe
-
-Currently linux-perf and mac-10_12_laptop_low_end-perf are running the new perf recipe and logs are accessed slightly differently. 
-
-#### Failing Story Logs
-Sheriff-o-matic now links to failing story logs when present.  Click on the logs
-link to download the failing story log.
-![Sheriff-o-matic click on builder](images/som_new_recipe_story_log.png)
-
-
-#### Failing Benchmark Logs
-First navigate to the failing build through the Sheriff-o-matic entry by clicking on the builder this step failed on. 
-
-![Sheriff-o-matic click on builder](images/som_new_recipe_choose_builder.png)
-
-This new screen will list out the most recent builds for this builder.  To identify which build you are interested in you will have to drill into each build starting with the most recent to identify where the specific failing test is. Ctrl-F for “performance_test_suite” or scroll down to the test entry.  The list of failed tests is right on the performance_test_suite step:
-
-![Sheriff-o-matic identify the list of failing tests](images/som_new_recipe_identify_failed_tests.png)
-
-Once you have identified the build that has your failing test, click on the “Benchmark logs” link and Ctrl-F for your failing benchmark.  This link provides a logdog stream with all of the logs for that particular benchmark.
-
-![Sheriff-o-matic find benchmark logs](images/som_new_recipe_benchmark_logs_link.png)
-
-
-## Navigating log files
-
-### Identifying why a story failed
-
-The most common goal in opening a log file is to identify why a story failed.
-
-To do this, search the logs for "`FAILED  ]`" (failed, space, space, right bracket) until you find the section in the middle of the logs in where your particular story ran. (Note that all failing story names will also be listed at the end of the logs, but this isn't what we want right now.)
-
-Once at this location, scroll up until you find a call stack describing the failure that occurred.
-
-### Identifying why a benchmark failed
-
-Occasionally, a benchmark will fail in a way that prevents any stories from being run.
-
-Generally, this means that the test log is very short. In order to find the call stack describing the failure, go to the bottom of the logs and scroll up until you find the failure.
-
-### Getting a list of stories that failed
-
-At the conclusion of the run, Telemetry lists all stories that failed. To find this list, search for "` FAILED TEST`" (space, failed, space, test). This should take you to a section that looks like this:
-
-    [  PASSED  ] 58 tests.
-    [  FAILED  ] 1 test, listed below:
-    [  FAILED  ]  blink_perf.layout/subtree-detaching.html
-    FAILED TEST
-
-This section lists all failed stories.
-
diff --git a/docs/speed/bot_health_sheriffing/how_to_address_duplicate_alerts.md b/docs/speed/bot_health_sheriffing/how_to_address_duplicate_alerts.md
deleted file mode 100644
index 695f5478f..0000000
--- a/docs/speed/bot_health_sheriffing/how_to_address_duplicate_alerts.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# How to address a new alert with the same root cause as an existing alert
-
-**Important**: When making changes to this document, also update duplicate files under the [internal docs](http://goto.google.com/perf-bot-health-sheriffs).
-
-It's common when large problems arise for multiple alerts to fire due to the same underlying problem. Sheriff-o-matic does its best to automatically group these problems into a single alert, but sometimes it's unable to and we have to group the alerts together manually. This is important because it helps future sheriffs see at a glance the number of distinct problems.
-
-Unfortunately, there's no way to distinguish these duplicate alerts from new alerts without knowing the contents of those other alerts. If you're unsure about two particular alerts, don't hesitate to ask for help [on chat](https://hangouts.google.com/group/2GmiXjz55R2ixTXi1).
-
-## How to group duplicate alerts
-
-First, decide which of your duplicate alerts is going to be your "main" alert. If one of the alerts is already an alert group, use that alert. Otherwise, it doesn't matter which alert is picked.
-
-Next, select all of the other alerts that you want to merge into this main alert. If there are any existing alert groups among these other alerts, you need to click "Ungroup all" and check all of the boxes in the dialog to ensure that the alerts are out of their existing groups.
-
-![Sheriff-o-matic ungroup all](images/ungroup_all.png)
-
-![Sheriff-o-matic bulk ungroup dialog](images/bulk_ungroup.png)
-
-Once you've ungrouped all the alerts being merged into the main alert and selected all alerts being merged, including your primary alert, click the "Group all" button at the top of the screen.
-
-![Sheriff-o-matic group all](images/group_all.png)
-
-If the alert group still has an auto-generated name, it's a good idea to give it a name that clarifies the problem.
-
-![Changing the group name in Sheriff-o-matic](images/change_group_name.png)
-
-Lastly, it may be necessary to broaden the scope of the existing bug. If, for example, the previous alert had the name "system_health.common_desktop failing on Mac Retina Perf" and you merged in a duplicate alert on Mac Air Perf, you should change the bug and alert names to "system_health.common_desktop failing on multiple Mac builders" and simultaneously add a comment to the bug to the effect of "I'm broadening this bug because the issue is also causing failures on Mac Air Perf".
-
diff --git a/docs/speed/bot_health_sheriffing/how_to_disable_a_story.md b/docs/speed/bot_health_sheriffing/how_to_disable_a_story.md
deleted file mode 100644
index 6c98eb09..0000000
--- a/docs/speed/bot_health_sheriffing/how_to_disable_a_story.md
+++ /dev/null
@@ -1,80 +0,0 @@
-# How to disable a failing test/story on the perf waterfall
-
-**Important**: When making changes to this document, also update duplicate files under the [internal docs](http://goto.google.com/perf-bot-health-sheriffs).
-
-To disable a failing test/story, the first step is to figure
-out if the failing thing is gtest or Telemetry, then you can
-follow the below directions to disable the failing test/story.
-
-# How to tell if the thing that is failing is Gtest or Telemetry
-
-When a Telemetry benchmark story fails, the format of the output is
-`<benchmark name>/<story name>`
-
-When a gtest C++ executable fails, the format of the output is
-`<executable name>`
-
-Also, usually gtests executables are named something that ends
-with `tests` such as `components_perftests` or `browser_performance_tests`
-As of January 2020, no benchmarks are named in a similar fashion.
-
-# How to disable a failing Telemetry benchmark or story
-
-## Modify [`tools/perf/expectations.config`](https://cs.chromium.org/chromium/src/tools/perf/expectations.config?q=expectations.config&sq=package:chromium&dr)
-
-Start a fresh branch in an up-to-date Chromium checkout. If you're unsure of how to do this, [see these instructions](https://www.chromium.org/developers/how-tos/get-the-code).
-
-
-In your editor, open up [`tools/perf/expectations.config`](https://cs.chromium.org/chromium/src/tools/perf/expectations.config?q=expectations.config&sq=package:chromium&dr).
-
-You'll see that the file is divided into sections sorted alphabetically by benchmark name. Find the section for the benchmark in question. (If it doesn't exist, add it in the correct alphabetical location.)
-
-Each line in this file looks like:
-
-    crbug.com/12345 [ conditions ] benchmark_name/story_name [ Skip ]
-
-and consists of:
-
-* A crbug tracking the story failure
-
-* A list of space-separated tags describing the platforms on which the story will be disabled. A full list of these tags is available [at the top of the file](https://cs.chromium.org/chromium/src/tools/perf/expectations.config?type=cs&q=tools/perf/expectations.config&sq=package:chromium&g=0&l=5). (Note that these conditions are combined via a logical AND, so a platform must meet all conditions to be disabled.)
-
-* The benchmark name followed by a "/"
-
-* The story name, or an asterisk if the entire benchmark should be disabled
-
-* The string "`[ Skip ]`", which denotes that the test should be skipped
-
-Add a new line for each story that you need to disable, or an asterisk if you're disabling the entire benchmark. Multiple lines are also necessary to disable a single story on multiple platforms that lack a common tag.
-
-For example, an entry disabling a particular story might look like:
-
-    crbug.com/738453 [ Nexus_6 ] blink_perf.layout/subtree-detaching.html [ Skip ]
-
-
-whereas an entry disabling a benchmark on an entire platform might look like:
-
-    crbug.com/593973 [ Android_Svelte ] blink_perf.layout/* [ Skip ]
-
-## Submit changes
-
-Once you've committed your changes locally, your CL can be submitted with:
-
-- `No-Try: True`
-- `Tbr: `someone from [`tools/perf/OWNERS`](https://cs.chromium.org/chromium/src/tools/perf/OWNERS?q=tools/perf/owners&sq=package:chromium&dr)
-- `CC: `benchmark owner found in [this spreadsheet](https://docs.google.com/spreadsheets/u/1/d/1xaAo0_SU3iDfGdqDJZX_jRV0QtkufwHUKH3kQKF3YQs/edit#gid=0)
-- `Bug: `tracking bug
-
-*Please make sure to CC the benchmark owner so that they're aware that they've lost coverage.*
-
-The `Tbr:` and `No-Try:` are permitted and recommended so long as the only file changed is `tools/perf/expectations.config`.
-To submit a `Tbr:` change, you will need to add `Rubber Stamper (rubber-stamper@appspot.gserviceaccount.com)` as a reviewer to the patch and wait for the bot's approval.
-If your change touches real code rather than just that configuration data, you'll need a real review before submitting it.
-
-# How to disable a failing gtest perf test
-
-See generic Chromium build sheriff directions for how to disable a gtest [here](https://www.chromium.org/developers/tree-sheriffs/sheriff-details-chromium#TOC-How-do-I-disable-a-flaky-test-)
-To find the logs of the failing test from Milo, click into the
-isolated output directory of the shard that the failing test
-was run on and the benchmark log for the failing test should be
-there.
diff --git a/docs/speed/bot_health_sheriffing/how_to_follow_up_on_an_alert.md b/docs/speed/bot_health_sheriffing/how_to_follow_up_on_an_alert.md
deleted file mode 100644
index 1c36082..0000000
--- a/docs/speed/bot_health_sheriffing/how_to_follow_up_on_an_alert.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# How to follow up on an alert
-
-**Important**: When making changes to this document, also update duplicate files under the [internal docs](http://goto.google.com/perf-bot-health-sheriffs).
-
-[TOC]
-
-Skim the bug to understand where the last sheriff left things and where you should pick up.
-
-Generally, there are two reasons you might see an alert that a previous sheriff already addressed:
-
-1. The sheriff attempted to fix the alert, but the fix was unsuccessful.
-
-2. The sheriff was unable to fix the alert, but wanted a future sheriff to follow up with it.
-
-Several common scenarios for each, along with suggested responses, are listed below.
-
-## Playbook for common scenarios
-
-### Infra Labs took some action to fix a problem (e.g. restarting the device), but it didn't work.
-
-* Ping the bug and let them know that the device is still having issues. Usually, Infra>Labs knows the obvious next step. For example, if the previous solution was to restart the device, the next step may be to replace the device.
-
-* If neither you nor Infra > Labs knows what to do, escalate the issue [on chat](https://hangouts.google.com/group/gbJlAqcAxqfbHbXH3).
-
-### A previous sheriff identified that a problem was due to an infrastructure outage (e.g. the perf dashboard API is temporarily down) and expected the outage to be over by the time that the snooze expired, but it wasn't.
-
-* Escalate the issue to the team by adding the Speed > Benchmarking component and asking about the issue [on chat]((https://hangouts.google.com/group/gbJlAqcAxqfbHbXH3). Get an estimate of when the issue will be fixed and snooze the alert for that amount of time.
-
-### The bot health sheriff was waiting for a response or action from someone, but it never came.
-
-Escalate by (in increasing order of seriousness):
-
-* Disabling the failing benchmark or story if possible (i.e. it's a non-infra failure)
-
-* Pinging the tracking bug again.
-
-* Pinging the person offline.
-
-* Escalate by asking [on chat](https://hangouts.google.com/group/gbJlAqcAxqfbHbXH3) for help (likely from a Speed Ops manager).
-
-### Other
-
-Escalate by asking [on chat](https://hangouts.google.com/group/gbJlAqcAxqfbHbXH3) for help.
diff --git a/docs/speed/bot_health_sheriffing/how_to_handle_a_new_problem.md b/docs/speed/bot_health_sheriffing/how_to_handle_a_new_problem.md
deleted file mode 100644
index a6df2cc..0000000
--- a/docs/speed/bot_health_sheriffing/how_to_handle_a_new_problem.md
+++ /dev/null
@@ -1,90 +0,0 @@
-# How to handle an alert for a new problem
-
-**Important**: When making changes to this document, also update duplicate files under the [internal docs](http://goto.google.com/perf-bot-health-sheriffs).
-
-**Warning: this is the hardest part of being a sheriff.**
-
-Each bug may take 10 minutes to an hour to address, but there are usually a manageable number of new bugs per shift (5 on a good shift, 15 on a bad one).
-
-[TOC]
-
-## High-level steps
-
-1. Identify what type of failure the alert represents.
-
-2. File a bug to track the failure with sufficient details to help the correct owner to fix the failure.
-
-3. If possible, take some action to resolve the failure. If not, escalate the failure.
-
-For more specifics, see the playbook below.
-
-## Playbook for common scenarios
-
-Note that this list is not at all comprehensive. If you encounter an alert that you're unsure how to handle, escalate the issue by asking [on chat](https://hangouts.google.com/group/80kY8Glh1AqcbQP92).
-
-### One or more stories are failing
-
-**How to recognize: **Usually, Sheriff-o-matic will automatically recognize the story failures and will list them explicitly in the dashboard. For example:
-
-![Story failures in Sheriff-o-matic](images/som_story_failures.png)
-
-Sheriff-o-matic may occasionally fail to recognize a benchmark failure is due to story failures: because of this, it's worth double-checking [the test logs](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_access_test_logs.md#getting-a-list-of-stories-that-failed) for a general benchmark failure to verify that it's not due to a story failure.
-
-**What action to take: **File a P1 bug, CCing the benchmark owner(s) (found [here](https://docs.google.com/spreadsheets/d/1xaAo0_SU3iDfGdqDJZX_jRV0QtkufwHUKH3kQKF3YQs/edit#gid=0)).
-
-Add to the bug:
-
-* A link to the failing test's log
-
-* [Any relevant failure stack trace](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_access_test_logs.md#identifying-why-a-story-failed)
-
-* The revision range at which the story started failing (most easily found [through the flakiness dashboard](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/what_test_is_failing.md))
-
-Once the bug is filed, [disable the failing story](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_disable_a_story.md) and [launch a bisect over the revision range of the breakage](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_launch_a_functional_bisect.md), and snooze the alert for 24h to give the bisect time to finish. Once the story is disabled, lower its priority to P2 and assign the bug to the benchmark owner.
-
-**[Canonical example](https://bugs.cromium.org/p/chromium/issues/detail?id=809063)**
-
-### A bot is down
-
-**How to recognize: **Sheriff-o-matic will surface an alert similar to "build29-m1 is broken on chromium.perf/Android Nexus5X WebView Perf, affecting 28 tests". Any boxes around links in the alert will be purple, indicating an infrastructure failure. For example:
-
-![A bot down in Sheriff-o-matic](images/som_bot_down.png)
-
-**What action to take: **File a P1 bug and add the Infra>Labs component. For this type of bug, there's no need to CC the benchmark owner.
-
-Add to the bug:
-
-* The bot ID of the bot that's down (e.g. "build29-m1")
-
-* A clear request to Infra > Labs (e.g. "Labs team, could you please take a look at this bot to see why tests aren't running?")
-
-Once the bug is filed, [snooze the alert](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_snooze_an_alert.md) for 24 hours.
-
-Sometimes, Infra>Labs may request additional help in debugging the problem. For example, they may notice that this bot repeatedly goes down and may ask for your help in figuring out why. If this happens and you're unsure what next step to take, reach out for help [on chat](https://hangouts.google.com/group/80kY8Glh1AqcbQP92).
-
-**[Canonical example](https://bugs.chromium.org/p/chromium/issues/detail?id=821562)**
-
-### A bot is unreachable
-
-**How to recognize: **Sheriff-o-matic will surface an alert like "system_health.common_mobile is broken". When you open the test logs for the failing benchmark, they'll contain a message like "`DeviceUnreachableError: ZX1G422HK6`".
-
-**What action to take: **Take the same actions as "A bot is down", but include in the bug an excerpt of the test logs indicating the failure.
-
-**[Canonical example](https://bugs.chromium.org/p/chromium/issues/detail?id=739715)**
-
-### Benchmark harness failure
-
-**How to recognize: **Sheriff-o-matic will indicate that an entire benchmark is failing (i.e. no story failures will be listed). [The logs](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_access_test_logs.md) will contain a failure that's not attributable to any particular story. For example:
-
-![A general benchmark failure in Sheriff-o-matic](images/som_benchmark_failure.png)
-
-**What action to take: **File a P1 bug and add the Speed > Benchmarks component. If the failure is limited in scope to a single or a few benchmarks, CC the benchmark owner(s) (found [here](https://docs.google.com/spreadsheets/d/1xaAo0_SU3iDfGdqDJZX_jRV0QtkufwHUKH3kQKF3YQs/edit#gid=0)). If the failure is more widespread, there's no need to CC the benchmark owners.
-
-Add to the bug:
-
-* A link to the failing test's log
-
-* [Any relevant failure stack trace](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_access_test_logs.md#identifying-why-a-story-failed)
-
-* The revision range at which the story started failing. Because entire benchmark failures don't appear in the flakiness dashboard, you'll have to manually skim recent test run logs to identify when the failure started.
-
diff --git a/docs/speed/bot_health_sheriffing/how_to_launch_a_functional_bisect.md b/docs/speed/bot_health_sheriffing/how_to_launch_a_functional_bisect.md
deleted file mode 100644
index 8f0c6b78..0000000
--- a/docs/speed/bot_health_sheriffing/how_to_launch_a_functional_bisect.md
+++ /dev/null
@@ -1,110 +0,0 @@
-# How to launch a functional bisect and interpret its results
-
-**Important**: When making changes to this document, also update duplicate files under the [internal docs](http://goto.google.com/perf-bot-health-sheriffs).
-
-A functional bisect determines the revision at which a particular benchmark or story started failing more often. It does this by doing a binary search between a known good and known bad revision, running the test multiple times at each potential revision until it narrows down the culprit to a single revision.
-
-[TOC]
-
-## Identifying a good and bad revision
-
-The first step is to launching a bisect is to identify a revision at which you're confident the test was passing more often (the good revision) and a revision at which you're confident the test was failing more often (the bad revision).
-
-The easiest way to do this is to use the [flakiness dashboard](https://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=performance_test_suite) (basic instructions [here](https://docs.google.com/document/d/1YJ7TCXz8Oh0ai3fG9pkxmdoYkLOt0cuoRswuEzpovJ4/edit)). 
-
-The below screenshot shows the easiest possible case: it's clear when the test went from passing to failing. (Remember, runs are listed from most recent on the left to oldest on the right.)
-
-![A simple test failure on the flakiness dashboard](images/flakiness_simple.png)
-
-To get the good revision, just click on the good revision box and note the end of its revision range.
-
-![Finding the good build revision on the flakiness dashboard](images/flakiness_revision_good.png)
-
-To get the bad revision, do the same for the bad revision box.
-
-![Finding the bad build revision on the flakiness dashboard](images/flakiness_revision_bad.png)
-
-The flakier the test, the further you generally need to venture into the past "green zone" for your good revision or further into the newer "red zone" for your bad revision. Remember that it's better to pick a slightly wider, safer bisect range and have the bisect take slightly longer than to pick a too-narrow bisect range and have to rerun the entire bisect.
-
-For example, let's look at a little flakier failure:
-
-![A flaky test on the flakiness dashboard](images/flakiness_flaky_test.png)
-
-The first row here shows a story that went from being a little flaky to very flaky. To choose the "good" revision, we should go a little further back than the last one in the streak of good runs (in this case, labeled 292) because it's possible that that particular run was a lucky pass and the already-failing code had already been submitted, like the run labeled 246 a few runs later. Similarly, when choosing a "bad" revision, we should pick one a little more recent than the first in the streak of failures (in this case, labeled 226) because it's possible that the first failure was one of the rare flakes that were already happening.
-
-In this case, I might choose the following as safe good and bad revisions:
-
-![Finding the good and bad revisions for a flaky test on the flakiness dashboard](images/flakiness_flaky_test_good_bad_revisions.png)
-
-Now you can start the bisect.
-
-## Launching the bisect through the perf dashboard
-
-To launch a function bisect, open up the ["Browse Graphs" page on the Chrome Performance Dashboard](https://chromeperf.appspot.com/report).
-
-For "Test Suite", select the name of your benchmark.
-
-For "Bot", choose the platform on which the benchmark or story is failing. If it's failing on multiple platforms, you can choose any of them.
-
-For the first "Subtest" entry, choose any metric that would have been collected in the particular story that's failing. Do not choose benchmark_duration, which is unsuitable for bisects. You'll know that you picked a suitable metric when, at the end of this series of steps, you're shown a graph with recent data points for your story.
-
-For the next "Subtest" entry, pick the story that's failing. If all stories are failing, you can choose any story. Make sure to select the story name without the "_ref" suffix on it.
-
-Once you've done this, click "Add" to add a graph of this metric to the page. It should look like this.
-
-![A graph on the perf dashboard](images/perf_dashboard_graph.png)
-
-Click on any data point in that graph to bring up a dialog the click "Bisect" in that dialog.
-
-![Info about a revision on the perf dashboard](images/perf_dashboard_revision.png)
-
-You'll be shown a dialog box requesting
-
-- A tracking bug ID to which the bisect results will be posted (if you haven't created one yet, do so)
-- A start commit (your "good" revision from above)
-- An end commit (your "bad" revision from above)
-- A story filter (should be prepopulated)
-- A patch to apply to the entire job (can be left blank)
-- The bisect type (choose "Functional")
-
-![Start bisect dialog on the perf dashboard](images/perf_dashboard_start_bisect.png)
-
-Finally, click "Create" and your functional bisect should start. Pinpoint, the bisection service, will add a new comment on your bug with a link to track the bisect.
-
-When the bisect finishes, it will post a comment on your tracking bug.
-
-## Interpreting functional bisect results
-
-(Note that bot health sheriffs usually don't need to interpret bisect results and can therefore safely skip this section.)
-
-A Pinpoint result comment on a bug looks like this:
-
-![Pinpoint result comment on a bug](images/pinpoint_bug_comment.png)
-
-The bisect can have one of several results:
-
-* **Found a significant difference** indicates that the bisect successfully identified the CL causing the change in the failure rate. In this situation, it also assigns the bug associated with the bisect to the author of the culprit CL, making them responsible for reverting the CL.
-
-* **Could not reproduce** indicates that the test could not reproduce the problem that you were trying to find the culprit for.
-
-* **Failure** indicates that there was a bisect infrastructure failure. CC dtu@chromium.org on your bug to take a further look.
-
-To get more details click on the Pinpoint job link in the comment. You'll be taken to a page showing the results of the functional bisect.
-
-This page has several useful panels.
-
-The largest shows the failure rate of the story at various revisions:
-
-![Pinpoint pass rate graph](images/pinpoint_graph.png)
-
-In the example above, the story went from failing 0% of the time to failing about 70% of the time. Below this graph, the culprit CL identified by the bisect is listed if the bisect was successful.
-
-Clicking on a particular data point in this graph will change the three panels below it to show more information about the runs used to measure the failure rate at that revision.
-
-The most useful panel among these three for functional bisects is the "Test" panel. In this panel, green boxes indicate a successful run at the revision and red boxes indicate a failed run.
-
-![Pinpoint info for a given run](images/pinpoint_run_info.png)
-
-In the above example, 7/10 of the runs at the revision selected failed. Clicking on a particular run's box will provide a link to the logs for that run, which can be useful in understanding why a particular run failed.
-
-![Pinpoint link to test logs](images/pinpoint_run_info_logs.png)
diff --git a/docs/speed/bot_health_sheriffing/how_to_snooze_an_alert.md b/docs/speed/bot_health_sheriffing/how_to_snooze_an_alert.md
deleted file mode 100644
index 7161caa..0000000
--- a/docs/speed/bot_health_sheriffing/how_to_snooze_an_alert.md
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/bulk_ungroup.png b/docs/speed/bot_health_sheriffing/images/bulk_ungroup.png
deleted file mode 100644
index ee11b7e..0000000
--- a/docs/speed/bot_health_sheriffing/images/bulk_ungroup.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/change_group_name.png b/docs/speed/bot_health_sheriffing/images/change_group_name.png
deleted file mode 100644
index baa6e260..0000000
--- a/docs/speed/bot_health_sheriffing/images/change_group_name.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/flakiness_dashboard.png b/docs/speed/bot_health_sheriffing/images/flakiness_dashboard.png
deleted file mode 100644
index 1ad68b7..0000000
--- a/docs/speed/bot_health_sheriffing/images/flakiness_dashboard.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/flakiness_dashboard_new_recipe.png b/docs/speed/bot_health_sheriffing/images/flakiness_dashboard_new_recipe.png
deleted file mode 100644
index 6e2985e..0000000
--- a/docs/speed/bot_health_sheriffing/images/flakiness_dashboard_new_recipe.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/flakiness_flaky_test.png b/docs/speed/bot_health_sheriffing/images/flakiness_flaky_test.png
deleted file mode 100644
index 43a93141..0000000
--- a/docs/speed/bot_health_sheriffing/images/flakiness_flaky_test.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/flakiness_flaky_test_good_bad_revisions.png b/docs/speed/bot_health_sheriffing/images/flakiness_flaky_test_good_bad_revisions.png
deleted file mode 100644
index 580b7c7..0000000
--- a/docs/speed/bot_health_sheriffing/images/flakiness_flaky_test_good_bad_revisions.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/flakiness_revision_bad.png b/docs/speed/bot_health_sheriffing/images/flakiness_revision_bad.png
deleted file mode 100644
index 105d580..0000000
--- a/docs/speed/bot_health_sheriffing/images/flakiness_revision_bad.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/flakiness_revision_good.png b/docs/speed/bot_health_sheriffing/images/flakiness_revision_good.png
deleted file mode 100644
index 0ce07bb..0000000
--- a/docs/speed/bot_health_sheriffing/images/flakiness_revision_good.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/flakiness_simple.png b/docs/speed/bot_health_sheriffing/images/flakiness_simple.png
deleted file mode 100644
index 015c745..0000000
--- a/docs/speed/bot_health_sheriffing/images/flakiness_simple.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/group_all.png b/docs/speed/bot_health_sheriffing/images/group_all.png
deleted file mode 100644
index 135479c..0000000
--- a/docs/speed/bot_health_sheriffing/images/group_all.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/perf_dashboard_graph.png b/docs/speed/bot_health_sheriffing/images/perf_dashboard_graph.png
deleted file mode 100644
index 1fb583bf..0000000
--- a/docs/speed/bot_health_sheriffing/images/perf_dashboard_graph.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/perf_dashboard_revision.png b/docs/speed/bot_health_sheriffing/images/perf_dashboard_revision.png
deleted file mode 100644
index c958c6e..0000000
--- a/docs/speed/bot_health_sheriffing/images/perf_dashboard_revision.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/perf_dashboard_start_bisect.png b/docs/speed/bot_health_sheriffing/images/perf_dashboard_start_bisect.png
deleted file mode 100644
index cee6bed..0000000
--- a/docs/speed/bot_health_sheriffing/images/perf_dashboard_start_bisect.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/pinpoint_bug_comment.png b/docs/speed/bot_health_sheriffing/images/pinpoint_bug_comment.png
deleted file mode 100644
index 14e9d02..0000000
--- a/docs/speed/bot_health_sheriffing/images/pinpoint_bug_comment.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/pinpoint_graph.png b/docs/speed/bot_health_sheriffing/images/pinpoint_graph.png
deleted file mode 100644
index 3a58bfb..0000000
--- a/docs/speed/bot_health_sheriffing/images/pinpoint_graph.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/pinpoint_run_info.png b/docs/speed/bot_health_sheriffing/images/pinpoint_run_info.png
deleted file mode 100644
index 41a391b..0000000
--- a/docs/speed/bot_health_sheriffing/images/pinpoint_run_info.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/pinpoint_run_info_logs.png b/docs/speed/bot_health_sheriffing/images/pinpoint_run_info_logs.png
deleted file mode 100644
index 46d4723f..0000000
--- a/docs/speed/bot_health_sheriffing/images/pinpoint_run_info_logs.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/snooze_alert.png b/docs/speed/bot_health_sheriffing/images/snooze_alert.png
deleted file mode 100644
index 9a58e9e..0000000
--- a/docs/speed/bot_health_sheriffing/images/snooze_alert.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/snooze_alert_dialog.png b/docs/speed/bot_health_sheriffing/images/snooze_alert_dialog.png
deleted file mode 100644
index 991d212..0000000
--- a/docs/speed/bot_health_sheriffing/images/snooze_alert_dialog.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/som_benchmark_failure.png b/docs/speed/bot_health_sheriffing/images/som_benchmark_failure.png
deleted file mode 100644
index 3b166704..0000000
--- a/docs/speed/bot_health_sheriffing/images/som_benchmark_failure.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/som_bot_down.png b/docs/speed/bot_health_sheriffing/images/som_bot_down.png
deleted file mode 100644
index 61cd044..0000000
--- a/docs/speed/bot_health_sheriffing/images/som_bot_down.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/som_choose_build_number.png b/docs/speed/bot_health_sheriffing/images/som_choose_build_number.png
deleted file mode 100644
index b771464..0000000
--- a/docs/speed/bot_health_sheriffing/images/som_choose_build_number.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/som_choose_non_green_only.png b/docs/speed/bot_health_sheriffing/images/som_choose_non_green_only.png
deleted file mode 100644
index 868aa8a..0000000
--- a/docs/speed/bot_health_sheriffing/images/som_choose_non_green_only.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/som_examine.png b/docs/speed/bot_health_sheriffing/images/som_examine.png
deleted file mode 100644
index 5c7c8669..0000000
--- a/docs/speed/bot_health_sheriffing/images/som_examine.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/som_examine_choose_bot.png b/docs/speed/bot_health_sheriffing/images/som_examine_choose_bot.png
deleted file mode 100644
index 81681294..0000000
--- a/docs/speed/bot_health_sheriffing/images/som_examine_choose_bot.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/som_new_recipe_benchmark_logs_link.png b/docs/speed/bot_health_sheriffing/images/som_new_recipe_benchmark_logs_link.png
deleted file mode 100644
index a7b0997a..0000000
--- a/docs/speed/bot_health_sheriffing/images/som_new_recipe_benchmark_logs_link.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/som_new_recipe_choose_builder.png b/docs/speed/bot_health_sheriffing/images/som_new_recipe_choose_builder.png
deleted file mode 100644
index f8417c9f..0000000
--- a/docs/speed/bot_health_sheriffing/images/som_new_recipe_choose_builder.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/som_new_recipe_identify_failed_tests.png b/docs/speed/bot_health_sheriffing/images/som_new_recipe_identify_failed_tests.png
deleted file mode 100644
index 580e13f..0000000
--- a/docs/speed/bot_health_sheriffing/images/som_new_recipe_identify_failed_tests.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/som_new_recipe_story_log.png b/docs/speed/bot_health_sheriffing/images/som_new_recipe_story_log.png
deleted file mode 100644
index 575a426..0000000
--- a/docs/speed/bot_health_sheriffing/images/som_new_recipe_story_log.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/som_shard_0.png b/docs/speed/bot_health_sheriffing/images/som_shard_0.png
deleted file mode 100644
index 9afe178..0000000
--- a/docs/speed/bot_health_sheriffing/images/som_shard_0.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/som_story_failures.png b/docs/speed/bot_health_sheriffing/images/som_story_failures.png
deleted file mode 100644
index 04a5108..0000000
--- a/docs/speed/bot_health_sheriffing/images/som_story_failures.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/som_test_steps_shard_0.png b/docs/speed/bot_health_sheriffing/images/som_test_steps_shard_0.png
deleted file mode 100644
index 94b5b1e..0000000
--- a/docs/speed/bot_health_sheriffing/images/som_test_steps_shard_0.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/images/ungroup_all.png b/docs/speed/bot_health_sheriffing/images/ungroup_all.png
deleted file mode 100644
index 021dac6..0000000
--- a/docs/speed/bot_health_sheriffing/images/ungroup_all.png
+++ /dev/null
Binary files differ
diff --git a/docs/speed/bot_health_sheriffing/main.md b/docs/speed/bot_health_sheriffing/main.md
deleted file mode 100644
index 611b0a33..0000000
--- a/docs/speed/bot_health_sheriffing/main.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Perf Bot Health Sheriff
-
-The goal of the perf bot health sheriff rotation is to ensure that the benchmarks running on our perf waterfall continue to produce data and catch regressions quickly. This is also known as "keeping the bots green" and is primarily achieved by triaging incoming alerts. Note that a different rotation [Perf Regressions Sheriffs](../perf_regression_sheriffing.md) is focused on performance.
-
-For more information on Perf Bot Health Sheriffing, who's on rotation, how to handle specific
-tasks, and swap shifts, please see [Perf Bot Health
-Sheriffs](http://goto.google.com/perf-bot-health-sheriffs)
-
-## Quick links
-
-* [Perf Bot Health Sheriffing Overview and How-To](http://goto.google.com/perf-bot-health-sheriffs)
-* [How to determine what story is failing](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/what_test_is_failing.md)
-* [How to disable a story](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_disable_a_story.md)
-* [How to launch a functional bisect](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_launch_a_functional_bisect.md)
-* [How to snooze an alert](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_snooze_an_alert.md)
-* [How to access test logs](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_access_test_logs.md)
-* [How to handle a new problem](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_handle_a_new_problem.md)
-* [How to follow up on an alert](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_follow_up_on_an_alert.md)
-* [How to address duplicate alerts](https://chromium.googlesource.com/chromium/src/+/main/docs/speed/bot_health_sheriffing/how_to_address_duplicate_alerts.md)
diff --git a/docs/speed/bot_health_sheriffing/what_test_is_failing.md b/docs/speed/bot_health_sheriffing/what_test_is_failing.md
deleted file mode 100644
index aee53ef4..0000000
--- a/docs/speed/bot_health_sheriffing/what_test_is_failing.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# How to determine what story is failing
-
-**Important**: When making changes to this document, also update duplicate files under the [internal docs](http://goto.google.com/perf-bot-health-sheriffs).
-
-The first step in addressing a test failure is to identify what stories are failing.
-
-The easiest way to identify these is to use the [Flakiness dashboard](https://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=blink_perf.layout), which is a high-level dashboard showing test passes and failures. (Sheriff-o-matic tries to automatically identify the failing stories, but is often incorrect and therefore can't be trusted.) Open up the flakiness dashboard and select the benchmark and platform in question (pulled from the SOM alert) from the "Test type" and "Builder" dropdowns. You should see a view like this:
-
-![The flakiness dashboard](images/flakiness_dashboard.png)
-
-If the bot is running the new performance_test_suite than all stories will be
-listed under test type 'performance_test_suite' and the associated builder.
-
-![The flakiness dashboard new recipe](images/flakiness_dashboard_new_recipe.png)
-
-Each row represents a particular story and each column represents a recent run, listed with the most recent run on the left. If the cell is green, then the story passed; if it's red, then it failed. Only stories that have failed at least once will be listed. You can click on a particular cell to see more information like revision ranges (useful for launching bisects) and logs.
-
-With this view, you can easily see how often a given story is failing. Usually, any story that appears to be failing in over 20% of recent runs should be disabled.
-
-You can also show older runs by clicking the "Use all recorded runs" checkbox, which can be useful if a test has been failing for a long time.
-
diff --git a/docs/speed/metrics_changelog/2021_11_cls.md b/docs/speed/metrics_changelog/2021_11_cls.md
new file mode 100644
index 0000000..ccb2c7a9
--- /dev/null
+++ b/docs/speed/metrics_changelog/2021_11_cls.md
@@ -0,0 +1,21 @@
+
+# Cumulative Layout Shift Changes in Chrome 98
+
+### Record CLS value at the first OnHidden in addition to tab close in UKM
+
+The cumulative layout shift score will be recorded the first time a page moves
+from the foreground to the background, which can fill in for the layout shift
+values that are not able to be recorded at tab close, the current CLS reporting
+point. [Source code for this change]
+(https://chromium-review.googlesource.com/c/chromium/src/+/3251379).
+
+## How does this affect a site's metrics?
+
+There should be an increase of reporting the cumulative layout shift value on
+desktop sites which have FCP values.
+
+## When were users affected?
+
+The updated metric was added in Chrome 98 which we released in the week of
+February 1, 2022. The CrUX report will include this update starting with CrUX
+BigQuery 202207 (August 9, 2022).
\ No newline at end of file
diff --git a/docs/speed/metrics_changelog/cls.md b/docs/speed/metrics_changelog/cls.md
index 1209373..d9e5c68 100644
--- a/docs/speed/metrics_changelog/cls.md
+++ b/docs/speed/metrics_changelog/cls.md
@@ -2,6 +2,8 @@
 
 This is a list of changes to [Cumulative Layout Shift](https://web.dev/cls).
 
+* Chrome 98
+  * Metric definition improvement: [Record CLS value at the first OnHidden in addition to tab close in UKM](2021_11_cls.md)
 * Chrome 93
   * Metric definition improvement: [Bug fix involving scroll anchoring](2021_06_cls_2.md)
   * Metric definition improvement: [Ignore layout shift while dragging or resizing elements with a mouse](2021_06_cls_2.md)
diff --git a/docs/speed/perf_bot_sheriffing.md b/docs/speed/perf_bot_sheriffing.md
deleted file mode 100644
index 97cd343..0000000
--- a/docs/speed/perf_bot_sheriffing.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Perf Bot Sheriffing
-
-# A NEW VERSION OF THIS DOC IS AVAILABLE [HERE](bot_health_sheriffing/main.md)
diff --git a/docs/speed/perf_regression_sheriffing.md b/docs/speed/perf_regression_sheriffing.md
index a06fbda..c83d5be 100644
--- a/docs/speed/perf_regression_sheriffing.md
+++ b/docs/speed/perf_regression_sheriffing.md
@@ -2,7 +2,7 @@
 
 The perf regression sheriff tracks performance regressions in Chrome's
 continuous integration tests. Note that a [different
-rotation](perf_bot_sheriffing.md) has been created to ensure the builds and
+rotation](http://goto.google.com/perf-bot-health-sheriffs) has been created to ensure the builds and
 tests stay green, so the perf regression sheriff role is now entirely focused
 on performance.
 
diff --git a/docs/speed/perf_waterfall.md b/docs/speed/perf_waterfall.md
index 3a7e5e53..aa3a433 100644
--- a/docs/speed/perf_waterfall.md
+++ b/docs/speed/perf_waterfall.md
@@ -7,7 +7,7 @@
 Mac, and Linux hardware; see [list of platforms](perf_lab_platforms.md).
 Results are reported to the
 [Performance Dashboard](https://chromeperf.appspot.com/) for analysis. The
-[Perfbot Health Sheriffing Rotation](bot_health_sheriffing/main.md) ensures that the benchmarks stay green. The [Perf Sheriff Rotation](perf_regression_sheriffing.md) ensures that any regressions detected by those benchmarks are addressed quickly. Together, these rotations maintain
+[Perfbot Health Sheriffing Rotation](http://goto.google.com/perf-bot-health-sheriffs) ensures that the benchmarks stay green. The [Perf Sheriff Rotation](perf_regression_sheriffing.md) ensures that any regressions detected by those benchmarks are addressed quickly. Together, these rotations maintain
 [Chrome's Core Principles](https://www.chromium.org/developers/core-principles)
 of speed:
 
@@ -52,7 +52,7 @@
 ## Links
 
   * [Perf Sheriff Rotation](perf_regression_sheriffing.md)
-  * [Perfbot Health Sheriffing Rotation](bot_health_sheriffing/main.md)
+  * [Perfbot Health Sheriffing Rotation](http://goto.google.com/perf-bot-health-sheriffs)
   * [How to SSH to Bots in Lab](https://chrome-internal.googlesource.com/infra/infra_internal/+/main/doc/ssh.md)
     (googlers only!)
   * TODO: Page on how to repro failures locally
diff --git a/docs/static_initializers.md b/docs/static_initializers.md
index 4fe5e5d..19c038fb 100644
--- a/docs/static_initializers.md
+++ b/docs/static_initializers.md
@@ -13,7 +13,7 @@
 * For Linux and Mac:
   * The expected count is stored in [//testing/scripts/check_static_initializers.py](https://source.chromium.org/chromium/chromium/src/+/main:testing/scripts/check_static_initializers.py)
 * For Android:
-  * The expected count is stored in the build target [//chrome/android:monochrome_static_initializers](https://cs.chromium.org/chromium/src/chrome/android/BUILD.gn)
+  * The expected count is stored in [//chrome/android/static_initializers.gni](https://cs.chromium.org/chromium/src/chrome/android/static_initializers.gni)
 
 ## Removing Static Initializers
 
diff --git a/extensions/browser/extension_function_histogram_value.h b/extensions/browser/extension_function_histogram_value.h
index 1b10c9c..62f6547 100644
--- a/extensions/browser/extension_function_histogram_value.h
+++ b/extensions/browser/extension_function_histogram_value.h
@@ -1755,6 +1755,7 @@
   METRICSPRIVATE_RECORDSPARSEVALUEWITHPERSISTENTHASH = 1692,
   METRICSPRIVATE_RECORDSPARSEVALUEWITHHASHMETRICNAME = 1693,
   FILEMANAGERPRIVATE_SHOWDLPRESTRICTIONDETAILS = 1694,
+  ACCESSIBILITY_PRIVATE_SILENCESPOKENFEEDBACK = 1695,
   // Last entry: Add new entries above, then run:
   // tools/metrics/histograms/update_extension_histograms.py
   ENUM_BOUNDARY
diff --git a/extensions/common/message_bundle.cc b/extensions/common/message_bundle.cc
index 995489fc..b76864b 100644
--- a/extensions/common/message_bundle.cc
+++ b/extensions/common/message_bundle.cc
@@ -8,6 +8,7 @@
 #include <string>
 #include <vector>
 
+#include "base/containers/adapters.h"
 #include "base/containers/contains.h"
 #include "base/i18n/rtl.h"
 #include "base/lazy_instance.h"
@@ -68,8 +69,7 @@
                          std::string* error) {
   dictionary_.clear();
 
-  for (auto it = locale_catalogs.rbegin(); it != locale_catalogs.rend(); ++it) {
-    base::DictionaryValue* catalog = (*it).get();
+  for (const auto& catalog : base::Reversed(locale_catalogs)) {
     for (base::DictionaryValue::Iterator message_it(*catalog);
          !message_it.IsAtEnd(); message_it.Advance()) {
       std::string key(base::ToLowerASCII(message_it.key()));
diff --git a/extensions/renderer/bindings/api_invocation_errors.cc b/extensions/renderer/bindings/api_invocation_errors.cc
index 51d1934..225a118 100644
--- a/extensions/renderer/bindings/api_invocation_errors.cc
+++ b/extensions/renderer/bindings/api_invocation_errors.cc
@@ -67,6 +67,10 @@
   return base::StringPrintf("Value must be at most %d.", maximum);
 }
 
+std::string NumberIsNaNOrInfinity() {
+  return base::StringPrintf("Value must not be NaN or Infinity.");
+}
+
 std::string InvalidType(const char* expected_type, const char* actual_type) {
   return base::StringPrintf("Invalid type: expected %s, found %s.",
                             expected_type, actual_type);
diff --git a/extensions/renderer/bindings/api_invocation_errors.h b/extensions/renderer/bindings/api_invocation_errors.h
index 4ba8de84..0643e65 100644
--- a/extensions/renderer/bindings/api_invocation_errors.h
+++ b/extensions/renderer/bindings/api_invocation_errors.h
@@ -39,6 +39,7 @@
 std::string TooManyStringChars(int maximum, int found);
 std::string NumberTooSmall(int minimum);
 std::string NumberTooLarge(int maximum);
+std::string NumberIsNaNOrInfinity();
 std::string InvalidType(const char* expected_type, const char* actual_type);
 std::string NotAnInstance(const char* instance_type);
 std::string InvalidChoice();
diff --git a/extensions/renderer/bindings/argument_spec.cc b/extensions/renderer/bindings/argument_spec.cc
index ed39dd2a..ba6c258e 100644
--- a/extensions/renderer/bindings/argument_spec.cc
+++ b/extensions/renderer/bindings/argument_spec.cc
@@ -407,6 +407,10 @@
     case ArgumentType::DOUBLE: {
       DCHECK(value->IsNumber());
       double double_val = value.As<v8::Number>()->Value();
+      if (std::isnan(double_val) || std::isinf(double_val)) {
+        *error = api_errors::NumberIsNaNOrInfinity();
+        return false;
+      }
       if (!CheckFundamentalBounds(double_val, minimum_, maximum_, error))
         return false;
       if (out_value)
diff --git a/extensions/renderer/bindings/argument_spec_unittest.cc b/extensions/renderer/bindings/argument_spec_unittest.cc
index 88cd146..a142f94 100644
--- a/extensions/renderer/bindings/argument_spec_unittest.cc
+++ b/extensions/renderer/bindings/argument_spec_unittest.cc
@@ -32,6 +32,7 @@
 using api_errors::kTypeString;
 using api_errors::kTypeUndefined;
 using api_errors::MissingRequiredProperty;
+using api_errors::NumberIsNaNOrInfinity;
 
 using V8Validator = base::OnceCallback<void(v8::Local<v8::Value>)>;
 
@@ -209,6 +210,8 @@
     ExpectFailure(spec, "'1'", InvalidType(kTypeInteger, kTypeString));
     ExpectFailure(spec, "({})", InvalidType(kTypeInteger, kTypeObject));
     ExpectFailure(spec, "[1]", InvalidType(kTypeInteger, kTypeList));
+    ExpectFailure(spec, "NaN", InvalidType(kTypeInteger, kTypeDouble));
+    ExpectFailure(spec, "Infinity", InvalidType(kTypeInteger, kTypeDouble));
   }
 
   {
@@ -225,6 +228,8 @@
     ExpectFailure(spec, "'1.1'", InvalidType(kTypeDouble, kTypeString));
     ExpectFailure(spec, "({})", InvalidType(kTypeDouble, kTypeObject));
     ExpectFailure(spec, "[1.1]", InvalidType(kTypeDouble, kTypeList));
+    ExpectFailure(spec, "NaN", NumberIsNaNOrInfinity());
+    ExpectFailure(spec, "Infinity", NumberIsNaNOrInfinity());
   }
 
   {
diff --git a/extensions/renderer/one_time_message_handler.cc b/extensions/renderer/one_time_message_handler.cc
index 9f5a422..2cacdfe 100644
--- a/extensions/renderer/one_time_message_handler.cc
+++ b/extensions/renderer/one_time_message_handler.cc
@@ -9,6 +9,7 @@
 #include "base/bind.h"
 #include "base/callback.h"
 #include "base/containers/contains.h"
+#include "base/containers/cxx20_erase.h"
 #include "base/supports_user_data.h"
 #include "content/public/renderer/render_frame.h"
 #include "extensions/common/api/messaging/message.h"
@@ -275,6 +276,17 @@
              : DisconnectReceiver(script_context, port_id);
 }
 
+int OneTimeMessageHandler::GetPendingCallbackCountForTest(
+    ScriptContext* script_context) {
+  v8::Isolate* isolate = script_context->isolate();
+  v8::HandleScope handle_scope(isolate);
+
+  OneTimeMessageContextData* data =
+      GetPerContextData<OneTimeMessageContextData>(script_context->v8_context(),
+                                                   kDontCreateIfMissing);
+  return data ? data->pending_callbacks.size() : 0;
+}
+
 bool OneTimeMessageHandler::DeliverMessageToReceiver(
     ScriptContext* script_context,
     const Message& message,
@@ -321,8 +333,8 @@
   new GCCallback(
       script_context, response_function,
       base::BindOnce(&OneTimeMessageHandler::OnResponseCallbackCollected,
-                     weak_factory_.GetWeakPtr(), script_context,
-                     target_port_id),
+                     weak_factory_.GetWeakPtr(), script_context, target_port_id,
+                     callback.get()),
       base::OnceClosure());
 
   v8::HandleScope handle_scope(isolate);
@@ -516,7 +528,8 @@
 
 void OneTimeMessageHandler::OnResponseCallbackCollected(
     ScriptContext* script_context,
-    const PortId& port_id) {
+    const PortId& port_id,
+    void* raw_callback) {
   // Note: we know |script_context| is still valid because the GC callback won't
   // be called after context invalidation.
   v8::HandleScope handle_scope(script_context->isolate());
@@ -538,6 +551,14 @@
   int routing_id = iter->second.routing_id;
   data->receivers.erase(iter);
 
+  // Since there is no way to call the callback anymore, we can remove it from
+  // the pending callbacks.
+  base::EraseIf(
+      data->pending_callbacks,
+      [raw_callback](const std::unique_ptr<OneTimeMessageCallback>& callback) {
+        return callback.get() == raw_callback;
+      });
+
   // Close the message port. There's no way to send a reply anymore. Don't
   // close the channel because another listener may reply.
   IPCMessageSender* ipc_sender = bindings_system_->GetIPCMessageSender();
diff --git a/extensions/renderer/one_time_message_handler.h b/extensions/renderer/one_time_message_handler.h
index a3f4d86..e110b53 100644
--- a/extensions/renderer/one_time_message_handler.h
+++ b/extensions/renderer/one_time_message_handler.h
@@ -100,6 +100,10 @@
                   const PortId& port_id,
                   const std::string& error_message);
 
+  // Gets the number of pending callbacks on the associated per context data for
+  // testing purposes.
+  int GetPendingCallbackCountForTest(ScriptContext* script_context);
+
  private:
   // Helper methods to deliver a message to an opener/receiver.
   bool DeliverMessageToReceiver(ScriptContext* script_context,
@@ -119,9 +123,14 @@
   void OnOneTimeMessageResponse(const PortId& port_id,
                                 gin::Arguments* arguments);
 
-  // Triggered when the callback to reply is garbage collected.
+  // Triggered when the callback for replying is garbage collected. Used to
+  // clean up data that was stored for the callback and for closing the
+  // associated message port. |raw_callback| is a raw pointer to the associated
+  // OneTimeMessageCallback, needed for finding and erasing it from the
+  // OneTimeMessageContextData.
   void OnResponseCallbackCollected(ScriptContext* script_context,
-                                   const PortId& port_id);
+                                   const PortId& port_id,
+                                   void* raw_callback);
 
   // Called when the messaging event has been dispatched with the result of the
   // listeners.
diff --git a/extensions/renderer/one_time_message_handler_unittest.cc b/extensions/renderer/one_time_message_handler_unittest.cc
index 0e49a25..b872e54 100644
--- a/extensions/renderer/one_time_message_handler_unittest.cc
+++ b/extensions/renderer/one_time_message_handler_unittest.cc
@@ -561,14 +561,18 @@
               SendCloseMessagePort(MSG_ROUTING_NONE, port_id, false));
   message_handler()->DeliverMessage(script_context(), message, port_id);
   EXPECT_TRUE(message_handler()->HasPort(script_context(), port_id));
+  EXPECT_EQ(
+      1, message_handler()->GetPendingCallbackCountForTest(script_context()));
 
   // The listener didn't retain the reply callback, so it should be garbage
-  // collected.
+  // collected and the related pending callback should have been cleared.
   RunGarbageCollection();
   base::RunLoop().RunUntilIdle();
 
   ::testing::Mock::VerifyAndClearExpectations(ipc_message_sender());
   EXPECT_FALSE(message_handler()->HasPort(script_context(), port_id));
+  EXPECT_EQ(
+      0, message_handler()->GetPendingCallbackCountForTest(script_context()));
 }
 
 // runtime.onMessage requires that a listener return `true` if they intend to
diff --git a/fuchsia_web/runners/BUILD.gn b/fuchsia_web/runners/BUILD.gn
index 0fcfda57..deb2982 100644
--- a/fuchsia_web/runners/BUILD.gn
+++ b/fuchsia_web/runners/BUILD.gn
@@ -321,11 +321,12 @@
     "//testing/gtest",
     "//ui/ozone",
   ]
-  use_cfv2 = false
+  use_cfv1 = false
+  test_runner_shard =
+      "//build/config/fuchsia/test/elf_test_ambient_exec_runner.shard.test-cml"
   additional_manifest_fragments = [
-    "//build/config/fuchsia/test/jit_capabilities.test-cmx",
-    "//build/config/fuchsia/test/network_capabilities.test-cmx",
-    "//build/config/fuchsia/test/vulkan_capabilities.test-cmx",
+    "//build/config/fuchsia/test/network.shard.test-cml",
+    "//third_party/fuchsia-sdk/sdk/pkg/vulkan/client.shard.cml",
   ]
 }
 
diff --git a/fuchsia_web/webengine/browser/web_engine_config.cc b/fuchsia_web/webengine/browser/web_engine_config.cc
index 3439d4a0..1e4e016 100644
--- a/fuchsia_web/webengine/browser/web_engine_config.cc
+++ b/fuchsia_web/webengine/browser/web_engine_config.cc
@@ -94,27 +94,34 @@
       continue;
     }
 
-    if (arg.second.is_none()) {
-      DCHECK(!command_line->HasSwitch(arg.first));
-      command_line->AppendSwitch(arg.first);
-    } else if (arg.second.is_string()) {
-      if (arg.first == switches::kEnableFeatures ||
-          arg.first == switches::kDisableFeatures) {
-        AppendToSwitch(arg.first, arg.second.GetString(), command_line);
-      } else {
-        DCHECK(!command_line->HasSwitch(arg.first)) << " " << arg.first;
-        command_line->AppendSwitchNative(arg.first, arg.second.GetString());
+    if (arg.first == switches::kEnableFeatures ||
+        arg.first == switches::kDisableFeatures) {
+      if (!arg.second.is_string()) {
+        LOG(ERROR) << "Config command-line arg must be a string: " << arg.first;
+        return false;
       }
-    } else {
-      LOG(ERROR) << "Config command-line arg must be a string: " << arg.first;
-      return false;
+      // Merge the features.
+      AppendToSwitch(arg.first, arg.second.GetString(), command_line);
+      continue;
     }
 
-    // TODO(https://crbug.com/1023012): enable-low-end-device-mode currently
-    // fakes 512MB total physical memory, which triggers RGB4444 textures,
-    // which we don't yet support.
-    if (arg.first == switches::kEnableLowEndDeviceMode)
-      command_line->AppendSwitch(blink::switches::kDisableRGBA4444Textures);
+    if (command_line->HasSwitch(arg.first)) {
+      // Use the existing command line value rather than override it.
+      continue;
+    }
+
+    if (arg.second.is_none()) {
+      command_line->AppendSwitch(arg.first);
+      continue;
+    }
+
+    if (arg.second.is_string()) {
+      command_line->AppendSwitchNative(arg.first, arg.second.GetString());
+      continue;
+    }
+
+    LOG(ERROR) << "Config command-line arg must be a string: " << arg.first;
+    return false;
   }
 
   return true;
@@ -125,7 +132,7 @@
 bool UpdateCommandLineFromConfigFile(const base::Value& config,
                                      base::CommandLine* command_line) {
   // The FieldTrialList should be initialized only after config is loaded.
-  DCHECK(base::FieldTrialList::GetInstance());
+  CHECK(!base::FieldTrialList::GetInstance());
 
   if (!AddCommandLineArgsFromConfig(config, command_line))
     return false;
diff --git a/fuchsia_web/webengine/browser/web_engine_config_unittest.cc b/fuchsia_web/webengine/browser/web_engine_config_unittest.cc
index 72354fa8..e8d67ab 100644
--- a/fuchsia_web/webengine/browser/web_engine_config_unittest.cc
+++ b/fuchsia_web/webengine/browser/web_engine_config_unittest.cc
@@ -5,6 +5,7 @@
 #include "fuchsia_web/webengine/browser/web_engine_config.h"
 
 #include "base/command_line.h"
+#include "base/metrics/field_trial.h"
 #include "base/values.h"
 #include "fuchsia_web/webengine/switches.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -24,7 +25,28 @@
 
 }  // namespace
 
-TEST(WebEngineConfig, CommandLineArgs) {
+class WebEngineConfigTest : public testing::Test {
+ public:
+  WebEngineConfigTest() = default;
+  ~WebEngineConfigTest() override = default;
+
+  WebEngineConfigTest(const WebEngineConfigTest&) = delete;
+  WebEngineConfigTest& operator=(const WebEngineConfigTest&) = delete;
+
+  void SetUp() override {
+    backup_field_trial_list_ = base::FieldTrialList::BackupInstanceForTesting();
+  }
+
+  void TearDown() override {
+    base::FieldTrialList::RestoreInstanceForTesting(backup_field_trial_list_);
+    backup_field_trial_list_ = nullptr;
+  }
+
+ private:
+  base::FieldTrialList* backup_field_trial_list_ = nullptr;
+};
+
+TEST_F(WebEngineConfigTest, CommandLineArgs) {
   // Specify a configuration that sets valid args with valid strings.
   auto config = CreateConfigWithSwitchValue("renderer-process-limit", "0");
   base::CommandLine command(base::CommandLine::NO_PROGRAM);
@@ -32,7 +54,7 @@
   EXPECT_EQ(command.GetSwitchValueASCII("renderer-process-limit"), "0");
 }
 
-TEST(WebEngineConfig, DisallowedCommandLineArgs) {
+TEST_F(WebEngineConfigTest, DisallowedCommandLineArgs) {
   // Specify a configuration that sets a disallowed command-line argument.
   auto config = CreateConfigWithSwitchValue("kittens-are-nice", "0");
   base::CommandLine command(base::CommandLine::NO_PROGRAM);
@@ -40,7 +62,7 @@
   EXPECT_FALSE(command.HasSwitch("kittens-are-nice"));
 }
 
-TEST(WebEngineConfig, WronglyTypedCommandLineArgs) {
+TEST_F(WebEngineConfigTest, WronglyTypedCommandLineArgs) {
   base::Value::Dict config;
 
   // Specify a configuration that sets valid args with invalid value.
@@ -53,7 +75,7 @@
                                                &command));
 }
 
-TEST(WebEngineConfig, WithGoogleApiKeyValue) {
+TEST_F(WebEngineConfigTest, WithGoogleApiKeyValue) {
   constexpr char kDummyApiKey[] = "apikey123";
   auto config = CreateConfigWithSwitchValue("google-api-key", kDummyApiKey);
   base::CommandLine command(base::CommandLine::NO_PROGRAM);
diff --git a/gpu/command_buffer/service/BUILD.gn b/gpu/command_buffer/service/BUILD.gn
index 4f83999..66d7361 100644
--- a/gpu/command_buffer/service/BUILD.gn
+++ b/gpu/command_buffer/service/BUILD.gn
@@ -557,6 +557,8 @@
       "mock_abstract_texture.h",
       "mock_texture_owner.cc",
       "mock_texture_owner.h",
+      "ref_counted_lock_for_test.cc",
+      "ref_counted_lock_for_test.h",
     ]
     deps = [
       ":gles2",
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 357d1c9..bdb7b2c9 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -9784,7 +9784,6 @@
 
 void GLES2DecoderImpl::DoLinkProgram(GLuint program_id) {
   TRACE_EVENT0("gpu", "GLES2DecoderImpl::DoLinkProgram");
-  SCOPED_UMA_HISTOGRAM_TIMER("GPU.DoLinkProgramTime");
   Program* program = GetProgramInfoNotShader(
       program_id, "glLinkProgram");
   if (!program) {
diff --git a/gpu/command_buffer/service/image_reader_gl_owner.h b/gpu/command_buffer/service/image_reader_gl_owner.h
index f6cbc4d..992fcb5 100644
--- a/gpu/command_buffer/service/image_reader_gl_owner.h
+++ b/gpu/command_buffer/service/image_reader_gl_owner.h
@@ -93,7 +93,7 @@
   ImageReaderGLOwner(std::unique_ptr<gles2::AbstractTexture> texture,
                      Mode secure_mode,
                      scoped_refptr<SharedContextState> context_state,
-                     scoped_refptr<RefCountedLock> drdc_lock = nullptr);
+                     scoped_refptr<RefCountedLock> drdc_lock);
   ~ImageReaderGLOwner() override;
 
   // Registers and releases a ref on the image. Once the ref-count for an image
diff --git a/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc b/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc
index fc6265716..e807df01 100644
--- a/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc
+++ b/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc
@@ -15,6 +15,7 @@
 #include "gpu/command_buffer/service/feature_info.h"
 #include "gpu/command_buffer/service/image_reader_gl_owner.h"
 #include "gpu/command_buffer/service/mock_abstract_texture.h"
+#include "gpu/command_buffer/service/ref_counted_lock_for_test.h"
 #include "gpu/config/gpu_driver_bug_workarounds.h"
 #include "gpu/config/gpu_feature_info.h"
 #include "gpu/config/gpu_finch_features.h"
@@ -69,8 +70,11 @@
     std::unique_ptr<MockAbstractTexture> texture =
         std::make_unique<MockAbstractTexture>(texture_id_);
     abstract_texture_ = texture->AsWeakPtr();
-    image_reader_ = TextureOwner::Create(std::move(texture), SecureMode(),
-                                         std::move(context_state));
+    image_reader_ = TextureOwner::Create(
+        std::move(texture), SecureMode(), std::move(context_state),
+        features::NeedThreadSafeAndroidMedia()
+            ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+            : nullptr);
   }
 
   virtual TextureOwner::Mode SecureMode() {
diff --git a/gpu/command_buffer/service/ref_counted_lock.cc b/gpu/command_buffer/service/ref_counted_lock.cc
index 4014f84..0412ace 100644
--- a/gpu/command_buffer/service/ref_counted_lock.cc
+++ b/gpu/command_buffer/service/ref_counted_lock.cc
@@ -8,6 +8,18 @@
 
 namespace gpu {
 
+RefCountedLock::RefCountedLock() = default;
+
+RefCountedLock::~RefCountedLock() = default;
+
+base::Lock* RefCountedLock::GetDrDcLockPtr() {
+  return &lock_;
+}
+
+void RefCountedLock::AssertAcquired() {
+  lock_.AssertAcquired();
+}
+
 RefCountedLockHelperDrDc::RefCountedLockHelperDrDc(
     scoped_refptr<RefCountedLock> lock)
     : lock_(std::move(lock)) {
diff --git a/gpu/command_buffer/service/ref_counted_lock.h b/gpu/command_buffer/service/ref_counted_lock.h
index b9452a3..24fb1eb 100644
--- a/gpu/command_buffer/service/ref_counted_lock.h
+++ b/gpu/command_buffer/service/ref_counted_lock.h
@@ -15,18 +15,20 @@
 class GPU_GLES2_EXPORT RefCountedLock
     : public base::RefCountedThreadSafe<RefCountedLock> {
  public:
-  RefCountedLock() = default;
+  RefCountedLock();
 
   // Disallow copy and assign.
   RefCountedLock(const RefCountedLock&) = delete;
   RefCountedLock& operator=(const RefCountedLock&) = delete;
 
-  base::Lock* GetDrDcLockPtr() { return &lock_; }
-  void AssertAcquired() { lock_.AssertAcquired(); }
+  virtual base::Lock* GetDrDcLockPtr();
+  virtual void AssertAcquired();
+
+ protected:
+  virtual ~RefCountedLock();
 
  private:
   friend class base::RefCountedThreadSafe<RefCountedLock>;
-  ~RefCountedLock() = default;
 
   base::Lock lock_;
 };
diff --git a/gpu/command_buffer/service/ref_counted_lock_for_test.cc b/gpu/command_buffer/service/ref_counted_lock_for_test.cc
new file mode 100644
index 0000000..00503ea
--- /dev/null
+++ b/gpu/command_buffer/service/ref_counted_lock_for_test.cc
@@ -0,0 +1,19 @@
+// Copyright 2022 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 "gpu/command_buffer/service/ref_counted_lock_for_test.h"
+
+namespace gpu {
+
+RefCountedLockForTest::RefCountedLockForTest() = default;
+
+RefCountedLockForTest::~RefCountedLockForTest() = default;
+
+base::Lock* RefCountedLockForTest::GetDrDcLockPtr() {
+  return nullptr;
+}
+
+void RefCountedLockForTest::AssertAcquired() {}
+
+}  // namespace gpu
diff --git a/gpu/command_buffer/service/ref_counted_lock_for_test.h b/gpu/command_buffer/service/ref_counted_lock_for_test.h
new file mode 100644
index 0000000..140524ff
--- /dev/null
+++ b/gpu/command_buffer/service/ref_counted_lock_for_test.h
@@ -0,0 +1,30 @@
+// Copyright 2022 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 GPU_COMMAND_BUFFER_SERVICE_REF_COUNTED_LOCK_FOR_TEST_H_
+#define GPU_COMMAND_BUFFER_SERVICE_REF_COUNTED_LOCK_FOR_TEST_H_
+
+#include "gpu/command_buffer/service/ref_counted_lock.h"
+#include "gpu/gpu_gles2_export.h"
+
+namespace gpu {
+
+class GPU_GLES2_EXPORT RefCountedLockForTest : public RefCountedLock {
+ public:
+  RefCountedLockForTest();
+
+  // Disallow copy and assign.
+  RefCountedLockForTest(const RefCountedLockForTest&) = delete;
+  RefCountedLockForTest& operator=(const RefCountedLockForTest&) = delete;
+
+  base::Lock* GetDrDcLockPtr() override;
+  void AssertAcquired() override;
+
+ protected:
+  ~RefCountedLockForTest() override;
+};
+
+}  // namespace gpu
+
+#endif  // GPU_COMMAND_BUFFER_SERVICE_REF_COUNTED_LOCK_FOR_TEST_H_
diff --git a/gpu/command_buffer/service/surface_texture_gl_owner.cc b/gpu/command_buffer/service/surface_texture_gl_owner.cc
index 8e0bc3a..fe1d316 100644
--- a/gpu/command_buffer/service/surface_texture_gl_owner.cc
+++ b/gpu/command_buffer/service/surface_texture_gl_owner.cc
@@ -58,7 +58,6 @@
       surface_(gl::GLSurface::GetCurrent()) {
   DCHECK(context_);
   DCHECK(surface_);
-  DCHECK(!features::NeedThreadSafeAndroidMedia());
 }
 
 SurfaceTextureGLOwner::~SurfaceTextureGLOwner() {
diff --git a/gpu/command_buffer/service/surface_texture_gl_owner_unittest.cc b/gpu/command_buffer/service/surface_texture_gl_owner_unittest.cc
index f2283b4..5024d15 100644
--- a/gpu/command_buffer/service/surface_texture_gl_owner_unittest.cc
+++ b/gpu/command_buffer/service/surface_texture_gl_owner_unittest.cc
@@ -72,7 +72,7 @@
     abstract_texture_ = texture->AsWeakPtr();
     surface_texture_ = SurfaceTextureGLOwner::Create(
         std::move(texture), TextureOwner::Mode::kSurfaceTextureInsecure,
-        std::move(context_state));
+        std::move(context_state), /*drdc_lock=*/nullptr);
     texture_id_ = surface_texture_->GetTextureId();
     EXPECT_TRUE(abstract_texture_);
   }
diff --git a/gpu/command_buffer/service/texture_owner.h b/gpu/command_buffer/service/texture_owner.h
index bf6f1c98..a0b443f0 100644
--- a/gpu/command_buffer/service/texture_owner.h
+++ b/gpu/command_buffer/service/texture_owner.h
@@ -60,7 +60,7 @@
       std::unique_ptr<gles2::AbstractTexture> texture,
       Mode mode,
       scoped_refptr<SharedContextState> context_state,
-      scoped_refptr<RefCountedLock> drdc_lock = nullptr);
+      scoped_refptr<RefCountedLock> drdc_lock);
 
   TextureOwner(const TextureOwner&) = delete;
   TextureOwner& operator=(const TextureOwner&) = delete;
diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc
index 8056447..7d4ab48 100644
--- a/gpu/ipc/service/stream_texture_android.cc
+++ b/gpu/ipc/service/stream_texture_android.cc
@@ -97,7 +97,8 @@
     : texture_owner_(
           TextureOwner::Create(TextureOwner::CreateTexture(context_state),
                                GetTextureOwnerMode(),
-                               context_state)),
+                               context_state,
+                               /*drdc_lock=*/nullptr)),
       has_pending_frame_(false),
       channel_(channel),
       route_id_(route_id),
@@ -282,7 +283,7 @@
   auto shared_image = AndroidVideoImageBacking::Create(
       mailbox, coded_size, gfx::ColorSpace::CreateSRGB(),
       kTopLeft_GrSurfaceOrigin, kPremul_SkAlphaType, this, context_state_,
-      /*lock=*/nullptr);
+      /*drdc_lock=*/nullptr);
   channel_->shared_image_stub()->factory()->RegisterBacking(
       std::move(shared_image), /*allow_legacy_mailbox=*/false);
 
diff --git a/infra/config/generated/luci/cr-buildbucket.cfg b/infra/config/generated/luci/cr-buildbucket.cfg
index d366925..be769e58 100644
--- a/infra/config/generated/luci/cr-buildbucket.cfg
+++ b/infra/config/generated/luci/cr-buildbucket.cfg
@@ -40001,7 +40001,7 @@
       name: "mac-osxbeta-rel"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "builder:mac-osxbeta-rel"
-      dimensions: "cores:8"
+      dimensions: "cores:12"
       dimensions: "cpu:x86-64"
       dimensions: "os:Mac-12"
       dimensions: "pool:luci.chromium.ci"
@@ -49717,10 +49717,7 @@
         '      "v.test_suite"'
         '    ]'
         '  },'
-        '  "default_dimensions": {'
-        '    "pool": "luci.chromium.ci"'
-        '  },'
-        '  "recipe": "reviver/chromium/coordinator",'
+        '  "recipe": "chromium_polymorphic/launcher",'
         '  "runner_builder": {'
         '    "bucket": "reviver",'
         '    "builder": "runner",'
@@ -49756,6 +49753,7 @@
       name: "runner"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "builder:runner"
+      dimensions: "pool:luci.chromium.ci"
       exe {
         cipd_package: "infra/chromium/bootstrapper/${platform}"
         cipd_version: "latest"
diff --git a/infra/config/generated/luci/project.cfg b/infra/config/generated/luci/project.cfg
index c23bdfa..bddd90a 100644
--- a/infra/config/generated/luci/project.cfg
+++ b/infra/config/generated/luci/project.cfg
@@ -7,7 +7,7 @@
 name: "chromium"
 access: "group:all"
 lucicfg {
-  version: "1.32.1"
+  version: "1.31.4"
   package_dir: "../.."
   config_dir: "generated/luci"
   entry_point: "main.star"
diff --git a/infra/config/recipes.star b/infra/config/recipes.star
index 8669329..7a24e4a5 100644
--- a/infra/config/recipes.star
+++ b/infra/config/recipes.star
@@ -147,6 +147,10 @@
 )
 
 build_recipe(
+    name = "recipe:chromium_polymorphic/launcher",
+)
+
+build_recipe(
     name = "recipe:chromium_3pp",
 )
 
@@ -222,10 +226,6 @@
 )
 
 build_recipe(
-    name = "recipe:reviver/chromium/coordinator",
-)
-
-build_recipe(
     name = "recipe:reviver/chromium/runner",
     bootstrappable = POLYMORPHIC,
 )
diff --git a/infra/config/subprojects/chromium/ci/chromium.fyi.star b/infra/config/subprojects/chromium/ci/chromium.fyi.star
index 347b7cd..eb251e84 100644
--- a/infra/config/subprojects/chromium/ci/chromium.fyi.star
+++ b/infra/config/subprojects/chromium/ci/chromium.fyi.star
@@ -756,6 +756,7 @@
     main_console_view = None,
     builderless = False,
     os = os.MAC_DEFAULT,
+    cores = 12,
     triggered_by = ["ci/Mac Builder"],
 )
 
diff --git a/infra/config/subprojects/reviver/reviver.star b/infra/config/subprojects/reviver/reviver.star
index 6ff97a63..de3e386f 100644
--- a/infra/config/subprojects/reviver/reviver.star
+++ b/infra/config/subprojects/reviver/reviver.star
@@ -48,7 +48,7 @@
 
 builder(
     name = "coordinator",
-    executable = "recipe:reviver/chromium/coordinator",
+    executable = "recipe:chromium_polymorphic/launcher",
     # TODO(crbug/1346396) Figure out what machines the coordinator should run on
     os = os.LINUX_DEFAULT,
     pool = "luci.chromium.ci",
@@ -59,9 +59,6 @@
             "builder": "runner",
         },
         # TODO(crbug/1346396) Figure out what machines the runnner should run on
-        "default_dimensions": {
-            "pool": ci.DEFAULT_POOL,
-        },
         "target_builders": [
             target_builder(
                 name = "android-marshmallow-x86-rel",
@@ -83,4 +80,6 @@
 builder(
     name = "runner",
     executable = "recipe:reviver/chromium/runner",
+    # TODO(crbug/1346396) Figure out what machines the runnner should run on
+    pool = ci.DEFAULT_POOL,
 )
diff --git a/ios/chrome/app/strings/ios_strings.grd b/ios/chrome/app/strings/ios_strings.grd
index 3ec1767..917a3aa 100644
--- a/ios/chrome/app/strings/ios_strings.grd
+++ b/ios/chrome/app/strings/ios_strings.grd
@@ -780,6 +780,9 @@
       <message name="IDS_IOS_DISCOVER_FEED_HEADER_TURNED_OFF_LABEL" desc="The message that appears in the feed header when the feed is turned off from the header menu. IMPORTANT: The 'Turn On' part of this string should match the content of IDS_IOS_DISCOVER_FEED_MENU_TURN_ON_ITEM so that users understand what menu option to select.">
         To see content, select Turn On from the menu
       </message>
+      <message name="IDS_IOS_DISCOVER_AND_FOLLOWING_FEED_TITLE" desc="The title in the Discover and Following feed menu if Following is enabled. Please use the branded term for Discover, as listed under Product Names in the Google Glossary Manager (TC ID 1799975766543019278).">
+        Discover &amp; Following
+      </message>
       <message name="IDS_IOS_DISCOVER_FEED_TITLE" desc="The title in the Discover feed menu.">
         Discover
       </message>
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_DISCOVER_AND_FOLLOWING_FEED_TITLE.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_DISCOVER_AND_FOLLOWING_FEED_TITLE.png.sha1
new file mode 100644
index 0000000..8afccd9
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_DISCOVER_AND_FOLLOWING_FEED_TITLE.png.sha1
@@ -0,0 +1 @@
+d010ca9c720e5a157b70c2148f0fe81c89f28fa9
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb
index 29ea9ef..5b3b4b0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Nie veilig nie</translation>
 <translation id="3533202363250687977">Maak alle incognito-oortjies toe</translation>
 <translation id="3533436815740441613">Nuwe oortjie</translation>
+<translation id="3547799431091898961"><ph name="BEGIN_LINK" />Meld af uit Chrome<ph name="END_LINK" /> om op alle webwerwe uit jou Google-rekening af te meld.</translation>
 <translation id="3551320343578183772">Maak oortjie toe</translation>
 <translation id="3581564640715911333">Aanbieding om bladsye in ander tale te vertaal</translation>
 <translation id="3588820906588687999">Maak prent in nuwe oortjie oop</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Probeer weer</translation>
 <translation id="6377118281273296434">Werfsekuriteit</translation>
 <translation id="6380866119319257197">As jy jou wagfrase vergeet of hierdie instelling wil verander, <ph name="BEGIN_LINK" />stel sinkronisering terug<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Wagwoorde word slegs op hierdie toestel in Google Wagwoordbestuurder gestoor.</translation>
 <translation id="6389470377220713856">Naam op kaart</translation>
 <translation id="6406506848690869874">Sinkronisering</translation>
 <translation id="6410390304316730527">Veiligblaai beskerm jou teen aanvallers wat jou dalk kan mislei om iets gevaarlik te doen, soos om kwaadwillige sagteware te installeer of jou persoonlike inligting, soos wagwoorde, foonnommers of kredietkaartinligting, bekend te maak. As jy dit afskakel, moet jy versigtig wees wanneer jy op onbekende of nie-fatsoenlike werwe blaai.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Zoem in</translation>
 <translation id="6583087784430677195">Maak <ph name="BEGIN_LINK" />Instellings<ph name="END_LINK" /> oop en gaan na Outovul Wagwoorde toe om dit af te skakel.</translation>
 <translation id="6585618849026997638">Jy kan 'n boekmerk byvoeg om weer uit te kom by 'n bladsy wat vir jou belangrik is</translation>
+<translation id="6596481460663245319">Soek prent met Google</translation>
 <translation id="6598875554591387303">Rangskik volgens Uitgewer</translation>
 <translation id="6603393121510733479">Jou organisasie het private blaai afgeskakel.
 <ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb
index 12fb2d4..9f07d54 100644
--- a/ios/chrome/app/strings/resources/ios_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">እንደገና ይሞክሩ</translation>
 <translation id="6377118281273296434">የጣቢያ ደህንነት</translation>
 <translation id="6380866119319257197">የእርስዎን የይለፍሐረግ ከረሱት ወይም ይህን ቅንብር መለወጥ ከፈለጉ <ph name="BEGIN_LINK" />ስምረትን ዳግም ያስጀምሩ<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">የይለፍ ቃላት የሚቀመጡት በዚህ መሣሪያ ላይ ብቻ ባለው የGoogle የይለፍ ቃል አስተዳዳሪ ላይ ነው።</translation>
 <translation id="6389470377220713856">በካርድ ላይ ያለ ስም</translation>
 <translation id="6406506848690869874">አመሳስል</translation>
 <translation id="6410390304316730527">የጥንቃቄ አሰሳ እንደ ተንኮል-አዘል ሶፍትዌር መጫን ያለ አደገኛ ነገር እንዲያደርጉ ወይም እንደ የይለፍ ቃላት፣ ስልክ ቁጥሮች ወይም ክሬዲት ካርዶች ያለ የግል መረጃን እንዲገልጡ እርስዎን ሊያታልሉዎ ከሚችሉ አጥቂዎች ይጠብቀዎታል። ካጠፉት ያልተለመደ ወይም ስማቸው ጥሩ ያልሆኑ ጣቢያዎችን ሲያስሱ ይጠንቀቁ።</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
index f68723c..9a9be6d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -647,6 +647,7 @@
 <translation id="6374469231428023295">إعادة المحاولة</translation>
 <translation id="6377118281273296434">أمن الموقع الإلكتروني</translation>
 <translation id="6380866119319257197">إذا كنت قد نسيت عبارة المرور أو ترغب في تغيير هذا الإعداد، يمكنك <ph name="BEGIN_LINK" />إعادة ضبط المزامنة<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">‏يتم حفظ كلمات المرور في "مدير كلمات المرور" من Google على هذا الجهاز فقط.</translation>
 <translation id="6389470377220713856">الاسم كما في البطاقة</translation>
 <translation id="6406506848690869874">المزامنة</translation>
 <translation id="6410390304316730527">يحميك "التصفُّح الآمن" من المهاجمين الذين قد يحاولون خداعك لاتّخاذ إجراءات خطيرة، مثل تثبيت البرامج الضارة أو الكشف عن معلومات شخصية، مثل كلمات المرور أو أرقام الهواتف أو بطاقات الائتمان. وفي حال إيقاف "التصفُّح الآمن"، ننصحك بتوخّي الحذر عند تصفُّح مواقع إلكترونية غير مألوفة أو غير آمنة.</translation>
@@ -850,6 +851,7 @@
 <translation id="7987685713885608670">‏لتوفير مزيد من الأمان، يتم تشفير كلمات المرور على جهازك قبل حفظها في "مدير كلمات المرور" من Google.</translation>
 <translation id="7993619969781047893">قد تتوقف الميزات عن العمل في بعض المواقع الإلكترونية.</translation>
 <translation id="800361585186029508">‏فتح عناوين URL التي تم إدخالها في Google Chrome</translation>
+<translation id="8016714545083187120">استخدام الاتصالات الآمنة دائمًا</translation>
 <translation id="802154636333426148">تعذّر التنزيل</translation>
 <translation id="8023878949384262191">توسيع القسم.</translation>
 <translation id="8027581147000338959">فتح في نافذة جديدة</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb
index be1a8eae..74c99dcc 100644
--- a/ios/chrome/app/strings/resources/ios_strings_as.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">সুৰক্ষিত নহয়</translation>
 <translation id="3533202363250687977">সকলো ইনক’গনিট’ টেব বন্ধ কৰক</translation>
 <translation id="3533436815740441613">নতুন টেব</translation>
+<translation id="3547799431091898961">আটাইবোৰ ৱেবছাইটত আপোনাৰ Google একাউণ্টৰ পৰা ছাইন আউট কৰিবলৈ <ph name="BEGIN_LINK" />Chromeৰ পৰা ছাইন আউট কৰক<ph name="END_LINK" />।</translation>
 <translation id="3551320343578183772">টেব বন্ধ কৰক</translation>
 <translation id="3581564640715911333">অন্য ভাষাত পৃষ্ঠাসমূহ অনুবাদ কৰাৰ সুবিধা দিয়ক</translation>
 <translation id="3588820906588687999">প্ৰতিচ্ছবি নতুন টেবত খোলক</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">আকৌ চেষ্টা কৰক</translation>
 <translation id="6377118281273296434">ছাইটৰ সুৰক্ষা</translation>
 <translation id="6380866119319257197">আপুনি যদি নিজৰ পাছফ্ৰেজটো পাহৰিছে বা এই ছেটিংটো সলনি কৰিব বিচাৰিছে তেন্তে <ph name="BEGIN_LINK" />ছিংক ৰিছেট কৰক<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">পাছৱৰ্ডসমূহ কেৱল এই ডিভাইচটোত থকা Google পাছৱৰ্ড পৰিচালকত ছেভ কৰা হয়।</translation>
 <translation id="6389470377220713856">কার্ডত থকা নাম</translation>
 <translation id="6406506848690869874">ছিংক কৰক</translation>
 <translation id="6410390304316730527">সুৰক্ষিত ব্ৰাউজিঙে আপোনাক এনে আক্ৰমণকাৰীসকলৰ পৰা সুৰক্ষা প্ৰদান কৰে, যিসকলে আপোনাৰ দ্বাৰা কিছুমান বিপজ্জনক কাম কৰাবলৈ চেষ্টা কৰিব পাৰে, যেনে কোনো ছফ্টৱেৰ ইনষ্টল কৰোৱা অথবা আপোনাৰ ব্যক্তিগত তথ্য (উদাহৰণস্বৰূপে, পাছৱর্ড, ফ’ন নম্বৰ অথবা ক্ৰেডিট কার্ড) ফাদিল কৰা। আপুনি যদি এইটো বন্ধ কৰি ৰাখে তেন্তে আপুনি অচিনাকী অথবা অখ্যাত ছাইটসমূহ ব্ৰাউজ কৰাৰ সময়ত সাবধান হওক।</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">জুম ইন কৰক</translation>
 <translation id="6583087784430677195">অফ কৰিবলৈ<ph name="BEGIN_LINK" />ছেটিং<ph name="END_LINK" /> খোলক আৰু পাছৱৰ্ড স্বয়ংক্ৰিয়ভাৱে পূৰ হোৱা সুবিধাটোলৈ যাওক।</translation>
 <translation id="6585618849026997638">এটা বুকমাৰ্ক যোগ দি আপুনি আপোনাৰ বাবে গুৰুত্বপূর্ণ এখন পৃষ্ঠালৈ উভতি যাব পাৰে</translation>
+<translation id="6596481460663245319">Googleৰ জৰিয়তে প্ৰতিচ্ছবি সন্ধান কৰক</translation>
 <translation id="6598875554591387303">প্ৰকাশক অনুসৰি সজাওক</translation>
 <translation id="6603393121510733479">আপোনাৰ প্ৰতিষ্ঠানে ব্যক্তিগত ব্ৰাউজিং অফ কৰিছে।
 <ph name="BEGIN_LINK" />অধিক জানক<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb
index dd83cea..5b79485 100644
--- a/ios/chrome/app/strings/resources/ios_strings_az.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Təhlükəsiz deyil</translation>
 <translation id="3533202363250687977">Bütün Gizli Tabları bağlayın</translation>
 <translation id="3533436815740441613">Yeni Tab</translation>
+<translation id="3547799431091898961">Bütün vebsaytlarda Google Hesabınızdan çıxmaq üçün <ph name="BEGIN_LINK" />Chrome'dan çıxın<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Paneli qapadın</translation>
 <translation id="3581564640715911333">Səhifələrin digər dillərdə tərcümə edilməsini təklif edin</translation>
 <translation id="3588820906588687999">Şəkli Yeni Paneldə Açın</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Yenidən cəhd edin</translation>
 <translation id="6377118281273296434">Sayt Təhlükəsizliyi</translation>
 <translation id="6380866119319257197">Əgər parol sözü unutsanız və ya bu ayarı dəyişmək istəsəniz, <ph name="BEGIN_LINK" />sinxronizasiyanı sıfırlayın<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Parollar yalnız bu cihazda Google Parol Menecerində saxlanılır.</translation>
 <translation id="6389470377220713856">Kart Adı</translation>
 <translation id="6406506848690869874">Sinx</translation>
 <translation id="6410390304316730527">Təhlükəsiz Baxış sizi zərərli proqram təminatı quraşdırmaq və ya parol, telefon nömrəsi, kredit kartı kimi şəxsi məlumatlarınızı aşkar etmək kimi təhlükəli əməliyyatlara sövq etmək üçün aldada biləcək hücumlardan qoruyur. Bu xüsusiyyəti söndürsəniz, tanış və ya məşhur olmayan saytlara baxarkən ehtiyatlı olun.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Böyüdün</translation>
 <translation id="6583087784430677195">Deaktiv etmək üçün <ph name="BEGIN_LINK" />Ayarları<ph name="END_LINK" /> açın və Parolların Avtomatik Doldurulmasına keçin.</translation>
 <translation id="6585618849026997638">Əlfəcin əlavə etməklə vacib səhifəyə qayıda bilərsiniz</translation>
+<translation id="6596481460663245319">Google ilə Şəkil axtarın</translation>
 <translation id="6598875554591387303">Naşir üzrə sıalayın</translation>
 <translation id="6603393121510733479">Təşkilatınız şəxsi baxış keçirməni deaktiv edib.
 <ph name="BEGIN_LINK" />Ətraflı məlumat<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb
index c23429cf..b61c018b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Паўтарыць спробу</translation>
 <translation id="6377118281273296434">Бяспека сайта</translation>
 <translation id="6380866119319257197">Калі вы забылі фразу-пароль або хочаце змяніць гэту наладу, <ph name="BEGIN_LINK" />скіньце параметры сінхранізацыі<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Паролі захоўваюцца ў Менеджары пароляў Google толькі на гэтай прыладзе.</translation>
 <translation id="6389470377220713856">Імя на картцы</translation>
 <translation id="6406506848690869874">Сінхранізаваць</translation>
 <translation id="6410390304316730527">Функцыя "Бяспечны прагляд" абараняе ад зламыснікаў, якія могуць падмануць вас і прымусіць да небяспечных дзеянняў – напрыклад, усталяваць шкоднае праграмнае забеспячэнне або выдаць асабістую інфармацыю (паролі, нумары тэлефонаў або даныя крэдытных картак і падобнае). Калі вы выключыце гэту функцыю, будзьце асабліва ўважлівымі пры наведванні незнаёмых сайтаў і сайтаў з няпэўнай рэпутацыяй.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
index 40af37a..94aa113 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Нов опит</translation>
 <translation id="6377118281273296434">Сигурност на сайта</translation>
 <translation id="6380866119319257197">Ако забравите пропуска си или искате да промените тази настройка, <ph name="BEGIN_LINK" />нулирайте синхронизирането<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Паролите се запазват в мениджъра на паролите в Google само на това устройство.</translation>
 <translation id="6389470377220713856">Име върху картата</translation>
 <translation id="6406506848690869874">Синхронизиранe</translation>
 <translation id="6410390304316730527">Функцията „Безопасно сърфиране“ ви защитава от хакери, които могат да ви подведат да направите нещо опасно, като например да инсталирате софтуер или да разкриете лична информация (напр. пароли, телефонни номера или кредитни карти). Ако я изключите, внимавайте, когато посещавате непознати или ненадеждни сайтове.</translation>
@@ -848,6 +849,7 @@
 <translation id="7987685713885608670">За допълнителна сигурност шифровайте паролите на устройството си, преди да бъдат запазени в мениджъра на паролите в Google.</translation>
 <translation id="7993619969781047893">Функциите в някои сайтове може да не работят правилно</translation>
 <translation id="800361585186029508">Въведените URL адреси се отварят в Google Chrome.</translation>
+<translation id="8016714545083187120">Винаги да се използват сигурни връзки</translation>
 <translation id="802154636333426148">Изтеглянето не бе успешно</translation>
 <translation id="8023878949384262191">Разгъва секцията.</translation>
 <translation id="8027581147000338959">Отваряне в нов прозорец</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
index 64887dc6..3779a66 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">সুরক্ষিত নয়</translation>
 <translation id="3533202363250687977">সব ছদ্মবেশী ট্যাব বন্ধ করুন</translation>
 <translation id="3533436815740441613">নতুন ট্যাব খুলুন</translation>
+<translation id="3547799431091898961">সব ওয়েবসাইটে আপনার Google অ্যাকাউন্ট থেকে সাইন-আউট করতে, <ph name="BEGIN_LINK" />Chrome থেকে সাইন-আউট করুন<ph name="END_LINK" />।</translation>
 <translation id="3551320343578183772">ট্যাব বন্ধ করুন</translation>
 <translation id="3581564640715911333">অন্য ভাষাতে পৃষ্ঠা অনুবাদ করার প্রস্তাব দিন</translation>
 <translation id="3588820906588687999">নতুন ট্যাবে ছবি খুলুন</translation>
@@ -646,6 +647,7 @@
 <translation id="6374469231428023295">আবার চেষ্টা করুন</translation>
 <translation id="6377118281273296434">সাইটের নিরাপত্তা</translation>
 <translation id="6380866119319257197">আপনি যদি আপনার পাসফ্রেজ ভুলে যান বা এই সেটিং পরিবর্তন করতে চান, তাহলে <ph name="BEGIN_LINK" />সিঙ্ক পুনরায় সেট করুন<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">শুধুমাত্র এই ডিভাইসের 'Google পাসওয়ার্ড ম্যানেজারে' পাসওয়ার্ড সেভ করা হয়।</translation>
 <translation id="6389470377220713856">কার্ডে থাকা নাম</translation>
 <translation id="6406506848690869874">সিঙ্ক</translation>
 <translation id="6410390304316730527">আক্রমণকারীরা হয়ত ক্ষতিকারক সফ্টওয়্যার ইনস্টল করা অথবা পাসওয়ার্ড, ফোন নম্বর বা ক্রেডিট কার্ডের মতো ব্য়ক্তিগত তথ্য প্রকাশ করার জন্য কৌশলে প্রতারণা করতে পারে। তার হাত থেকে Safe Browsing আপনাকে সুরক্ষিত রাখে। এটি বন্ধ করে রাখলে, অজানা বা পরিচিত নয় এমন সাইট ব্রাউজ করার সময়ে সতর্ক থাকুন।</translation>
@@ -681,6 +683,7 @@
 <translation id="6561262006871132942">বড় করে দেখুন</translation>
 <translation id="6583087784430677195">বন্ধ করতে, <ph name="BEGIN_LINK" />সেটিংস<ph name="END_LINK" /> বিকল্প খুলে অটোফিল পাসওয়ার্ড বিকল্পে যান।</translation>
 <translation id="6585618849026997638">গুরুত্বপূর্ণ পৃষ্ঠার বুকমার্ক যোগ করে সহজেই সেখানে ফিরে যেতে পারবেন</translation>
+<translation id="6596481460663245319">Google-এর মাধ্যমে ছবি সার্চ করুন</translation>
 <translation id="6598875554591387303">প্রকাশক অনুযায়ী সাজান</translation>
 <translation id="6603393121510733479">আপনার সংস্থা ব্যক্তিগত ব্রাউজিংয়ের সুবিধা বন্ধ করে দিয়েছে।
 <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
index a923b65..55634c9d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">Pokušaj ponovo</translation>
 <translation id="6377118281273296434">Sigurnost web lokacije</translation>
 <translation id="6380866119319257197">Ako zaboravite pristupni izraz ili želite promijeniti ovu postavku, <ph name="BEGIN_LINK" />poništite sinhronizaciju<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Lozinke se pohranjuju u Googleovom Upravitelju lozinki samo na ovom uređaju.</translation>
 <translation id="6389470377220713856">Ime i prezime na kartici</translation>
 <translation id="6406506848690869874">Sinhronizacija</translation>
 <translation id="6410390304316730527">Sigurno pregledanje vas štiti od napadača koji vas mogu prevarom navesti da uradite nešto opasno, naprimjer, da instalirate zlonamjerni softver ili otkrijete lične informacije kao što su lozinke i brojevi telefona ili kreditne kartice. Ako ga isključite, budite oprezni prilikom pregledanja nepoznatih ili sumnjivih web lokacija.</translation>
@@ -850,7 +851,7 @@
 <translation id="7987685713885608670">Da imate dodatnu sigurnost, šifrirajte lozinke na uređaju prije nego što se pohrane u Googleov Upravitelj lozinki.</translation>
 <translation id="7993619969781047893">Moguće je da će funkcije na nekim web lokacijama prestati s radom</translation>
 <translation id="800361585186029508">Otvara unesene URL-ove u Google Chromeu.</translation>
-<translation id="8016714545083187120">Uvijek upotrebljavaj sigurne veze</translation>
+<translation id="8016714545083187120">Uvijek koristite sigurne veze</translation>
 <translation id="802154636333426148">Preuzimanje nije uspjelo</translation>
 <translation id="8023878949384262191">Proširuje odjeljak.</translation>
 <translation id="8027581147000338959">Otvori u novom prozoru</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
index df60eaae..929d8e6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">No és segur</translation>
 <translation id="3533202363250687977">Tanca totes les pestanyes d'incògnit</translation>
 <translation id="3533436815740441613">Pestanya nova</translation>
+<translation id="3547799431091898961">Per tancar la sessió del teu Compte de Google en tots els llocs web, <ph name="BEGIN_LINK" />tanca la sessió de Chrome<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Tanca la pestanya</translation>
 <translation id="3581564640715911333">Proposa traduir les pàgines en altres idiomes</translation>
 <translation id="3588820906588687999">Obre la imatge en una pestanya nova</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Torna-ho a provar</translation>
 <translation id="6377118281273296434">Seguretat del lloc web</translation>
 <translation id="6380866119319257197">Si oblideu la frase de contrasenya o voleu canviar aquesta configuració, <ph name="BEGIN_LINK" />restabliu la sincronització<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Les contrasenyes es desen al gestor de contrasenyes de Google només en aquest dispositiu.</translation>
 <translation id="6389470377220713856">Titular de la targeta</translation>
 <translation id="6406506848690869874">Sincronització</translation>
 <translation id="6410390304316730527">Navegació segura et protegeix contra els atacants que et poden enganyar perquè facis alguna acció perillosa, com ara instal·lar programari maliciós o revelar informació personal (per exemple, contrasenyes, números de telèfon o targetes de crèdit). Si la desactives, ves amb compte quan naveguis per llocs web desconeguts o amb mala reputació.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Amplia</translation>
 <translation id="6583087784430677195">Per desactivar aquesta funció, obre <ph name="BEGIN_LINK" />Configuració<ph name="END_LINK" /> i ves a Emplenament automàtic de contrasenyes.</translation>
 <translation id="6585618849026997638">Afegeix adreces d'interès per tornar a pàgines que consideris importants</translation>
+<translation id="6596481460663245319">Cerca la imatge amb Google</translation>
 <translation id="6598875554591387303">Ordena per Editor</translation>
 <translation id="6603393121510733479">La teva organització ha desactivat la navegació privada.
 <ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
index dfd46759..f47c22b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Zkusit znovu</translation>
 <translation id="6377118281273296434">Zabezpečení webu</translation>
 <translation id="6380866119319257197">Pokud heslovou frázi zapomenete nebo toto nastavení budete chtít změnit, <ph name="BEGIN_LINK" />resetujte synchronizaci<ph name="END_LINK" />.</translation>
+<translation id="6387994324662817823">Hesla se ukládají do Správce hesel Google pouze na tomto zařízení.</translation>
 <translation id="6389470377220713856">Jméno na kartě</translation>
 <translation id="6406506848690869874">Synchronizace</translation>
 <translation id="6410390304316730527">Bezpečné prohlížení vás chrání před útočníky, kteří se vás snaží přimět k nebezpečné akci, jako je instalace škodlivého softwaru nebo vyzrazení osobních údajů (například hesel, telefonních čísel nebo platebních karet). Pokud ji vypnete, budete si muset dávat pozor na neznámé a podezřelé weby.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cy.xtb b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
index 7182083d..1d99901 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Ddim yn ddiogel</translation>
 <translation id="3533202363250687977">Cau Pob Tab Anhysbys</translation>
 <translation id="3533436815740441613">Tab Newydd</translation>
+<translation id="3547799431091898961">I allgofnodi o'ch Cyfrif Google ar bob gwefan, <ph name="BEGIN_LINK" />allgofnodwch o Chrome<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Cau'r Tab</translation>
 <translation id="3581564640715911333">Cynnig cyfieithu tudalennau mewn ieithoedd eraill</translation>
 <translation id="3588820906588687999">Agor y Llun Mewn Tab Newydd</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Rhoi cynnig arall arni</translation>
 <translation id="6377118281273296434">Diogelwch Gwefan</translation>
 <translation id="6380866119319257197">Os byddwch yn anghofio'ch cyfrinymadrodd neu eisiau newid y gosodiad hwn, bydd angen i chi <ph name="BEGIN_LINK" />ailosod cysoni<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Mae cyfrineiriau'n cael eu cadw i Rheolwr Cyfrineiriau Google ar y ddyfais hon yn unig.</translation>
 <translation id="6389470377220713856">Enw ar y Cerdyn</translation>
 <translation id="6406506848690869874">Cysoni</translation>
 <translation id="6410390304316730527">Mae Pori'n Ddiogel yn eich amddiffyn rhag ymosodwyr a allai eich twyllo i wneud rhywbeth peryglus fel gosod meddalwedd maleisus neu ddatgelu gwybodaeth bersonol fel cyfrineiriau, rhifau ffôn neu gardiau credyd. Os byddwch yn ei ddiffodd, byddwch yn ofalus wrth bori gwefannau anghyfarwydd neu annibynadwy.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Chwyddo</translation>
 <translation id="6583087784430677195">I'w ddiffodd, agorwch y <ph name="BEGIN_LINK" />Gosodiadau<ph name="END_LINK" /> ac ewch i Awtolenwi Cyfrineiriau.</translation>
 <translation id="6585618849026997638">Gallwch fynd yn ôl i dudalen sy'n bwysig i chi drwy ychwanegu nod tudalen</translation>
+<translation id="6596481460663245319">Chwilio llun gyda Google</translation>
 <translation id="6598875554591387303">Trefnu yn ôl Cyhoeddwr</translation>
 <translation id="6603393121510733479">Gwnaeth eich sefydliad ddiffodd pori preifat.
 <ph name="BEGIN_LINK" />Dysgu rhagor<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb
index 41dfe1f..c76919e7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">Prøv igen</translation>
 <translation id="6377118281273296434">Sikkerhed på websitet</translation>
 <translation id="6380866119319257197">Hvis du glemmer din adgangssætning eller vil ændre denne indstilling, skal du <ph name="BEGIN_LINK" />nulstille synkroniseringen<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Adgangskoder gemmes kun i Adgangskodeadministrator på denne enhed.</translation>
 <translation id="6389470377220713856">Navn på kort</translation>
 <translation id="6406506848690869874">Synkronisering</translation>
 <translation id="6410390304316730527">Beskyttet browsing beskytter dig mod hackere, som kan narre dig til at gøre uhensigtsmæssige ting, f.eks. at installere skadelig software eller afsløre personlige oplysninger som adgangskoder, telefonnumre eller betalingskortnumre. Hvis du deaktivere funktionen, skal du være ekstra forsigtig, når du besøger websites, du ikke kender eller har tillid til.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb
index 1e85614b..1b25d9de 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Erneut versuchen</translation>
 <translation id="6377118281273296434">Websitesicherheit</translation>
 <translation id="6380866119319257197">Wenn du deine Passphrase vergessen oder diese Einstellung ändern möchtest, <ph name="BEGIN_LINK" />setz die Synchronisierung zurück<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Passwörter werden auf diesem Gerät nur im Google Passwortmanager gespeichert.</translation>
 <translation id="6389470377220713856">Name auf Karte</translation>
 <translation id="6406506848690869874">Synchronisierung</translation>
 <translation id="6410390304316730527">Safe Browsing schützt dich gegen Angreifer, die dich dazu verleiten möchten, Risiken einzugehen, wie z. B. schädliche Software zu installieren oder personenbezogene Daten wie Passwörter, Telefonnummern oder Kreditkartendaten preiszugeben. Wenn du Safe Browsing deaktivierst, sei besonders vorsichtig, wenn du auf unbekannten oder zweifelhaften Websites surfst.</translation>
@@ -848,6 +849,7 @@
 <translation id="7987685713885608670">Für zusätzliche Sicherheit kannst du Passwörter auf deinem Gerät verschlüsseln lassen, bevor sie im Passwortmanager von Google gespeichert werden.</translation>
 <translation id="7993619969781047893">Funktionen auf manchen Websites funktionieren möglicherweise nicht mehr</translation>
 <translation id="800361585186029508">Öffnet die eingegebenen URLs in Google Chrome.</translation>
+<translation id="8016714545083187120">Immer sichere Verbindungen verwenden</translation>
 <translation id="802154636333426148">Downloadfehler</translation>
 <translation id="8023878949384262191">Maximiert den Abschnitt</translation>
 <translation id="8027581147000338959">In neuem Fenster öffnen</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb
index 5bf19aa..45b7248 100644
--- a/ios/chrome/app/strings/resources/ios_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Μη ασφαλής</translation>
 <translation id="3533202363250687977">Κλείσιμο όλων των καρτελών ανώνυμης περιήγησης</translation>
 <translation id="3533436815740441613">Νέα καρτέλα</translation>
+<translation id="3547799431091898961">Για να αποσυνδεθείτε από τον Λογαριασμό σας Google σε όλους τους ιστοτόπους, <ph name="BEGIN_LINK" />αποσυνδεθείτε από το Chrome<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Κλείσιμο Καρτέλας</translation>
 <translation id="3581564640715911333">Προσφορά για μετάφραση σελίδων σε άλλες γλώσσες</translation>
 <translation id="3588820906588687999">Άνοιγμα εικόνας σε νέα καρτέλα</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Δοκιμάστε ξανά</translation>
 <translation id="6377118281273296434">Ασφάλεια ιστοτόπου</translation>
 <translation id="6380866119319257197">Εάν ξεχάσετε τη φράση πρόσβασής σας ή θέλετε να αλλάξετε αυτήν τη ρύθμιση, <ph name="BEGIN_LINK" />επαναφέρετε το συγχρονισμό<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Οι κωδικοί πρόσβασης αποθηκεύονται στον Διαχειριστή κωδικών πρόσβασης Google μόνο σε αυτήν τη συσκευή.</translation>
 <translation id="6389470377220713856">Όνομα σε κάρτα</translation>
 <translation id="6406506848690869874">Συγχρονισμός</translation>
 <translation id="6410390304316730527">Η Ασφαλής περιήγηση σάς προστατεύει από υπευθύνους επίθεσης που μπορεί να σας εξαπατήσουν να κάνετε κάτι επικίνδυνο, όπως εγκατάσταση κακόβουλου λογισμικού ή αποκάλυψη προσωπικών στοιχείων όπως κωδικούς πρόσβασης, αριθμούς τηλεφώνου ή στοιχεία πιστωτικών καρτών. Εάν την απενεργοποιήσετε, να είστε προσεκτικοί κατά την περιήγηση σε άγνωστους ή μη αξιόπιστους ιστοτόπους.</translation>
@@ -681,6 +683,7 @@
 <translation id="6561262006871132942">Μεγέθυνση</translation>
 <translation id="6583087784430677195">Για απενεργοποίηση, ανοίξτε τις <ph name="BEGIN_LINK" />Ρυθμίσεις<ph name="END_LINK" /> και μεταβείτε στην επιλογή Αυτόματη συμπλήρωση κωδικών πρόσβασης.</translation>
 <translation id="6585618849026997638">Μπορείτε να επιστρέψετε σε μια σελίδα που είναι σημαντική για εσάς προσθέτοντας έναν σελιδοδείκτη.</translation>
+<translation id="6596481460663245319">Αναζήτηση εικόνας με το Google</translation>
 <translation id="6598875554591387303">Ταξινόμηση με βάση τον εκδότη</translation>
 <translation id="6603393121510733479">Ο οργανισμός σας απενεργοποίησε την απόρρητη περιήγηση.
 <ph name="BEGIN_LINK" />Μάθετε περισσότερα<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
index cf64e31b..a1727ef 100644
--- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">Try Again</translation>
 <translation id="6377118281273296434">Site security</translation>
 <translation id="6380866119319257197">If you forget your passphrase or want to change this setting, <ph name="BEGIN_LINK" />reset sync<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Passwords are saved to Google Password Manager on this device only.</translation>
 <translation id="6389470377220713856">Name on Card</translation>
 <translation id="6406506848690869874">Sync</translation>
 <translation id="6410390304316730527">Safe Browsing protects you against attackers who may trick you into doing something dangerous, like installing malicious software or revealing personal information such as passwords, phone numbers or credit cards. If you turn it off, be careful when browsing unfamiliar or unreputable sites.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
index 1e77ef68..5a498257c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Volver a intentar</translation>
 <translation id="6377118281273296434">Seguridad del sitio</translation>
 <translation id="6380866119319257197">Si olvidas la frase de contraseña o quieres cambiar esta configuración, <ph name="BEGIN_LINK" />restablece la sincronización<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Las contraseñas se guardan en el Administrador de contraseñas de Google solo en este dispositivo.</translation>
 <translation id="6389470377220713856">Nombre en tarj.</translation>
 <translation id="6406506848690869874">Sincronización</translation>
 <translation id="6410390304316730527">La Navegación segura te protege de los atacantes que pueden engañarte para que hagas algo peligroso, como instalar software o divulgar información personal (p. ej., contraseñas, números de teléfono o tarjetas de crédito). Si la desactivas, ten cuidado cuando navegues en sitios desconocidos o sospechosos.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb
index 25b36cb..a50134e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Reintentar</translation>
 <translation id="6377118281273296434">Seguridad del sitio web</translation>
 <translation id="6380866119319257197">Si has olvidado tu frase de contraseña o quieres cambiar esta opción, <ph name="BEGIN_LINK" />restablece la sincronización<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Las contraseñas se guardan en el gestor de contraseñas de Google solo en este dispositivo.</translation>
 <translation id="6389470377220713856">Nombre de la tarjeta</translation>
 <translation id="6406506848690869874">Sincronización</translation>
 <translation id="6410390304316730527">La función Navegación segura te protege frente a atacantes que pueden intentar engañarte para que realices alguna acción peligrosa, como instalar software malicioso o revelar información personal, incluidas contraseñas, números de teléfono o tarjetas de crédito. Si desactivas esta función, debes tener cuidado al navegar por sitios desconocidos o que no sean de confianza.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb
index 40b51f9..d3beb29 100644
--- a/ios/chrome/app/strings/resources/ios_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Pole turvaline</translation>
 <translation id="3533202363250687977">Sule kõik inkognito vahelehed</translation>
 <translation id="3533436815740441613">Uus vaheleht</translation>
+<translation id="3547799431091898961">Selleks et oma Google'i kontolt kõikidel veebisaitidel välja logida, <ph name="BEGIN_LINK" />logige välja Chrome'ist<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Sule vaheleht</translation>
 <translation id="3581564640715911333">Paku muudes keeltes olevate lehtede tõlkimist</translation>
 <translation id="3588820906588687999">Ava kujutis uuel vahelehel</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Proovi uuesti</translation>
 <translation id="6377118281273296434">Saidi turvalisus</translation>
 <translation id="6380866119319257197">Kui unustate parooli või soovite seda seadet muuta, <ph name="BEGIN_LINK" />lähtestage sünkroonimine<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Paroolid salvestatakse Google'i rakendusse Paroolihaldur ainult selles seadmes.</translation>
 <translation id="6389470377220713856">Nimi kaardil</translation>
 <translation id="6406506848690869874">Sünkroonimine</translation>
 <translation id="6410390304316730527">Google'i ohutu sirvimine kaitseb teid ründajate eest, kes võivad teid meelitada ohtlikele tegevustele, nagu pahatahtliku tarkvara installimine või isiklike andmete (nt paroolid, telefoninumbrid või krediitkaarditeave) avaldamine. Kui lülitate selle välja, olge võõraste või halva mainega saitide külastamisel ettevaatlik.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Suumi sisse</translation>
 <translation id="6583087784430677195">Väljalülitamiseks avage rakendus <ph name="BEGIN_LINK" />Seaded<ph name="END_LINK" /> ja jaotis Paroolide automaattäide.</translation>
 <translation id="6585618849026997638">Saate enda jaoks olulisele lehele naasta, lisades järjehoidja</translation>
+<translation id="6596481460663245319">Otsige pilti Google'iga</translation>
 <translation id="6598875554591387303">Sordi väljaandja järgi</translation>
 <translation id="6603393121510733479">Teie organisatsioon lülitas privaatse sirvimise välja.
 <ph name="BEGIN_LINK" />Lisateave<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
index 1a2275d7..2b2516b3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_eu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Ez da segurua</translation>
 <translation id="3533202363250687977">Itxi ezkutuko moduko fitxa guztiak</translation>
 <translation id="3533436815740441613">Fitxa berria</translation>
+<translation id="3547799431091898961">Google-ko kontuko saioa webgune guztietan amaitzeko, <ph name="BEGIN_LINK" />amaitu Chrome-ko saioa<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Itxi fitxa</translation>
 <translation id="3581564640715911333">Eskaini beste hizkuntzetan dauden orriak itzultzea</translation>
 <translation id="3588820906588687999">Ireki irudia beste fitxa batean</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Saiatu berriro</translation>
 <translation id="6377118281273296434">Webgunearen segurtasuna</translation>
 <translation id="6380866119319257197">Pasaesaldia ahazten bazaizu edo ezarpena aldatu nahi baduzu, <ph name="BEGIN_LINK" />berrezarri sinkronizazioa<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Pasahitzak gailu honetan soilik gordetzen dira Google-ren Pasahitz-kudeatzailea zerbitzuan.</translation>
 <translation id="6389470377220713856">Txartelaren titularra</translation>
 <translation id="6406506848690869874">Sinkronizazioa</translation>
 <translation id="6410390304316730527">Arakatze seguruaren helburua zu balizko erasotzaileen aurrean babestea da, litekeena baita halakoek, azpikeriaz, zu zerbait arriskutsua egitera bultzatzea; esate baterako, software gaiztoa instalatu edo informazio pertsonala ezagutzera eman (adibidez, pasahitzak, telefono-zenbakiak edo kreditu-txartelak). Arakatze segurua desaktibatuz gero, tentuz ibili ezagunak edo izen onekoak ez diren webguneak arakatzean.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Handitu</translation>
 <translation id="6583087784430677195">Aukera hori desaktibatzeko, ireki <ph name="BEGIN_LINK" />Settings<ph name="END_LINK" /> (ezarpenak) eta joan AutoFill Passwords (bete pasahitzak automatikoki) atalera.</translation>
 <translation id="6585618849026997638">Garrantzitsuak iruditzen zaizkizun orriak bizkor atzitu ahal izateko, gehi iezazkiezu laster-markak</translation>
+<translation id="6596481460663245319">Bilatu irudia Google-ren bidez</translation>
 <translation id="6598875554591387303">Ordenatu argitaratzailearen arabera</translation>
 <translation id="6603393121510733479">Zure erakundeak arakatze pribatua desaktibatu du.
 <ph name="BEGIN_LINK" />Lortu informazio gehiago<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
index f081cc7..9c05a1b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">دوباره امتحان کنید</translation>
 <translation id="6377118281273296434">امنیت سایت</translation>
 <translation id="6380866119319257197">اگر گذرعبارت را فراموش کردید یا می‌خواهید این تنظیم را تغییر دهید، <ph name="BEGIN_LINK" />همگام‌سازی را بازنشانی کنید<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">‏گذرواژه‌ها فقط در «مدیر گذرواژه Google» در این دستگاه ذخیره می‌شوند.</translation>
 <translation id="6389470377220713856">نام روی کارت</translation>
 <translation id="6406506848690869874">همگام‌سازی</translation>
 <translation id="6410390304316730527">«مرور ایمن» از شما در برابر مهاجمانی محافظت می‌کند که ممکن است فریبتان دهند تا کارهای خطرناکی انجام دهید؛ ازجمله نصب نرم‌افزار مخرب یا افشای اطلاعات شخصی مثل گذرواژه‌ها، شماره‌های تماس، یا کارت‌های اعتباری. اگر «مرور ایمن» را خاموش می‌کنید، هنگام مرور کردن در سایت‌های ناآشنا یا نامعتبر احتیاط کنید.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
index f9de97ec..0602011 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Ei turvallinen</translation>
 <translation id="3533202363250687977">Sulje kaikki incognito-välilehdet</translation>
 <translation id="3533436815740441613">Uusi välilehti</translation>
+<translation id="3547799431091898961">Jos haluat kirjautua ulos Google-tililtäsi kaikilla sivustoilla, <ph name="BEGIN_LINK" />kirjaudu ulos Chromesta<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Sulje välilehti</translation>
 <translation id="3581564640715911333">Tarjoudu kääntämään vierailla kielillä kirjoitettuja sivuja</translation>
 <translation id="3588820906588687999">Avaa kuva uudessa välilehdessä</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Yritä uudelleen</translation>
 <translation id="6377118281273296434">Sivuston tietoturva</translation>
 <translation id="6380866119319257197">Jos unohdat tunnuslauseesi tai haluat muokata tätä asetusta, <ph name="BEGIN_LINK" />nollaa synkronointi<ph name="END_LINK" />.</translation>
+<translation id="6387994324662817823">Salasanat tallennetaan Googlen Salasanojen ylläpitoon vain tällä laitteella.</translation>
 <translation id="6389470377220713856">Nimi kortissa</translation>
 <translation id="6406506848690869874">Synkronointi</translation>
 <translation id="6410390304316730527">Selaussuoja parantaa suojaustasi, jos hyökkääjä yrittää huijata sinua tekemään jotain vaarallista, kuten asentamaan haittaohjelmia tai paljastamaan henkilötietoja (esimerkiksi salasanoja, puhelinnumeroita tai credit-kortin tietoja). Jos laitat sen pois päältä, ole varovainen tuntemattomilla tai huonomaineisilla sivustoilla.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Lähennä</translation>
 <translation id="6583087784430677195">Jos haluat laittaa ominaisuuden pois päältä, avaa <ph name="BEGIN_LINK" />Asetukset<ph name="END_LINK" /> ja siirry Täytä salasanat automaattisesti ‑kohtaan.</translation>
 <translation id="6585618849026997638">Voit palata sinulle tärkeälle sivulle lisäämällä sen kirjanmerkiksi</translation>
+<translation id="6596481460663245319">Hae kuvaa Googlesta</translation>
 <translation id="6598875554591387303">Lajittele julkaisijan mukaan</translation>
 <translation id="6603393121510733479">Organisaatiosi on laittanut yksityisen selaamisen pois päältä.
 <ph name="BEGIN_LINK" />Lue lisää<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
index 7f505e6..8304585 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Subukang Muli</translation>
 <translation id="6377118281273296434">Seguridad ng Site</translation>
 <translation id="6380866119319257197">Kung makalimutan mo ang iyong passphrase o gusto mong baguhin ang setting na ito, <ph name="BEGIN_LINK" />i-reset ang pag-sync<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Sine-save ang mga password sa Google Password Manager sa device lang na ito.</translation>
 <translation id="6389470377220713856">Pangalan sa Card</translation>
 <translation id="6406506848690869874">Pag-sync</translation>
 <translation id="6410390304316730527">Pinoprotektahan ka ng Ligtas na Pag-browse laban sa mga attacker na posibleng manlinlang sa iyong gumawa ng anumang mapanganib na bagay tulad ng pag-install ng nakakapinsalang software o paghahayag ng personal na impormasyon tulad ng mga password, numero ng telepono, o credit card. Kung io-off mo ito, maging maingat kapag nagba-browse sa mga hindi pamilyar o hindi mapagkakatiwalaang site.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
index b974d953..cc39cb9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">Réessayer</translation>
 <translation id="6377118281273296434">Sécurité du site</translation>
 <translation id="6380866119319257197">Si vous oubliez votre phrase de passe ou souhaitez modifier ce paramètre, <ph name="BEGIN_LINK" />réinitialisez la synchronisation<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Les mots de passe sont enregistrés dans le gestionnaire de mots de passe Google sur cet appareil uniquement.</translation>
 <translation id="6389470377220713856">Nom sur carte</translation>
 <translation id="6406506848690869874">Synchronisation</translation>
 <translation id="6410390304316730527">La navigation sécurisée vous protège contre les pirates qui pourraient vous inciter à faire quelque chose de dangereux comme installer un logiciel malveillant ou révéler vos renseignements personnels (par exemple, des mots de passe, des numéros de téléphone ou des numéros de carte de crédit). Si vous la désactivez, faites attention lorsque vous naviguez sur des sites inconnus ou de mauvaise réputation.</translation>
@@ -850,6 +851,7 @@
 <translation id="7987685713885608670">Pour renforcer la sécurité, chiffrez les mots de passe sur votre appareil avant qu'ils soient enregistrés dans le gestionnaire de mots de passe Google.</translation>
 <translation id="7993619969781047893">Des fonctionnalités sur certains sites risquent de ne pas fonctionner</translation>
 <translation id="800361585186029508">Ouvre les URL entrées dans Google Chrome.</translation>
+<translation id="8016714545083187120">Toujours utiliser des connexions sécurisées</translation>
 <translation id="802154636333426148">Échec du téléchargement</translation>
 <translation id="8023878949384262191">Développe la section.</translation>
 <translation id="8027581147000338959">Ouvrir dans une nouvelle fenêtre</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
index bd12523..8a4d2204 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Réessayer</translation>
 <translation id="6377118281273296434">Sécurité du site</translation>
 <translation id="6380866119319257197">Si vous oubliez votre phrase secrète, ou pour modifier ce paramètre, <ph name="BEGIN_LINK" />réinitialisez la synchronisation<ph name="END_LINK" />.</translation>
+<translation id="6387994324662817823">Les mots de passe sont enregistrés dans le Gestionnaire de mots de passe Google uniquement sur cet appareil.</translation>
 <translation id="6389470377220713856">Nom sur la carte</translation>
 <translation id="6406506848690869874">Synchronisation</translation>
 <translation id="6410390304316730527">La fonctionnalité Navigation sécurisée vous protège contre les pirates informatiques qui pourraient vous inciter à effectuer des opérations dangereuses, comme installer des logiciels malveillants ou divulguer des informations personnelles (mots de passe, numéros de téléphone ou numéros de carte de crédit, par exemple). Si vous la désactivez, faites preuve de vigilance lorsque vous consultez des sites Web inconnus ou peu fiables.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
index 57191e9d..6a31450 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Tentar de novo</translation>
 <translation id="6377118281273296434">Seguranza do sitio</translation>
 <translation id="6380866119319257197">Se esqueciches o contrasinal ou queres cambiar esta configuración, <ph name="BEGIN_LINK" />restablece a sincronización<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Os contrasinais gárdanse no xestor de contrasinais de Google só neste dispositivo.</translation>
 <translation id="6389470377220713856">Nome na tarxeta</translation>
 <translation id="6406506848690869874">Sincronización</translation>
 <translation id="6410390304316730527">A función Navegación segura protéxete contra os piratas informáticos que poden enganarte para que realices accións perigosas, como instalar un software malicioso ou revelar información persoal (por exemplo, contrasinais, números de teléfono ou tarxetas de crédito). Se a desactivas, ten coidado ao consultar sitios descoñecidos ou con mala reputación.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
index 2889052..30a2ab6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">સુરક્ષિત નથી</translation>
 <translation id="3533202363250687977">બધાં છૂપા ટૅબ બંધ કરો</translation>
 <translation id="3533436815740441613">નવું ટૅબ</translation>
+<translation id="3547799431091898961">બધી વેબસાઇટ પર તમારા Google એકાઉન્ટમાંથી સાઇન આઉટ કરવા માટે, <ph name="BEGIN_LINK" />Chromeમાંથી સાઇન આઉટ કરો<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">ટૅબ બંધ કરો</translation>
 <translation id="3581564640715911333">પેજનો અન્ય ભાષાઓમાં અનુવાદ કરવાનું ઑફર કરો</translation>
 <translation id="3588820906588687999">નવા ટેબમાં છબી ખોલો</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">ફરી પ્રયાસ કરો</translation>
 <translation id="6377118281273296434">સાઇટની સુરક્ષા</translation>
 <translation id="6380866119319257197">જો તમે તમારો પાસફ્રેઝ ભૂલી જાઓ અથવા આ સેટિંગ બદલવા માંગતા હોવ, તો <ph name="BEGIN_LINK" />સમન્વયનને ફરીથી સેટ કરો<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">આ ડિવાઇસના પાસવર્ડ માત્ર આ ડિવાઇસના Google પાસવર્ડ મેનેજરમાં સાચવવામાં આવે છે.</translation>
 <translation id="6389470377220713856">કાર્ડ પરનું નામ</translation>
 <translation id="6406506848690869874">સમન્વયન</translation>
 <translation id="6410390304316730527">Safe Browsing એવા હુમલાખોરોથી તમારું રક્ષણ કરી શકે છે જે તમને દુર્ભાવનાપૂર્ણ સૉફ્ટવેર ઇન્સ્ટૉલ કરવા અથવા પાસવર્ડ, ફોન નંબર અથવા ક્રેડિટ કાર્ડ જેવી વ્યક્તિગત માહિતી જાહેર કરવા જેવી જોખમી બાબતો કરવા ગેરમાર્ગે દોરી શકે છે. જો તમે આ બંધ કરો, તો અજાણી અથવા ભરોસાપાત્ર ન હોય એવી સાઇટ બ્રાઉઝ કરતી વખતે સાવધાન રહેજો.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">મોટું કરો</translation>
 <translation id="6583087784430677195">બંધ કરવા માટે, <ph name="BEGIN_LINK" />સેટિંગ<ph name="END_LINK" /> ખોલો અને પાસવર્ડ ઑટોમૅટિક રીતે ભરવાની સુવિધા પર જાઓ.</translation>
 <translation id="6585618849026997638">તમે બુકમાર્ક ઉમેરીને તમારા માટે મહત્ત્વપૂર્ણ હોય એવા પેજ પર પાછા જઈ શકો છો</translation>
+<translation id="6596481460663245319">Google વડે છબી શોધો</translation>
 <translation id="6598875554591387303">પ્રકાશક મુજબ સૉર્ટ કરો</translation>
 <translation id="6603393121510733479">તમારી સંસ્થાએ ખાનગી બ્રાઉઝિંગ બંધ કર્યું છે.
 <ph name="BEGIN_LINK" />વધુ જાણો<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
index eed7a82..76a71a8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">फिर से कोशिश करें</translation>
 <translation id="6377118281273296434">साइट की सुरक्षा</translation>
 <translation id="6380866119319257197">अगर आप अपना 'पासफ़्रेज़' भूल गए हैं या यह सेटिंग बदलना चाहते हैं, तो <ph name="BEGIN_LINK" />सिंक को रीसेट करें<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">पासवर्ड, सिर्फ़ इस डिवाइस में Google पासवर्ड मैनेजर में सेव हैं.</translation>
 <translation id="6389470377220713856">कार्ड पर नाम</translation>
 <translation id="6406506848690869874">सिंक</translation>
 <translation id="6410390304316730527">सुरक्षित ब्राउज़िंग की सुविधा आपको ऐसे हमलावरों से बचाती है जो धोखे से आपसे नुकसान पहुंचाने वाले सॉफ़्टवेयर इंस्टॉल करा सकते हैं या फिर आपकी व्यक्तिगत जानकारी चुरा सकते हैं जैसे कि पासवर्ड, फ़ोन नंबर या क्रेडिट कार्ड की जानकारी. अगर आप इस सुविधा को बंद करते हैं, तो ऐसी साइटें ब्राउज़ करते समय सावधान रहें जिनसे आप अनजान हैं या जो जानी-मानी नहीं हैं.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
index af968e7..1e99f7f6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">Pokušaj ponovo</translation>
 <translation id="6377118281273296434">Sigurnost web-lokacije</translation>
 <translation id="6380866119319257197">Ako zaboravite šifru ili želite promijeniti tu postavku, <ph name="BEGIN_LINK" />poništite sinkronizaciju<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Zaporke se spremaju u Google upravitelj zaporki samo na ovom uređaju.</translation>
 <translation id="6389470377220713856">Ime na kartici</translation>
 <translation id="6406506848690869874">Sinkronizacija</translation>
 <translation id="6410390304316730527">Sigurno pregledavanje štiti vas od napadača koji vas mogu na prijevaru pokušati navesti da napravite nešto opasno kao što je instaliranje zlonamjernog softvera ili otkrivanje osobnih podataka kao što su zaporke, telefonski brojevi ili kreditne kartice. Ako ga isključite, pripazite kada pregledavate nepoznate ili nepouzdane web-lokacije.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
index d99fac0..479c7c4d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">Próbálja újra</translation>
 <translation id="6377118281273296434">Webhelybiztonság</translation>
 <translation id="6380866119319257197">Ha elfelejti az összetett jelszót, vagy módosítani szeretné ezt a beállítást, <ph name="BEGIN_LINK" />állítsa alaphelyzetbe a szinkronizálást<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">A jelszavakat csak ezen az eszközön menti a rendszer a Google Jelszókezelőbe.</translation>
 <translation id="6389470377220713856">A kártyán szereplő név</translation>
 <translation id="6406506848690869874">Szinkronizálás</translation>
 <translation id="6410390304316730527">A Biztonságos Böngészés megvédi azoktól a támadóktól, akik megpróbálják csellel rávenni Önt valamilyen kockázatos dologra, például arra, hogy rosszindulatú szoftvert telepítsen, vagy felfedje személyes adatait (jelszavakat, telefonszámokat, bankkártyaadatokat stb). Ha kikapcsolja, legyen óvatos, amikor ismeretlen vagy kétes hírű webhelyeket keres fel.</translation>
@@ -850,6 +851,7 @@
 <translation id="7987685713885608670">A fokozott biztonság érdekében titkosíthatja jelszavait eszközén, mielőtt a rendszer elmenti őket a Google Jelszókezelőbe.</translation>
 <translation id="7993619969781047893">Előfordulhat, hogy bizonyos webhelyek funkciói nem működnek megfelelően</translation>
 <translation id="800361585186029508">A megadott URL-eket a Google Chrome-ban nyitja meg.</translation>
+<translation id="8016714545083187120">Mindig biztonságos kapcsolatok használata</translation>
 <translation id="802154636333426148">Nem sikerült a letöltés</translation>
 <translation id="8023878949384262191">Kibontja a panelt.</translation>
 <translation id="8027581147000338959">Megnyitás új ablakban</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
index b0550319..f5b093ff 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Փորձել կրկին</translation>
 <translation id="6377118281273296434">Կայքի անվտանգություն</translation>
 <translation id="6380866119319257197">Եթե մոռանաք ձեր անցաբառը կամ ցանկանաք փոխել այս կարգավորումը, <ph name="BEGIN_LINK" />վերակայեք համաժամացումը<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Գաղտնաբառերը պահվում են միայն այս սարքի Google Գաղտնաբառերի կառավարիչում</translation>
 <translation id="6389470377220713856">Քարտատիրոջ անունը</translation>
 <translation id="6406506848690869874">Համաժամացում</translation>
 <translation id="6410390304316730527">Ապահով դիտարկումը պաշտպանում է ձեզ հարձակվողներից, ովքեր կարող են խաբեությամբ ձեր սարքում տեղադրել վնասարար ծրագրեր կամ բացահայտել ձեր անձնական տեղեկությունները (օրինակ՝ գաղտնաբառերը, հեռախոսահամարները կամ վարկային քարտերի տվյալները)։ Եթե անջատեք այն, զգո՛ւյշ եղեք անծանոթ կամ ոչ վստահելի կայքեր այցելելիս։</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb
index 7169f66..60af67cf 100644
--- a/ios/chrome/app/strings/resources/ios_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Tidak aman</translation>
 <translation id="3533202363250687977">Tutup Semua Tab Samaran</translation>
 <translation id="3533436815740441613">Tab Baru</translation>
+<translation id="3547799431091898961">Untuk logout dari Akun Google Anda di semua situs, <ph name="BEGIN_LINK" />logout dari Chrome<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Tutup Tab</translation>
 <translation id="3581564640715911333">Tawarkan penerjemahan halaman ke dalam bahasa lain</translation>
 <translation id="3588820906588687999">Buka Gambar di Tab Baru</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Coba Lagi</translation>
 <translation id="6377118281273296434">Keamanan Situs</translation>
 <translation id="6380866119319257197">Jika lupa dengan frasa sandi atau ingin mengubah setelan ini, <ph name="BEGIN_LINK" />reset sinkronisasi<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Sandi hanya disimpan ke Pengelola Sandi Google di perangkat ini.</translation>
 <translation id="6389470377220713856">Nama di Kartu</translation>
 <translation id="6406506848690869874">Sinkronisasi</translation>
 <translation id="6410390304316730527">Safe Browsing akan melindungi Anda dari penyerang yang dapat mengelabui Anda agar melakukan sesuatu yang berbahaya, misalnya menginstal software berbahaya atau mengungkap informasi pribadi seperti sandi, nomor telepon, atau kartu kredit. Jika dinonaktifkan, harap berhati-hati saat mengakses situs tidak dikenal atau tidak tepercaya.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Perbesar</translation>
 <translation id="6583087784430677195">Untuk menonaktifkan, buka <ph name="BEGIN_LINK" />Settings<ph name="END_LINK" /> lalu buka AutoFill Passwords.</translation>
 <translation id="6585618849026997638">Anda dapat kembali ke halaman yang penting bagi Anda dengan menambahkan bookmark</translation>
+<translation id="6596481460663245319">Telusuri Gambar dengan Google</translation>
 <translation id="6598875554591387303">Urutkan menurut Penayang</translation>
 <translation id="6603393121510733479">Organisasi Anda menonaktifkan penjelajahan rahasia.
 <ph name="BEGIN_LINK" />Pelajari lebih lanjut<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb
index 0ee6125..07f07707 100644
--- a/ios/chrome/app/strings/resources/ios_strings_is.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Reyna aftur</translation>
 <translation id="6377118281273296434">Öryggi vefsvæðis</translation>
 <translation id="6380866119319257197">Ef þú gleymir aðgangsorðinu eða þig langar að breyta þessari stillingu skaltu <ph name="BEGIN_LINK" />endurstilla samstillingu<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Aðgangsorð eru aðeins vistuð í aðgangsorðastjórnun Google í þessu tæki.</translation>
 <translation id="6389470377220713856">Nafn á korti</translation>
 <translation id="6406506848690869874">Samstilling</translation>
 <translation id="6410390304316730527">Örugg vefnotkun verndar þig fyrir tölvuþrjótum sem gætu platað þig til að gera eitthvað hættulegt eins og að setja upp skaðlegan hugbúnað eða gefa upp persónuupplýsingar á borð við aðgangsorð, símanúmer eða kreditkortaupplýsingar. Ef þú slekkur á henni skaltu fara varlega þegar þú skoðar ókunnug eða óáreiðanleg vefsvæði.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb
index 8bd31556..0c63420 100644
--- a/ios/chrome/app/strings/resources/ios_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Non sicuro</translation>
 <translation id="3533202363250687977">Chiudi tutte le schede in incognito*</translation>
 <translation id="3533436815740441613">Nuova scheda</translation>
+<translation id="3547799431091898961">Per uscire dal tuo Account Google su tutti i siti web, <ph name="BEGIN_LINK" />esci da Chrome<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Chiudi scheda</translation>
 <translation id="3581564640715911333">Proponi di tradurre le pagine in altre lingue</translation>
 <translation id="3588820906588687999">Apri immagine in un'altra scheda</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Riprova</translation>
 <translation id="6377118281273296434">Sicurezza del sito</translation>
 <translation id="6380866119319257197">Se non ricordi la passphrase o vuoi modificare questa impostazione, <ph name="BEGIN_LINK" />reimposta la sincronizzazione<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Le password vengono salvate in Gestore delle password di Google solo su questo dispositivo.</translation>
 <translation id="6389470377220713856">Nome sulla carta</translation>
 <translation id="6406506848690869874">Sincronizzazione</translation>
 <translation id="6410390304316730527">La Navigazione sicura ti protegge da utenti malintenzionati che potrebbero indurti con l'inganno a effettuare operazioni pericolose, come installare software dannosi o rivelare informazioni personali (ad esempio password, numeri di telefono o carte di credito). Se la disattivi, fai attenzione quando navighi in siti sconosciuti o sospetti.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Aumenta lo zoom</translation>
 <translation id="6583087784430677195">Per disattivare la funzionalità, apri le <ph name="BEGIN_LINK" />Impostazioni<ph name="END_LINK" /> e vai a Riempimento automatico password.</translation>
 <translation id="6585618849026997638">Puoi tornare a una pagina che ritieni importante aggiungendola ai preferiti</translation>
+<translation id="6596481460663245319">Cerca immagine con Google</translation>
 <translation id="6598875554591387303">Ordina per Publisher</translation>
 <translation id="6603393121510733479">La tua organizzazione ha disattivato la navigazione privata.
 <ph name="BEGIN_LINK" />Scopri di più<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
index 8a434db..03bb472 100644
--- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">לא מאובטח</translation>
 <translation id="3533202363250687977">סגירה של כל כרטיסיות מצב אנונימי</translation>
 <translation id="3533436815740441613">כרטיסייה חדשה</translation>
+<translation id="3547799431091898961">‏כדי לצאת מחשבון Google שלך בכל האתרים, עליך <ph name="BEGIN_LINK" />לצאת מ-Chrome<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">סגירת כרטיסייה</translation>
 <translation id="3581564640715911333">הצעה לתרגם דפים בשפות אחרות</translation>
 <translation id="3588820906588687999">פתיחת התמונה בכרטיסייה חדשה</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">ניסיון נוסף</translation>
 <translation id="6377118281273296434">אבטחת האתר</translation>
 <translation id="6380866119319257197">אם שוכחים את ביטוי הסיסמה או שרוצים לשנות את ההגדרה הזו, <ph name="BEGIN_LINK" />יש לאפס את הסנכרון<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">‏סיסמאות נשמרות במנהל הסיסמאות של Google במכשיר הזה בלבד.</translation>
 <translation id="6389470377220713856">שם על הכרטיס</translation>
 <translation id="6406506848690869874">סנכרון</translation>
 <translation id="6410390304316730527">גלישה בטוחה מגינה עליך מפני תוקפים שעשויים להטעות אותך כדי לגרום לך לבצע פעולה מסוכנת. למשל, התקנה של תוכנה זדונית או חשיפת מידע אישי, כמו סיסמאות, מספרי טלפון או כרטיסי אשראי. אם תשביתו את הגלישה הבטוחה, יש לנקוט זהירות בעת הגלישה באתרים לא מוכרים או בעלי מוניטין בעייתי.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">הגדלת התצוגה</translation>
 <translation id="6583087784430677195">כדי להשבית את המילוי האוטומטי, פותחים את ה<ph name="BEGIN_LINK" />הגדרות<ph name="END_LINK" /> ועוברים אל 'מילוי אוטומטי של סיסמאות'.</translation>
 <translation id="6585618849026997638">כדי לחזור אל דף שחשוב לך אפשר להוסיף אותו לסימניות</translation>
+<translation id="6596481460663245319">‏חיפוש התמונה באמצעות Google</translation>
 <translation id="6598875554591387303">מיון לפי 'בעל האפליקציה'</translation>
 <translation id="6603393121510733479">הארגון שלך כיבה את אפשרות הגלישה הפרטית.
 <ph name="BEGIN_LINK" />מידע נוסף<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index 7537ec0..fef48d41 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">再試行</translation>
 <translation id="6377118281273296434">サイトのセキュリティ</translation>
 <translation id="6380866119319257197">パスフレーズを忘れた場合や、この設定を変更する場合は、<ph name="BEGIN_LINK" />同期をリセット<ph name="END_LINK" />します</translation>
+<translation id="6387994324662817823">パスワードは、このデバイスの Google パスワード マネージャーにのみ保存されます。</translation>
 <translation id="6389470377220713856">カード名義人(半角英文字)</translation>
 <translation id="6406506848690869874">同期</translation>
 <translation id="6410390304316730527">セーフ ブラウジングは、不正なソフトウェアのインストールや個人情報(パスワード、電話番号、クレジット カードなど)の入力といった危険な操作を行うよう誘導する悪意のあるユーザーから保護します。オフにする場合、なじみのないサイトや評判の悪いサイトを閲覧する際は十分に注意してください。</translation>
@@ -848,6 +849,7 @@
 <translation id="7987685713885608670">セキュリティ強化のため、Google パスワード マネージャーに保存する前にデバイス上でパスワードを暗号化します。</translation>
 <translation id="7993619969781047893">一部のサイトで機能を使用できなくなる可能性があります</translation>
 <translation id="800361585186029508">入力された URL を Google Chrome で開きます。</translation>
+<translation id="8016714545083187120">常に安全な接続を使用する</translation>
 <translation id="802154636333426148">ダウンロード エラー</translation>
 <translation id="8023878949384262191">セクションを展開します。</translation>
 <translation id="8027581147000338959">新しいウインドウで開く</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
index ed5817b..5319c4e5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">ხელახლა ცდა</translation>
 <translation id="6377118281273296434">საიტის უსაფრთხოება</translation>
 <translation id="6380866119319257197">საიდუმლო ფრაზის დავიწყების ან ამ პარამეტრის შეცვლის სურვილის შემთხვევაში, <ph name="BEGIN_LINK" />გადააყენეთ სინქრონიზაცია<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">პაროლები ინახება Google პაროლების მმართველში მხოლოდ ამ მოწყობილობაზე.</translation>
 <translation id="6389470377220713856">სახელი ბარათზე</translation>
 <translation id="6406506848690869874">სინქრონიზაცია</translation>
 <translation id="6410390304316730527">Safe Browsing დაგიცავთ თავდამსხმელებისგან, რომლებმაც შეიძლება მოტყუებით ჩაგადენინონ ისეთი სახიფათო ქმედება, როგორიცაა პროგრამული უზრუნველყოფის ინსტალაცია ან თქვენი პერსონალური ინფორმაციის (მაგალითად, პაროლების, ტელეფონის ნომრების ან საკრედიტო ბარათების მონაცემების) გამჟღავნება. გამორთვის შემთხვევაში გამოიჩინეთ სიფრთხილე უცნობი საიტების დათვალიერებისას.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
index d339f9b..c6e0269 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Әрекетті қайталау</translation>
 <translation id="6377118281273296434">Сайт қауіпсіздігі</translation>
 <translation id="6380866119319257197">Егер құпия фразаны ұмытып қалсаңыз немесе оны өзгерткіңіз келсе, <ph name="BEGIN_LINK" />синхрондауды қалпына келтіріңіз<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Құпия сөздер осы құрылғыда ғана Google Құпия сөздер реттегішіне сақталады.</translation>
 <translation id="6389470377220713856">Картадағы атау</translation>
 <translation id="6406506848690869874">Синхрондау</translation>
 <translation id="6410390304316730527">"Қауіпсіз шолу" функциясы сізді алдап, зиянды бағдарламалық құрал орнаттыратын немесе құпия сөздер, телефон нөмірлері мен несиелік карталар сияқты жеке ақпаратты біліп алатын шабуылдаушылардан қорғайды. Оны өшірсеңіз, таныс емес немесе сенімсіз сайттарды ашқанда абайлаңыз.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb
index 73a0be3c..b038b9e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_km.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">ព្យាយាមម្តងទៀត</translation>
 <translation id="6377118281273296434">សុវត្ថិភាព​គេហទំព័រ</translation>
 <translation id="6380866119319257197">ប្រសិនបើអ្នកភ្លេចឃ្លាសម្ងាត់របស់អ្នក ឬចង់ប្តូរការកំណត់នេះ <ph name="BEGIN_LINK" />សូមកំណត់ការធ្វើសមកាលកម្មឡើងវិញ<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">ពាក្យសម្ងាត់ត្រូវបានរក្សាទុកទៅក្នុងកម្មវិធីគ្រប់គ្រង​ពាក្យសម្ងាត់ Google នៅលើឧបករណ៍នេះតែប៉ុណ្ណោះ។</translation>
 <translation id="6389470377220713856">ឈ្មោះនៅលើកាត</translation>
 <translation id="6406506848690869874">សមកាលកម្ម</translation>
 <translation id="6410390304316730527">ការរុករកដោយ​សុវត្ថិភាព​ការពារអ្នក​ពី​អ្នកវាយប្រហារ ដែលអាច​បញ្ឆោតឱ្យអ្នក​ធ្វើអ្វីមួយ​គ្រោះថ្នាក់ដូចជា ដំឡើង​កម្មវិធីគ្រោះថ្នាក់ ឬបង្ហាញព័ត៌មាន​ផ្ទាល់ខ្លួនដូចជា ពាក្យសម្ងាត់ លេខទូរសព្ទ ឬបណ្ណឥណទាន​ជាដើម។ ប្រសិនបើអ្នក​បិទការរុករក​ដោយសុវត្ថិភាព សូមប្រុងប្រយ័ត្ន នៅពេលរុករក​គេហទំព័រ​ដែលមិនគួរ​ឱ្យ​ទុកចិត្ត ឬមិនស្គាល់។</translation>
@@ -848,6 +849,7 @@
 <translation id="7987685713885608670">សម្រាប់​សុវត្ថិភាពបន្ថែម សូមអ៊ីនគ្រីបពាក្យសម្ងាត់នៅលើ​ឧបករណ៍​របស់អ្នក មុនពេលរក្សាទុក​ពាក្យសម្ងាត់​ទាំងនោះទៅ​កម្មវិធីគ្រប់គ្រង​ពាក្យសម្ងាត់ Google។</translation>
 <translation id="7993619969781047893">មុខងារ​នៅលើ​គេហទំព័រ​មួយចំនួន​អាចដំណើរការ​មិន​ត្រឹមត្រូវ</translation>
 <translation id="800361585186029508">បើក URL ដែលបាន​បញ្ចូល​នៅក្នុង Google Chrome។</translation>
+<translation id="8016714545083187120">ប្រើ​ការតភ្ជាប់​ដែលមាន​សុវត្ថិភាព​ជានិច្ច</translation>
 <translation id="802154636333426148">បានបរាជ័យក្នុងការទាញយក</translation>
 <translation id="8023878949384262191">ពង្រីកផ្នែកនេះ</translation>
 <translation id="8027581147000338959">បើក​នៅក្នុង​វិនដូថ្មី</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index 0833db9..333f7982 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">ಸುರಕ್ಷಿತವಾಗಿಲ್ಲ</translation>
 <translation id="3533202363250687977">ಎಲ್ಲಾ ಅದೃಶ್ಯ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಿ</translation>
 <translation id="3533436815740441613">ಹೊಸ ಟ್ಯಾಬ್</translation>
+<translation id="3547799431091898961">ಎಲ್ಲಾ ವೆಬ್‌ಸೈಟ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಲು, <ph name="BEGIN_LINK" />Chrome ನಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಿ<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">ಟ್ಯಾಬ್ ಅನ್ನು ಮುಚ್ಚಿ</translation>
 <translation id="3581564640715911333">ಪುಟಗಳನ್ನು ಇತರ ಭಾಷೆಗಳಲ್ಲಿ ಅನುವಾದಿಸಲು ಅವಕಾಶ ನೀಡಿ</translation>
 <translation id="3588820906588687999">ಚಿತ್ರವನ್ನು ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ</translation>
 <translation id="6377118281273296434">ಸೈಟ್‌ನ ಸುರಕ್ಷತೆ</translation>
 <translation id="6380866119319257197">ನಿಮ್ಮ ಪಾಸ್‍‍ಫ್ರೇಸ್‍‍ ಅನ್ನು ನೀವು ಮರೆತರೆ ಅಥವಾ ಈ ಸೆಟ್ಟಿಂಗ್ ಬದಲಾಯಿಸಲು ಬಯಸಿದರೆ, <ph name="BEGIN_LINK" />ಸಿಂಕ್ ಮರುಹೊಂದಿಸಿ<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಈ ಸಾಧನದಲ್ಲಿನ Google ಪಾಸ್‌ವರ್ಡ್ ನಿರ್ವಾಹಕದಲ್ಲಿ ಮಾತ್ರ ಉಳಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="6389470377220713856">ಕಾರ್ಡ್‌ನಲ್ಲಿರುವ ಹೆಸರು</translation>
 <translation id="6406506848690869874">ಸಿಂಕ್</translation>
 <translation id="6410390304316730527">ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ನಿಮ್ಮನ್ನು ಅಪಾಯಕಾರಿ ಕೆಲಸ ಮಾಡಲು ಪ್ರಚೋದಿಸುವ ದಾಳಿಕೋರರಿಂದ ರಕ್ಷಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಹಾನಿಕಾರಕ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವುದು ಹಾಗೂ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಫೋನ್ ಸಂಖ್ಯೆಗಳು ಅಥವಾ ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್‌ಗಳಂತಹ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಬಹಿರಂಗಪಡಿಸುವುದು. ನೀವು ಅದನ್ನು ಆಫ್ ಮಾಡಿದರೆ, ಪರಿಚಯವಿಲ್ಲದ ಅಥವಾ ಜನಪ್ರಿಯವಲ್ಲದ ಸೈಟ್‌ಗಳನ್ನು ಬ್ರೌಸ್ ಮಾಡುವಾಗ ಬಹಳ ಜಾಗರೂಕರಾಗಿರಿ.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">ಝೂಮ್ ಇನ್</translation>
 <translation id="6583087784430677195">ಆಫ್ ಮಾಡಲು, <ph name="BEGIN_LINK" />ಸೆಟ್ಟಿಂಗ್‌ಗಳು<ph name="END_LINK" /> ತೆರೆಯಿರಿ ಹಾಗೂ ಸ್ವಯಂ ಭರ್ತಿ ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿಗೆ ಹೋಗಿ.</translation>
 <translation id="6585618849026997638">ಬುಕ್‌ಮಾರ್ಕ್ ಒಂದನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ನಿಮಗೆ ಮುಖ್ಯವಾದ ಪುಟಕ್ಕೆ ನೀವು ಹಿಂತಿರುಗಬಹುದಾಗಿದೆ</translation>
+<translation id="6596481460663245319">Google ಬಳಸಿಕೊಂಡು ಚಿತ್ರವನ್ನು ಹುಡುಕಿ</translation>
 <translation id="6598875554591387303">ಪ್ರಕಾಶಕರ ಪ್ರಕಾರ ವಿಂಗಡಿಸಿ</translation>
 <translation id="6603393121510733479">ನಿಮ್ಮ ಸಂಸ್ಥೆ ಖಾಸಗಿ ಬ್ರೌಸಿಂಗ್ ಅನ್ನು ಆಫ್ ಮಾಡಿದೆ.
 <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index f9a6ec5..a4e18af 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">안전하지 않음</translation>
 <translation id="3533202363250687977">모든 시크릿 탭 닫기</translation>
 <translation id="3533436815740441613">새 탭</translation>
+<translation id="3547799431091898961">웹사이트에 로그인되어 있는 Google 계정에서 모두 로그아웃하려면 <ph name="BEGIN_LINK" />Chrome에서 로그아웃<ph name="END_LINK" />합니다.</translation>
 <translation id="3551320343578183772">탭 닫기</translation>
 <translation id="3581564640715911333">다른 언어로 된 페이지의 번역 옵션 제공</translation>
 <translation id="3588820906588687999">새 탭에서 이미지 열기</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">다시 시도</translation>
 <translation id="6377118281273296434">사이트 보안</translation>
 <translation id="6380866119319257197">암호를 잊어버렸거나 이 설정을 변경하려면 <ph name="BEGIN_LINK" />동기화를 재설정<ph name="END_LINK" />합니다.</translation>
+<translation id="6387994324662817823">비밀번호가 이 기기의 Google 비밀번호 관리자에만 저장됩니다</translation>
 <translation id="6389470377220713856">카드 명의</translation>
 <translation id="6406506848690869874">동기화</translation>
 <translation id="6410390304316730527">세이프 브라우징을 사용하면 악성 소프트웨어를 설치하거나 개인정보(예: 비밀번호, 전화번호, 신용카드 정보)를 공개하는 등의 위험한 행동을 하도록 사용자를 속이는 공격자를 차단합니다. 이 기능을 사용 중지하는 경우 익숙하지 않거나 평판이 좋지 않은 사이트를 탐색할 때 주의하시기 바랍니다.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">확대</translation>
 <translation id="6583087784430677195">사용 중지하려면 <ph name="BEGIN_LINK" />Settings(설정)<ph name="END_LINK" />를 열고 AutoFill Passwords(비밀번호 자동 완성)로 이동합니다.</translation>
 <translation id="6585618849026997638">중요한 페이지를 북마크에 추가하여 다시 돌아갈 수 있습니다.</translation>
+<translation id="6596481460663245319">Google로 이미지 검색</translation>
 <translation id="6598875554591387303">게시자순 정렬</translation>
 <translation id="6603393121510733479">조직에서 시크릿 브라우징을 사용 중지했습니다.
 <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
index c160b0d..3c33725 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Кайталап көрүңүз</translation>
 <translation id="6377118281273296434">Сайттын коопсуздугу</translation>
 <translation id="6380866119319257197">Эгер купуя сөз айкашыңызды унутуп калсаңыз же бул жөндөөнү өзгөрткүңүз келсе, <ph name="BEGIN_LINK" />шайкештирүүнү баштапкы абалга келтириңиз<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Сырсөздөр ушул түзмөктө гана Google Сырсөздөрдү башкаргычка сакталат.</translation>
 <translation id="6389470377220713856">Картадагы ысым</translation>
 <translation id="6406506848690869874">Шайкештирүү</translation>
 <translation id="6410390304316730527">Коопсуз серептөө сизди кесепеттүү программаны орнотуудан же сырсөздөр, телефон номерлери жана насыя карталарынын дайындары сыяктуу маалыматыңыздын чабуулчулар тарабынан уурдалышынан коргойт. Эгер аны өчүрсөңүз, бейтааныш же ишенимсиз сайттарды карап чыгууда өзгөчө этият болуңуз.</translation>
@@ -848,6 +849,7 @@
 <translation id="7987685713885608670">Кошумча коопсуздук үчүн Google Сырсөздөрдү башкаргычка сакталганга чейин сырсөздөрдү түзмөгүңүздө шифрлеңиз.</translation>
 <translation id="7993619969781047893">Функциялар айрым сайттарда туура иштебеши мүмкүн</translation>
 <translation id="800361585186029508">URL'дерди Google Chrome'до ачат.</translation>
+<translation id="8016714545083187120">Ар дайым коопсуз туташуулар колдонулсун</translation>
 <translation id="802154636333426148">Жүктөлүп алынбай калды</translation>
 <translation id="8023878949384262191">Бөлүмдү кеңейтет.</translation>
 <translation id="8027581147000338959">Жаңы терезеде ачуу</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
index 0de5630..3db7434 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">ລອງໃໝ່ອີກ</translation>
 <translation id="6377118281273296434">ຄວາມປອດໄພເວັບໄຊ</translation>
 <translation id="6380866119319257197">ຖ້າທ່ານລືມວະລີຜ່ານຂອງທ່ານ ຫຼື ຕ້ອງການປ່ຽນການຕັ້ງຄ່ານີ້, <ph name="BEGIN_LINK" />ຣີເຊັດການຊິ້ງຂໍ້ມູນ<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">ລະຫັດຜ່ານແມ່ນຖືກບັນທຶກໄປໃສ່ຕົວຈັດການລະຫັດຜ່ານ Google ຢູ່ອຸປະກອນນີ້ເທົ່ານັ້ນ.</translation>
 <translation id="6389470377220713856">ຊື່​ຢູ່ໃນ​ບັດ</translation>
 <translation id="6406506848690869874">ຊິງຄ໌</translation>
 <translation id="6410390304316730527">Safe Browsing ປົກປ້ອງທ່ານຈາກຜູ້ໂຈມຕີທີ່ອາດຈະຫຼອກໃຫ້ທ່ານເຮັດບາງຢ່າງທີ່ອັນຕະລາຍ ເຊັ່ນ: ຕິດຕັ້ງຊອບແວອັນຕະລາຍ ຫຼື ເປີດເຜີຍຂໍ້ມູນສ່ວນຕົວ ເຊັ່ນ: ລະຫັດຜ່ານ, ເບີໂທລະສັບ ຫຼື ບັດເຄຣດິດ. ຖ້າທ່ານປິດມັນ, ກະລຸນາລະມັດລະວັງໃນເວລາເຂົ້າເບິ່ງເວັບໄຊທີ່ບໍ່ຄຸ້ນເຄີຍ ຫຼື ບໍ່ເປັນທີ່ຮູ້ຈັກ.</translation>
@@ -850,6 +851,7 @@
 <translation id="7987685713885608670">ເພື່ອຄວາມປອດໄພເພີ່ມເຕີມ, ໃຫ້ເຂົ້າລະຫັດລະຫັດຜ່ານຢູ່ອຸປະກອນຂອງທ່ານກ່ອນທີ່ພວກມັນຈະຖືກບັນທຶກໄປໃສ່ຕົວຈັດການລະຫັດຜ່ານ Google.</translation>
 <translation id="7993619969781047893">ຄຸນສົມບັດໃນບາງເວັບໄຊອາດຈະໃຊ້ບໍ່ໄດ້</translation>
 <translation id="800361585186029508">ເປີດ URL ທີ່ປ້ອນໃນ Google Chrome.</translation>
+<translation id="8016714545083187120">ໃຊ້ການເຊື່ອມຕໍ່ທີ່ປອດໄພຢູ່ສະເໝີ</translation>
 <translation id="802154636333426148">ການດາວໂຫຼດບໍ່ສຳເລັດ</translation>
 <translation id="8023878949384262191">ຂະ​ຫຍາຍ​ສ່ວນ.</translation>
 <translation id="8027581147000338959">ເປີດໃນໜ້າຈໍໃໝ່</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index 35aa014..190d3d9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Nesaugu</translation>
 <translation id="3533202363250687977">Uždaryti visus inkognito skirtukus</translation>
 <translation id="3533436815740441613">Naujas skirtukas</translation>
+<translation id="3547799431091898961">Jei norite atsijungti nuo „Google“ paskyros visose svetainėse, <ph name="BEGIN_LINK" />atsijunkite nuo „Chrome“<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Uždaryti skirtuką</translation>
 <translation id="3581564640715911333">Siūlyti versti puslapius į kitas kalbas</translation>
 <translation id="3588820906588687999">Atidaryti vaizdą naujo skirtuko lape</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Bandyti dar kartą</translation>
 <translation id="6377118281273296434">Svetainės sauga</translation>
 <translation id="6380866119319257197">Jei pamiršote slaptafr. arba norite pakeisti šį nust., <ph name="BEGIN_LINK" />iš naujo nust. sinchr.<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Slaptažodžiai saugomi „Google“ slaptažodžių tvarkytuvėje tik šiame įrenginyje.</translation>
 <translation id="6389470377220713856">Vardas kortel.</translation>
 <translation id="6406506848690869874">Sinchronizavimas</translation>
 <translation id="6410390304316730527">Saugaus naršymo funkcija apsaugo jus nuo atakų vykdytojų, kurie gali bandyti apgaule priversti jus atlikti pavojingus veiksmus, pvz., įdiegti kenkėjišką programinę įrangą ar atskleisti asmens informaciją (pvz., slaptažodžius, telefono numerius ar kredito kortelių duomenis). Jei ją išjungsite, būkite atsargūs naršydami nežinomose ar nepatikimose svetainėse.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Artinti</translation>
 <translation id="6583087784430677195">Jei norite išjungti, atidarykite skiltį <ph name="BEGIN_LINK" />„Nustatymai“<ph name="END_LINK" /> ir eikite į skiltį „Automatinis slaptažodžių pildymas“.</translation>
 <translation id="6585618849026997638">Galite grįžti į jums svarbų puslapį pridėję žymę</translation>
+<translation id="6596481460663245319">Ieškoti vaizdo „Google“</translation>
 <translation id="6598875554591387303">Rūšiuoti pagal leidėją</translation>
 <translation id="6603393121510733479">Organizacija išjungė privatų naršymą.
 <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
index 4dfa86f..9b7888d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Mēģināt vēlreiz</translation>
 <translation id="6377118281273296434">Vietnes drošība</translation>
 <translation id="6380866119319257197">Ja esat aizmirsis ieejas frāzi vai vēlaties mainīt šo iestatījumu, <ph name="BEGIN_LINK" />atiestatiet sinhronizāciju<ph name="END_LINK" />.</translation>
+<translation id="6387994324662817823">Paroles tiek saglabātas tikai šīs ierīces Google paroļu pārvaldniekā.</translation>
 <translation id="6389470377220713856">Vārds un uzvārds uz kartes</translation>
 <translation id="6406506848690869874">Sinhronizācija</translation>
 <translation id="6410390304316730527">Izmantojot drošu pārlūkošanu, jūs iegūstat aizsardzību pret uzbrucējiem, kuri varētu mudināt jūs veikt bīstamas darbības, piemēram, instalēt ļaunprātīgu programmatūru vai atklāt personas informāciju — paroles, tālruņa numurus, kredītkaršu datus u.tml. Ja izslēgsiet drošu pārlūkošanu, ievērojiet piesardzību, pārlūkojot nepazīstamas vietnes vai vietnes ar sliktu reputāciju.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
index 3ec03d2..13e568dd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">Обидете се повторно</translation>
 <translation id="6377118281273296434">Безбедност на сајтот</translation>
 <translation id="6380866119319257197">Ако ја заборавите лозинката или сакате да ја измените поставкава, <ph name="BEGIN_LINK" />ресетирајте ја синхронизацијата<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Лозинките се зачувани во „Управникот со лозинки на Google“ само на уредов.</translation>
 <translation id="6389470377220713856">Име на картичка</translation>
 <translation id="6406506848690869874">Синхронизација</translation>
 <translation id="6410390304316730527">„Безбедно прелистување“ ве заштитува од напаѓачи што може да ве измамат да направите нешто опасно, како што е инсталирањето злонамерен софтвер или откривањето лични податоци, како што се лозинки, телефонски броеви или кредитни картички. Ако го исклучите, бидете внимателни при прелистувањето на непознати сајтови или сајтови со лоша репутација.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index 1dd142e..7e3fdc4e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">സുരക്ഷിതമല്ല</translation>
 <translation id="3533202363250687977">എല്ലാ അദൃശ്യ ടാബുകളും അവസാനിപ്പിക്കുക</translation>
 <translation id="3533436815740441613">പുതിയ ടാബ്</translation>
+<translation id="3547799431091898961">എല്ലാ വെബ്സൈറ്റുകളിലും നിങ്ങളുടെ Google അക്കൗണ്ടിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യാൻ <ph name="BEGIN_LINK" />Chrome-ൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യുക<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">ടാബ് അടയ്‌ക്കുക</translation>
 <translation id="3581564640715911333">പേജുകൾ മറ്റ് ഭാഷകളിലേക്ക് വിവർത്തനം ചെയ്യാനുള്ള ഓഫർ</translation>
 <translation id="3588820906588687999">ചിത്രം പുതിയ ടാബിൽ തുറക്കുക</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">വീണ്ടും ശ്രമിക്കുക</translation>
 <translation id="6377118281273296434">സൈറ്റ് സുരക്ഷ</translation>
 <translation id="6380866119319257197">നിങ്ങൾ പാസ്‌ഫ്രെയ്‌സ് മറന്നുപോയെങ്കിലോ ഈ ക്രമീകരണം മാറ്റണമെങ്കിലോ, <ph name="BEGIN_LINK" />സമന്വയം റീസെറ്റ് ചെയ്യുക<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">നിങ്ങളുടെ ഈ ഉപകരണത്തിലെ Google പാസ്‌വേഡ് മാനേജറിൽ മാത്രമേ പാസ്‌വേഡുകൾ സംരക്ഷിക്കൂ.</translation>
 <translation id="6389470377220713856">കാര്‍‌ഡിലെ പേര്</translation>
 <translation id="6406506848690869874">Sync</translation>
 <translation id="6410390304316730527">ക്ഷുദ്രകരമായ സോഫ്റ്റ്‌വെയറുകൾ ഇൻസ്‌റ്റാൾ ചെയ്യുന്നതോ പാസ്‌വേഡുകൾ, ഫോൺ നമ്പറുകൾ അല്ലെങ്കിൽ ക്രെഡിറ്റ് ‌കാർഡുകൾ പോലുള്ള നിങ്ങളുടെ വ്യക്തിപരമായ വിവരങ്ങൾ വെളിപ്പെടുത്തുന്നതോ പോലെ അപകടകരമായ കാര്യങ്ങൾ ചെയ്യിപ്പിക്കുന്ന രീതിയിൽ നിങ്ങളെ കബളിപ്പിച്ചേക്കാവുന്ന അക്രമകാരികളിൽ നിന്നും സുരക്ഷിത ബ്രൗസിംഗ് നിങ്ങളെ പരിരക്ഷിക്കുന്നു. നിങ്ങൾ ഇത് ഓഫാക്കുകയാണെങ്കിൽ, അപരിചിതമായതോ നിന്ദ്യമായതോ ആയ സൈറ്റുകൾ ബ്രൗസ് ചെയ്യുമ്പോൾ ശ്രദ്ധിക്കുക.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">സൂം ഇൻ ചെയ്യുക</translation>
 <translation id="6583087784430677195">ഓഫാക്കാൻ, <ph name="BEGIN_LINK" />ക്രമീകരണം<ph name="END_LINK" /> തുറന്ന് പാസ്‌വേഡുകൾ സ്വയമേവ പൂരിപ്പിക്കൽ എന്നതിലേക്ക് പോകുക.</translation>
 <translation id="6585618849026997638">ബുക്ക്‌മാർക്ക് ചേർക്കുന്നതിലൂടെ, നിങ്ങൾക്ക് പ്രധാനപ്പെട്ട പേജിലേക്ക് മടങ്ങാനാകും</translation>
+<translation id="6596481460663245319">Google ഉപയോഗിച്ച് ചിത്രം തിരയുക</translation>
 <translation id="6598875554591387303">പ്രസാധകർക്ക് അനുസരിച്ച് അടുക്കുക</translation>
 <translation id="6603393121510733479">നിങ്ങളുടെ സ്ഥാപനം സ്വകാര്യ ബ്രൗസിംഗ് ഓഫാക്കി.
 <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
@@ -848,6 +851,7 @@
 <translation id="7987685713885608670">അധിക സുരക്ഷയ്ക്ക്, Google പാസ്‌വേഡ് മാനേജറിലേക്ക് സംരക്ഷിക്കുന്നതിന് മുമ്പ് നിങ്ങളുടെ ഉപകരണത്തിൽ പാസ്‌വേഡുകൾ എൻക്രിപ്റ്റ് ചെയ്യുക.</translation>
 <translation id="7993619969781047893">ചില സൈറ്റുകളിലെ ഫീച്ചറുകൾക്ക് പ്രവർത്തനം നടത്താനായേക്കില്ല</translation>
 <translation id="800361585186029508">Google Chrome-ൽ നൽകിയിട്ടുള്ള URL-കൾ തുറക്കുന്നു.</translation>
+<translation id="8016714545083187120">എല്ലായ്‌പ്പോഴും സുരക്ഷിതമായ കണക്ഷനുകൾ ഉപയോഗിക്കുക</translation>
 <translation id="802154636333426148">ഡൗൺലോഡ് പരാജയപ്പെട്ടു</translation>
 <translation id="8023878949384262191">വിഭാഗത്തെ വിപുലീകരിക്കുന്നു.</translation>
 <translation id="8027581147000338959">പുതിയ വിന്‍ഡോയില്‍ തുറക്കുക</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
index 2d4405c..7816222 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Дахин оролдоно уу</translation>
 <translation id="6377118281273296434">Сайтын аюулгүй байдал</translation>
 <translation id="6380866119319257197">Хэрэв та нэвтрэх үгээ мартсан, эсвэл тохиргоог нь өөрчлөхийг хүсвэл <ph name="BEGIN_LINK" />синкийг дахин тохируулна уу<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Зөвхөн энэ төхөөрөмж дээр нууц үгийг Google-н Нууц үгний менежерт хадгалдаг.</translation>
 <translation id="6389470377220713856">Картан дээрх нэр</translation>
 <translation id="6406506848690869874">Sync</translation>
 <translation id="6410390304316730527">Аюулгүй үзэх онцлог нь хортой программ хангамж суулгах эсвэл нууц үг, утасны дугаар эсвэл кредит карт зэрэг хувийн мэдээллийг ил болгох зэрэг аюултай үйлдлийг хийлгүүлэхээр таныг хуурч болзошгүй халдагч нараас таныг хамгаалдаг. Хэрэв түүнийг унтраасан бол танихгүй эсвэл баталгаагүй сайт үзэж байхдаа болгоомжтой байна уу.</translation>
@@ -849,6 +850,7 @@
 <translation id="7987685713885608670">Нэмэлт аюулгүй байдлын үүднээс өөрийн төхөөрөмж дээрх нууц үгнүүдийг Google-н Нууц үгний менежерт хадгалахаас нь өмнө шифрлэнэ үү.</translation>
 <translation id="7993619969781047893">Зарим сайтын онцлогууд ажиллахгүй байж болзошгүй</translation>
 <translation id="800361585186029508">Оруулсан URL-г Google Chrome дээр нээдэг.</translation>
+<translation id="8016714545083187120">Үргэлж аюулгүй холболт ашигла</translation>
 <translation id="802154636333426148">Татаж чадсангүй</translation>
 <translation id="8023878949384262191">Хэсгийг өргөтгөдөг.</translation>
 <translation id="8027581147000338959">Шинэ цонхонд нээх</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index 22fc8f9..dcf5ad9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">सुरक्षित नाही</translation>
 <translation id="3533202363250687977">सर्व गुप्त टॅब बंद करा</translation>
 <translation id="3533436815740441613">नवीन टॅब</translation>
+<translation id="3547799431091898961">सर्व वेबसाइटवरील तुमच्या Google खाते मधून साइन आउट करण्यासाठी, <ph name="BEGIN_LINK" />Chrome मधून साइन आउट करणे<ph name="END_LINK" /> हे करा.</translation>
 <translation id="3551320343578183772">टॅब बंद करा</translation>
 <translation id="3581564640715911333">पेजचे अन्य भाषांमध्ये भाषांतर उपलब्ध करा</translation>
 <translation id="3588820906588687999">नवीन टॅबमध्ये इमेज उघडा</translation>
@@ -647,6 +648,7 @@
 <translation id="6374469231428023295">पुन्हा प्रयत्न करा</translation>
 <translation id="6377118281273296434">साइट सुरक्षितता</translation>
 <translation id="6380866119319257197">तुमचा सांकेतिक पासफ्रेझ विसरल्यास किंवा हे सेटिंग बदलू इच्छित असल्यास, <ph name="BEGIN_LINK" />सिंक रीसेट करा<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">पासवर्ड फक्त या डिव्हाइसवर Google पासवर्ड व्यवस्थापक यामध्ये सेव्ह केले जातात.</translation>
 <translation id="6389470377220713856">कार्डवरील नाव</translation>
 <translation id="6406506848690869874">Sync</translation>
 <translation id="6410390304316730527">तुम्हाला फसवून द्वेषयुक्त सॉफ्टवेअर इंस्टॉल करणे किंवा पासवर्ड, फोन नंबर किंवा क्रेडिट कार्डसारखी वैयक्तिक माहिती उघड करणे यांसारखी एखादी धोकादायक गोष्ट करायला लावणार्‍या हल्लेखोरांपासून सुरक्षित ब्राउझिंग तुमचे संरक्षण करते. तुम्ही ते बंद केल्यास, अनोळखी किंवा अप्रतिष्ठित साइट ब्राउझ करताना सावध रहा.</translation>
@@ -682,6 +684,7 @@
 <translation id="6561262006871132942">झूम इन करा</translation>
 <translation id="6583087784430677195">बंद करण्यासाठी, <ph name="BEGIN_LINK" />सेटिंग्ज<ph name="END_LINK" /> उघडा आणि ऑटोफिल पासवर्ड वर जा.</translation>
 <translation id="6585618849026997638">बुकमार्क जोडून तुम्ही तुमच्यासाठी महत्त्वाच्या असलेल्या पेजवर परत जाऊ शकता</translation>
+<translation id="6596481460663245319">Google वापरून इमेज शोधा</translation>
 <translation id="6598875554591387303">प्रकाशक यानुसार क्रमाने लावा</translation>
 <translation id="6603393121510733479">तुमच्या संस्थेने खाजगी ब्राउझिंग बंद केले आहे.
 <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index c7e286b..b46388c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">Cuba Lagi</translation>
 <translation id="6377118281273296434">Keselamatan Tapak</translation>
 <translation id="6380866119319257197">Jika anda terlupa ungkapan laluan atau ingin menukar tetapan ini, <ph name="BEGIN_LINK" />tetapkan semula penyegerakan<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Kata laluan disimpan pada Pengurus Kata Laluan Google pada peranti ini sahaja.</translation>
 <translation id="6389470377220713856">Nama pada Kad</translation>
 <translation id="6406506848690869874">Segerak</translation>
 <translation id="6410390304316730527">Penyemakan Imbas Selamat melindungi anda daripada penyerang yang mungkin memperdaya anda agar melakukan sesuatu yang berbahaya seperti memasang perisian hasad atau mendedahkan maklumat peribadi, seperti kata laluan, nombor telefon atau kad kredit. Jika anda mematikan ciri ini, sila berhati-hati semasa menyemak imbas laman web yang tidak biasa dilawati atau tidak bereputasi baik.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb
index c95da63..ccfdf2ba 100644
--- a/ios/chrome/app/strings/resources/ios_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">ထပ်စမ်းကြည့်ပါ</translation>
 <translation id="6377118281273296434">ဝဘ်ဆိုက်လုံခြုံရေး</translation>
 <translation id="6380866119319257197">သင့်စကားဝှက်ကို မေ့သွားလျှင် သို့မဟုတ် ဤဆက်တင်ကို ပြောင်းလဲလိုလျှင်၊ <ph name="BEGIN_LINK" />စင့်ခ်ပြုလုပ်ခြင်းကို ပြန်လည်သတ်မှတ်ပါ<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">စကားဝှက်များကို ဤစက်တွင်သာရှိသော ‘Google စကားဝှက်မန်နေဂျာ’ သို့ သိမ်းထားသည်။</translation>
 <translation id="6389470377220713856">ကဒ်ပေါ်ရှိ အမည်</translation>
 <translation id="6406506848690869874">ထပ်တူပြုမည်</translation>
 <translation id="6410390304316730527">တိုက်ခိုက်သူများက သင့်ကို လှည့်စား၍ အန္တရာယ်ရှိသည့် ဆော့ဖ်ဝဲကို ထည့်သွင်းစေခြင်း သို့မဟုတ် စကားဝှက်၊ ဖုန်းနံပါတ် သို့မဟုတ် ခရက်ဒစ်ကတ်ကဲ့သို့သော ကိုယ်ရေးကိုယ်တာအချက်အလက်များကို ဖော်ပြစေခြင်းကဲ့သို့သော အန္တရာယ်ရှိသည့်အရာများ လုပ်ဆောင်စေခြင်းမှ 'ဘေးကင်းစွာ အသုံးပြုခြင်း' က ကာကွယ်ပေးသည်။ ၎င်းကို ပိတ်ထားလျှင် မရင်းနှီးသည့် သို့မဟုတ် မယုံကြည်ရသည့် ဝဘ်ဆိုက်များကို ဖွင့်သည့်အခါ သတိပြုပါ။</translation>
@@ -849,6 +850,7 @@
 <translation id="7987685713885608670">လုံခြုံရေးပိုမိုကောင်းမွန်စေရန် စကားဝှက်များကို ‘Google စကားဝှက်မန်နေဂျာ’ သို့ မသိမ်းမီ သင်၏စက်၌ အသွင်ဝှက်ပါ။</translation>
 <translation id="7993619969781047893">အချို့ဝဘ်ဆိုက်များပေါ်ရှိ ဝန်ဆောင်မှုများ ရပ်သွားနိုင်ပါသည်</translation>
 <translation id="800361585186029508">ထည့်သွင်းလိုက်သော URL များကို Google Chrome တွင် ဖွင့်သည်။</translation>
+<translation id="8016714545083187120">လုံခြုံသောချိတ်ဆက်မှုများ အမြဲသုံးရန်</translation>
 <translation id="802154636333426148">ဒေါင်းလုဒ်လုပ်မှု မအောင်မြင်ပါ</translation>
 <translation id="8023878949384262191">ကဏ္ဍကို ချဲ့ပေးသည်</translation>
 <translation id="8027581147000338959">ဝင်းဒိုးအသစ်တွင် ဖွင့်ရန်</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
index 103cbeca..57b0a2f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">सुरक्षित छैन</translation>
 <translation id="3533202363250687977">सबै इन्कोग्निटो ट्याबहरू बन्द गर्नुहोस्</translation>
 <translation id="3533436815740441613">नयाँ ट्याब</translation>
+<translation id="3547799431091898961">सबै वेबसाइटहरूमा आफ्नो Google खाताबाट साइन आउट गर्न <ph name="BEGIN_LINK" />Chrome बाट साइन आउट गर्नुहोस्<ph name="END_LINK" />।</translation>
 <translation id="3551320343578183772">ट्याब बन्द गर्नुहोस्</translation>
 <translation id="3581564640715911333">पृष्ठहरू अन्य भाषामा अनुवाद गर्ने प्रस्ताव गर्नुहोस्</translation>
 <translation id="3588820906588687999">छविलाई नयाँ ट्याबमा खोल्नुहोस्</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">फेरि प्रयास गर्नुहोस्</translation>
 <translation id="6377118281273296434">साइटको सुरक्षा</translation>
 <translation id="6380866119319257197">यदि तपाईँले आफ्नो पासफ्रेज बिर्सनुभयो वा यस सेटिङलाई परिवर्तन गर्न चाहनुहुन्छ भने <ph name="BEGIN_LINK" />सिंकलाई रिसेट गर्नुहोस्<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">पासवर्डहरू यो डिभाइसको Google पासवर्ड म्यानेजरमा मात्र सेभ गरिन्छन्।</translation>
 <translation id="6389470377220713856">कार्डमा रहेको नाम</translation>
 <translation id="6406506848690869874">समक्रमण</translation>
 <translation id="6410390304316730527">सुरक्षित ब्राउजिङले तपाईंलाई झुक्याएर हानिकारक सफ्टवेयर स्थापना गर्न लगाउने, तपाईंका पासवर्ड, फोन नम्बर वा क्रेडिट कार्डको विवरण जस्ता तपाईंका व्यक्तिगत जानकारी खुलासा गर्न लगाउने वा यस्तै अन्य जोखिमपूर्ण कार्यहरू गर्न लगाउने आक्रमणकारीहरूबाट सुरक्षित राख्छ। तपाईंले यो सेवा निष्क्रिय पार्नुभएका खण्डमा अपरिचित वा नाम नसुनेका साइटहरू चलाउँदा सतर्क रहनुहोला।</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">जुम बढाउनुहोस्</translation>
 <translation id="6583087784430677195">तपाईं अटोफिल गर्ने सुविधा अफ गर्न चाहनुहुन्छ भने <ph name="BEGIN_LINK" />सेटिङ<ph name="END_LINK" /> खोल्नुहोस् अनि "पासवर्डहरू अटोफिल गरियोस्" मा जानुहोस्।</translation>
 <translation id="6585618849026997638">तपाईं आफ्ना लागि महत्त्वपूर्ण पृष्ठ बुकमार्क गरी सजिलैसँग उक्त पृष्ठमा फर्कन सक्नुहुन्छ</translation>
+<translation id="6596481460663245319">Google मार्फत फोटो खोज्नुहोस्</translation>
 <translation id="6598875554591387303">प्रकाशकअनुसार क्रमबद्ध गर्नुहोस्</translation>
 <translation id="6603393121510733479">तपाईंको सङ्गठनले गोप्य रूपमा ब्राउज गर्ने सुविधा अफ गरेको छ।
 <ph name="BEGIN_LINK" />थप जान्नुहोस्<ph name="END_LINK" /></translation>
@@ -848,6 +851,7 @@
 <translation id="7987685713885608670">आफ्ना पासवर्डहरू अझ सुरक्षित राख्नका निम्ति ती पासवर्डहरू आफ्नो डिभाइसमा इन्क्रिप्ट गरेपछि मात्र Google पासवर्ड म्यानेजरमा सेभ गर्नुहोस्।</translation>
 <translation id="7993619969781047893">कयौँ साइटका सुविधाहरूले काम नगर्न सक्छन्</translation>
 <translation id="800361585186029508">Google Chrome मा प्रविष्टि गरिएका URL हरू खोल्छ।</translation>
+<translation id="8016714545083187120">सधैँ सुरक्षित कनेक्सन प्रयोग गरियोस्</translation>
 <translation id="802154636333426148">डाउनलोड गर्न सकिएन</translation>
 <translation id="8023878949384262191">खण्ड विस्तार गर्छ</translation>
 <translation id="8027581147000338959">नयाँ विन्डोमा खोल्नुहोस्</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index c9bdcfa..db8b0c4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Niet beveiligd</translation>
 <translation id="3533202363250687977">Alle incognitotabbladen sluiten</translation>
 <translation id="3533436815740441613">Nieuw tabblad</translation>
+<translation id="3547799431091898961">Als je op alle websites wilt uitloggen van je Google-account, <ph name="BEGIN_LINK" />log je uit van Chrome<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Tabblad sluiten</translation>
 <translation id="3581564640715911333">Aanbieden pagina's in andere talen te vertalen</translation>
 <translation id="3588820906588687999">Afbeelding openen op nieuw tabblad</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Opnieuw proberen</translation>
 <translation id="6377118281273296434">Sitebeveiliging</translation>
 <translation id="6380866119319257197">Als je je wachtwoordzin vergeet of deze instelling wilt wijzigen, <ph name="BEGIN_LINK" />stel je de synchronisatie opnieuw in<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Wachtwoorden worden alleen opgeslagen in Google Wachtwoordmanager op dit apparaat.</translation>
 <translation id="6389470377220713856">Naam op pas</translation>
 <translation id="6406506848690869874">Synchronisatie</translation>
 <translation id="6410390304316730527">Safe Browsing beschermt je tegen aanvallers die je proberen te misleiden zodat je iets gevaarlijks doet, zoals schadelijke software installeren of persoonlijke informatie zoals wachtwoorden, telefoonnummers of creditcards openbaar maken. Als je deze functie uitzet, moet je voorzichtig zijn als je op onbekende of onbetrouwbare sites browst.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Inzoomen</translation>
 <translation id="6583087784430677195">Open <ph name="BEGIN_LINK" />Instellingen<ph name="END_LINK" /> en ga naar Wachtwoorden automatisch invullen om dit uit te zetten.</translation>
 <translation id="6585618849026997638">Je kunt terugkeren naar een pagina die belangrijk voor je is door een bookmark toe te voegen</translation>
+<translation id="6596481460663245319">Afbeelding zoeken met Google</translation>
 <translation id="6598875554591387303">Sorteren op uitgever</translation>
 <translation id="6603393121510733479">Je organisatie heeft privé browsen uitgezet.
 <ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /></translation>
@@ -848,6 +851,7 @@
 <translation id="7987685713885608670">Voor extra beveiliging versleutel je je wachtwoorden op je apparaat voordat ze worden opgeslagen in Google Wachtwoordmanager.</translation>
 <translation id="7993619969781047893">Functies op bepaalde sites werken mogelijk niet meer</translation>
 <translation id="800361585186029508">Hiermee worden de ingevoerde URL's geopend in Google Chrome.</translation>
+<translation id="8016714545083187120">Altijd beveiligde verbindingen gebruiken</translation>
 <translation id="802154636333426148">Downloaden mislukt</translation>
 <translation id="8023878949384262191">Hiermee wordt het gedeelte uitgevouwen.</translation>
 <translation id="8027581147000338959">Openen in nieuw venster</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb
index 438c171..4de9de3b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Ikke sikker</translation>
 <translation id="3533202363250687977">Lukk alle inkognitofaner</translation>
 <translation id="3533436815740441613">Ny fane</translation>
+<translation id="3547799431091898961">For å logge av Google-kontoen din på alle nettsteder, <ph name="BEGIN_LINK" />logg av Chrome<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Lukk fanen</translation>
 <translation id="3581564640715911333">Tilby å oversette sider på andre språk</translation>
 <translation id="3588820906588687999">Åpne bildet i en ny fane</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Prøv på nytt</translation>
 <translation id="6377118281273296434">Nettstedssikkerhet</translation>
 <translation id="6380866119319257197">Hvis du glemmer passordfrasen din eller vil endre denne innstillingen, må du <ph name="BEGIN_LINK" />tilbakestille synkroniseringen<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Passord lagres i Google Passordlagring kun på denne enheten.</translation>
 <translation id="6389470377220713856">Navn som er oppført på kortet</translation>
 <translation id="6406506848690869874">Synkroniser</translation>
 <translation id="6410390304316730527">Safe Browsing beskytter deg mot angripere som kan prøve å lure deg til å gjøre farlige ting, som å installere skadelig programvare eller avsløre personopplysninger, for eksempel passord, telefonnumre eller kredittkortinformasjon. Hvis du slår det av, må du være forsiktig når du surfer på ukjente eller useriøse nettsteder.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Zoom inn</translation>
 <translation id="6583087784430677195">For å slå av funksjonen, åpne <ph name="BEGIN_LINK" />Innstillinger<ph name="END_LINK" /> og gå til Autoutfylling av passord.</translation>
 <translation id="6585618849026997638">Du kan komme tilbake til sider som er viktige for deg, ved å legge til bokmerker</translation>
+<translation id="6596481460663245319">Søk etter bildet med Google</translation>
 <translation id="6598875554591387303">Sorter etter utgiver</translation>
 <translation id="6603393121510733479">Organisasjonen din har slått av privat surfing.
 <ph name="BEGIN_LINK" />Finn ut mer<ph name="END_LINK" /></translation>
@@ -848,6 +851,7 @@
 <translation id="7987685713885608670">For ekstra trygghet kan du kryptere passord på enheten før de lagres i Google Passordlagring.</translation>
 <translation id="7993619969781047893">Det kan hende at funksjoner på enkelte nettsteder slutter å fungere</translation>
 <translation id="800361585186029508">Åpner de oppgitte nettadressene i Google Chrome.</translation>
+<translation id="8016714545083187120">Bruk alltid sikre tilkoblinger</translation>
 <translation id="802154636333426148">Nedlastingen mislyktes</translation>
 <translation id="8023878949384262191">Utvider delen.</translation>
 <translation id="8027581147000338959">Åpne i nytt vindu</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb
index 3b60779..e6352668 100644
--- a/ios/chrome/app/strings/resources/ios_strings_or.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -643,6 +643,7 @@
 <translation id="6374469231428023295">ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ</translation>
 <translation id="6377118281273296434">ସାଇଟ୍ ସୁରକ୍ଷା</translation>
 <translation id="6380866119319257197">ଯଦି ଆପଣ ନିଜର ପାସ୍‌ଫ୍ରେଜ୍ ଭୁଲିଯାଇଛନ୍ତି କିମ୍ବା ଏହି ସେଟିଂ ବଦଳାବାକୁ ଚାହୁଁଛନ୍ତି, ତେବେ <ph name="BEGIN_LINK" />ସିଙ୍କ୍ ରିସେଟ୍ କରନ୍ତୁ<ph name="END_LINK" />।</translation>
+<translation id="6387994324662817823">ଏହି ଡିଭାଇସରେ ପାସୱାର୍ଡଗୁଡ଼ିକ କେବଳ Google ପାସୱାର୍ଡ ମ୍ୟାନେଜରରେ ସେଭ କରାଯାଏ।</translation>
 <translation id="6389470377220713856">କାର୍ଡରେ ଥିବା ନାମ</translation>
 <translation id="6406506848690869874">ସିଙ୍କ୍‌ କରନ୍ତୁ</translation>
 <translation id="6410390304316730527">ସେଫ୍ ବ୍ରାଉଜିଂ ଆପଣଙ୍କୁ ଆକ୍ରମଣକାରୀଙ୍କ ଠାରୁ ରକ୍ଷା କରିଥାଏ, ଯେଉଁମାନେ ଆପଣଙ୍କୁ କିଛି ବିପଦଜନକ କାର୍ଯ୍ୟ ଯେପରି, କ୍ଷତିକାରକ ସଫ୍ଟୱେୟାର୍ ଇନଷ୍ଟଲ୍ କରିବା କିମ୍ବା ଆପଣଙ୍କ ପାସୱାର୍ଡ, ଫୋନ୍ ନମ୍ବର ବା କ୍ରେଡିଟ୍ କାର୍ଡ ପରି ବ୍ୟକ୍ତିଗତ ସୂଚନା ପ୍ରକାଶ କରିବାକୁ ପ୍ରତାରଣା କରିପାରନ୍ତି। ଯଦି ଆପଣ ଏହାକୁ ବନ୍ଦ କରନ୍ତି, ତେବେ ଅପରିଚିତ ଏବଂ ଅସୁରକ୍ଷିତ ସାଇଟଗୁଡ଼ିକୁ ବ୍ରାଉଜ୍ କରିବା ବେଳେ ସତର୍କ ରୁହନ୍ତୁ।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
index 0504f2a..ecb9d29 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ</translation>
 <translation id="6377118281273296434">ਸਾਈਟ ਸੁਰੱਖਿਆ</translation>
 <translation id="6380866119319257197">ਜੇਕਰ ਤੁਸੀਂ ਆਪਣਾ ਪਾਸਫਰੇਜ਼ ਭੁੱਲ ਜਾਂਦੇ ਹੋ ਜਾਂ ਇਸ ਸੈਟਿੰਗ ਨੂੰ ਬਦਲਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ <ph name="BEGIN_LINK" />ਸਿੰਕ ਰੀਸੈੱਟ ਕਰੋ<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">ਪਾਸਵਰਡ ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ 'ਤੇ Google ਪਾਸਵਰਡ ਪ੍ਰਬੰਧਕ ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੇ ਗਏ ਹਨ।</translation>
 <translation id="6389470377220713856">ਕਾਰਡ ਤੇ ਨਾਮ</translation>
 <translation id="6406506848690869874">ਸਿੰਕ ਕਰੋ</translation>
 <translation id="6410390304316730527">ਸੁਰੱਖਿਅਤ ਬ੍ਰਾਊਜ਼ਿੰਗ ਅਜਿਹੇ ਹਮਲਾਵਾਰਾਂ ਤੋਂ ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਕਰਦੀ ਹੈ ਜੋ ਖਰਾਬ ਸਾਫ਼ਟਵੇਅਰ ਨੂੰ ਸਥਾਪਤ ਕਰਨ ਜਾਂ ਪਾਸਵਰਡ, ਫ਼ੋਨ ਨੰਬਰ, ਜਾਂ ਕ੍ਰੈਡਿਟ ਕਾਰਡਾਂ ਵਰਗੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਦਾ ਖੁਲਾਸਾ ਕਰਨ ਵਰਗੇ ਖਤਰਨਾਕ ਕੰਮ ਕਰਕੇ ਤੁਹਾਡੇ ਨਾਲ ਚਾਲਬਾਜ਼ੀ ਕਰ ਸਕਦੇ ਹਨ। ਜੇ ਤੁਸੀਂ ਇਸਨੂੰ ਬੰਦ ਕਰਦੇ ਹੋ, ਤਾਂ ਅਣਪਛਾਤੀਆਂ ਅਤੇ ਅਪ੍ਰਸਿੱਧ ਸਾਈਟਾਂ 'ਤੇ ਬ੍ਰਾਊਜ਼ ਕਰਦੇ ਸਮੇਂ ਸਾਵਧਾਨ ਰਹੋ।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
index 54279f21..4d5e6f7d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Spróbuj jeszcze raz</translation>
 <translation id="6377118281273296434">Bezpieczeństwo witryny</translation>
 <translation id="6380866119319257197">Jeśli nie pamiętasz hasła lub chcesz zmienić to ustawienie, <ph name="BEGIN_LINK" />zresetuj synchronizację<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Hasła są zapisywane w Menedżerze haseł Google tylko na tym urządzeniu.</translation>
 <translation id="6389470377220713856">Imię i nazwisko na karcie</translation>
 <translation id="6406506848690869874">Synchronizacja</translation>
 <translation id="6410390304316730527">Bezpieczne przeglądanie chroni Cię przed osobami przeprowadzającymi ataki, które mogą podstępem nakłonić Cię do wykonania niebezpiecznych czynności, takich jak zainstalowanie oprogramowania czy ujawnienie danych osobowych (na przykład haseł, numerów telefonów lub danych kart kredytowych). Gdy wyłączasz tę funkcję, zachowaj ostrożność, przeglądając nieznane lub cieszące się złą sławą strony.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
index 25281d2..3856d6f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Não seguro</translation>
 <translation id="3533202363250687977">Fechar todas as guias anônimas</translation>
 <translation id="3533436815740441613">Nova guia</translation>
+<translation id="3547799431091898961">Para sair da sua Conta do Google em todos os sites, <ph name="BEGIN_LINK" />saia do Chrome<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Fechar guia</translation>
 <translation id="3581564640715911333">Oferecer para traduzir páginas em outros idiomas</translation>
 <translation id="3588820906588687999">Abrir imagem em "Nova guia"</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Repetir</translation>
 <translation id="6377118281273296434">Segurança do site</translation>
 <translation id="6380866119319257197">Se você esquecer a senha longa ou quiser alterar essa configuração, <ph name="BEGIN_LINK" />redefina a sincronização<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">As senhas são salvas no Gerenciador de senhas do Google somente neste dispositivo.</translation>
 <translation id="6389470377220713856">Nome no cartão</translation>
 <translation id="6406506848690869874">Sincronizar</translation>
 <translation id="6410390304316730527">O "Navegação segura" protege contra invasores que podem levar você a fazer algo perigoso, como instalar um software malicioso ou revelar informações pessoais como senhas, números de telefone ou cartões de crédito. Se desativá-lo, tenha cuidado ao navegar em sites desconhecidos ou com má reputação.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Aumentar zoom</translation>
 <translation id="6583087784430677195">Para desativar, abra <ph name="BEGIN_LINK" />Ajustes<ph name="END_LINK" /> e acesse "Preenchimento Automático de Senhas".</translation>
 <translation id="6585618849026997638">Você pode adicionar uma página importante aos favoritos para acessá-la com facilidade</translation>
+<translation id="6596481460663245319">Pesquisar imagem com o Google</translation>
 <translation id="6598875554591387303">Ordenar por editor</translation>
 <translation id="6603393121510733479">Sua organização desativou a navegação privada.
 <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
@@ -848,6 +851,7 @@
 <translation id="7987685713885608670">Para ter mais segurança, criptografe as senhas no dispositivo antes que elas sejam salvas no Gerenciador de senhas do Google.</translation>
 <translation id="7993619969781047893">Os recursos de alguns sites podem apresentar falhas</translation>
 <translation id="800361585186029508">Abre os URLs fornecidos no Google Chrome.</translation>
+<translation id="8016714545083187120">Sempre usar conexões seguras</translation>
 <translation id="802154636333426148">Falha no download</translation>
 <translation id="8023878949384262191">Expande a seção.</translation>
 <translation id="8027581147000338959">Abrir em uma nova janela</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
index 3681213e..14f59bd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">Tentar novamente</translation>
 <translation id="6377118281273296434">Segurança do site</translation>
 <translation id="6380866119319257197">Se se esquecer da frase de acesso ou pretender alterar esta definição, <ph name="BEGIN_LINK" />reponha a sincronização<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">As palavras-passe são guardadas no Gestor de palavras-passe da Google apenas neste dispositivo.</translation>
 <translation id="6389470377220713856">Nome no cartão</translation>
 <translation id="6406506848690869874">Sincronização</translation>
 <translation id="6410390304316730527">A Navegação segura permite-lhe proteger-se contra os atacantes que o podem enganar no sentido de fazer algo perigoso, como instalar software malicioso, ou revelar informações pessoais, como palavras-passe, números de telefone ou cartões de crédito. Se a desativar, tenha cuidado ao navegar em sites desconhecidos ou pouco credíveis.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
index 7bd1497..b17d84a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Nesecurizat</translation>
 <translation id="3533202363250687977">Închide toate filele incognito</translation>
 <translation id="3533436815740441613">Filă nouă</translation>
+<translation id="3547799431091898961">Pentru a te deconecta de la Contul Google pe toate site-urile, <ph name="BEGIN_LINK" />deconectează-te de la Chrome<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Închide fila</translation>
 <translation id="3581564640715911333">Oferă traducerea paginilor în alte limbi</translation>
 <translation id="3588820906588687999">Deschide imaginea într-o filă nouă</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Încearcă din nou</translation>
 <translation id="6377118281273296434">Securitatea site-ului</translation>
 <translation id="6380866119319257197">Dacă uiți expresia de acces sau dorești să modifici această setare, <ph name="BEGIN_LINK" />resetează sincronizarea<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Parolele sunt salvate în Managerul de parole Google numai pe acest dispozitiv.</translation>
 <translation id="6389470377220713856">Nume de pe card</translation>
 <translation id="6406506848690869874">Sincronizare</translation>
 <translation id="6410390304316730527">Navigarea sigură te protejează împotriva atacatorilor care ar putea să te păcălească să faci lucruri periculoase, cum ar fi să instalezi software rău intenționat sau să dezvălui informații cu caracter personal, cum ar fi parole, numere de telefon sau carduri de credit. Dacă o dezactivezi, ai grijă atunci când navighezi pe site-uri nefamiliare sau nelegitime.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Mărește</translation>
 <translation id="6583087784430677195">Pentru dezactivare, deschide <ph name="BEGIN_LINK" />Setările<ph name="END_LINK" /> și accesează Completare automată parole.</translation>
 <translation id="6585618849026997638">Poți să revii la o pagină importantă adăugând un marcaj</translation>
+<translation id="6596481460663245319">Caută imaginea cu Google</translation>
 <translation id="6598875554591387303">Sortează după editor</translation>
 <translation id="6603393121510733479">Organizația ta a dezactivat navigarea privată.
 <ph name="BEGIN_LINK" />Află mai multe<ph name="END_LINK" /></translation>
@@ -848,6 +851,7 @@
 <translation id="7987685713885608670">Pentru siguranță suplimentară, criptează parolele pe dispozitiv înainte să se salveze în Managerul de parole Google.</translation>
 <translation id="7993619969781047893">Este posibil ca funcțiile de pe anumite site-uri să fie întrerupte</translation>
 <translation id="800361585186029508">Deschide adresele URL introduse în Google Chrome.</translation>
+<translation id="8016714545083187120">Folosește întotdeauna conexiuni securizate</translation>
 <translation id="802154636333426148">Descărcarea nu a reușit</translation>
 <translation id="8023878949384262191">Extinde secțiunea.</translation>
 <translation id="8027581147000338959">Deschideți într-o fereastră nouă</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
index c27e748..32a09b66 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Повторить</translation>
 <translation id="6377118281273296434">Безопасность сайта</translation>
 <translation id="6380866119319257197">Если вы забыли кодовую фразу или хотите изменить эту настройку, <ph name="BEGIN_LINK" />сбросьте параметры синхронизации<ph name="END_LINK" />.</translation>
+<translation id="6387994324662817823">Пароли сохранены в Google Диспетчере паролей только на этом устройстве.</translation>
 <translation id="6389470377220713856">Владелец карты</translation>
 <translation id="6406506848690869874">Синхронизация</translation>
 <translation id="6410390304316730527">Безопасный просмотр помогает предотвратить установку вредоносного ПО и защищает от злоумышленников, которые могут попытаться обманным путем завладеть вашей персональной информацией, например паролями, номерами телефонов и данными банковских карт. Если вы решите отключить эту функцию, будьте особенно осторожны при просмотре незнакомых сайтов.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_si.xtb b/ios/chrome/app/strings/resources/ios_strings_si.xtb
index 58a2709..443008d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_si.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_si.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">නැවත උත්සහ කරන්න</translation>
 <translation id="6377118281273296434">වෙබ් අඩවි ආරක්ෂාව</translation>
 <translation id="6380866119319257197">ඔබට ඔබේ මුර-වැකිකඩ අමතක නම් හෝ මෙම සැකසීම් වෙනස් කිරීමට අවශ්‍ය නම්, <ph name="BEGIN_LINK" />සමමුහුර්ත කිරීම නැවත සකසන්න<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">මුරපද මෙම උපාංගයේ Google මුරපද කළමනාකරු තුළ පමණක් සුරැකේ.</translation>
 <translation id="6389470377220713856">කාඩ්පතෙහි ඇති නම</translation>
 <translation id="6406506848690869874">සමමුහුව</translation>
 <translation id="6410390304316730527">ආරක්ෂිත බ්‍රවුස් කිරීම දුෂ්ට මෘදුකාංග ස්ථාපිත කිරීම හෝ මුරපද, දුරකථන අංක, හෝ ණය කාඩ්පත් අංක වැනි පුද්ගලික තොරතුරු හෙළි කිරීම වැනි යම් අනතුරුදායක දේ කිරීමට ඔබට උපාය කළ හැකි ප්‍රහාරකයින්ට එරෙහිව ඔබව ආරක්‍ෂා කරයි. ඔබ එය අක්‍රිය කරන්නේ නම්, නුපුරුදු හෝ අසම්භාවනීය වෙබ් අඩවි බ්‍රවුස් කරන විට පරීක්‍ෂාකාරී වන්න.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
index c714213..22b9d96 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Nezabezpečené</translation>
 <translation id="3533202363250687977">Zavrieť všetky karty inkognito</translation>
 <translation id="3533436815740441613">Nová karta</translation>
+<translation id="3547799431091898961">Ak sa chcete odhlásiť zo svojho účtu Google na všetkých weboch, <ph name="BEGIN_LINK" />odhláste sa z Chromu<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Zatvoriť kartu</translation>
 <translation id="3581564640715911333">Ponúkať preklad stránok v ďalších jazykoch</translation>
 <translation id="3588820906588687999">Otvoriť obrázok na novej karte</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Skúsiť znova</translation>
 <translation id="6377118281273296434">Zabezpečenie webu</translation>
 <translation id="6380866119319257197">Ak prístupovú frázu zabudnete alebo budete chcieť toto nastavenie zmeniť, <ph name="BEGIN_LINK" />resetujte synchronizáciu<ph name="END_LINK" />.</translation>
+<translation id="6387994324662817823">Heslá sa ukladajú do správcu hesiel od Googlu iba v tomto zariadení.</translation>
 <translation id="6389470377220713856">Meno na karte</translation>
 <translation id="6406506848690869874">Synchronizácia</translation>
 <translation id="6410390304316730527">Bezpečné prehliadanie vás chráni pred útočníkmi, ktorí vás môžu oklamať, aby ste urobili niečo nebezpečné, napríklad nainštalovali škodlivý softvér alebo odhalili osobné údaje, ako sú heslá, telefónne čísla alebo kreditné karty. Ak ho vypnete, pri prehliadaní neznámych alebo pochybných webov postupujte opatrne.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Priblížiť</translation>
 <translation id="6583087784430677195">Túto funkciu môžete vypnete v <ph name="BEGIN_LINK" />Nastaveniach<ph name="END_LINK" /> v sekcii Automatické dopĺňanie hesiel.</translation>
 <translation id="6585618849026997638">Na stránku, ktorá je pre vás dôležitá, sa môžete vrátiť pridaním záložky</translation>
+<translation id="6596481460663245319">Vyhľadať obrázok Googlom</translation>
 <translation id="6598875554591387303">Zoradiť podľa vydavateľa</translation>
 <translation id="6603393121510733479">Vaša organizácia vypla anonymné prehliadanie.
 <ph name="BEGIN_LINK" />Ďalšie informácie<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
index 257c43a..aa4cf8b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Vnovični poskus</translation>
 <translation id="6377118281273296434">Varnost spletnega mesta</translation>
 <translation id="6380866119319257197">Če pozabite geslo ali želite spremeniti to nastavitev, <ph name="BEGIN_LINK" />ponastavite sinhronizacijo<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Gesla so shranjena v Google Upravitelju gesel samo v tej napravi.</translation>
 <translation id="6389470377220713856">Name on Card</translation>
 <translation id="6406506848690869874">Sinhronizacija</translation>
 <translation id="6410390304316730527">Varno brskanje vas ščiti pred napadalci, ki vas lahko z zavajanjem morda pripravijo do tega, da storite kaj nevarnega – denimo, da namestite zlonamerno programsko opremo ali razkrijete osebne podatke, na primer gesla, telefonske številke ali podatke kreditnih kartic. Če ga izklopite, bodite previdni pri brskanju po neznanih ali razvpitih spletnih mestih.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
index 9f4e5b3..7770dc5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sq.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Provo përsëri</translation>
 <translation id="6377118281273296434">Siguria e sajtit</translation>
 <translation id="6380866119319257197">Nëse e harron frazën e kalimit apo dëshiron të ndryshosh këtë cilësim, <ph name="BEGIN_LINK" />rivendos sinkronizimin<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Fjalëkalimet ruhen në "Menaxherin e fjalëkalimeve" të Google vetëm në këtë pajisje.</translation>
 <translation id="6389470377220713856">Emri në kartë</translation>
 <translation id="6406506848690869874">Sinkronizo</translation>
 <translation id="6410390304316730527">"Shfletimi i sigurt" të mbron kundër sulmuesve që mund të të mashtrojnë që të bësh diçka të rrezikshme si instalimi i softuerëve keqdashës ose të zbulosh informacion personal si fjalëkalime, numra telefoni ose karta krediti. Nëse e çaktivizon, ki kujdes kur shfleton sajte të panjohura ose pa reputacion.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
index 0f0fbf0..a9a59ae2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Nije bezbedno</translation>
 <translation id="3533202363250687977">Zatvori sve kartice bez arhiviranja</translation>
 <translation id="3533436815740441613">Nova kartica</translation>
+<translation id="3547799431091898961">Da biste se odjavili sa Google naloga na svim veb-sajtovima, <ph name="BEGIN_LINK" />odjavite se iz Chrome-a<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Zatvori karticu</translation>
 <translation id="3581564640715911333">Ponudi prevod stranica na drugim jezicima</translation>
 <translation id="3588820906588687999">Otvori sliku na novoj kartici</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Probaj ponovo</translation>
 <translation id="6377118281273296434">Bezbednost sajta</translation>
 <translation id="6380866119319257197">Ako zaboravite pristupnu frazu ili želite da promenite ovo podešavanje, <ph name="BEGIN_LINK" />resetujte sinhronizaciju<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Lozinke se čuvaju u Google menadžeru lozinki samo na ovom uređaju.</translation>
 <translation id="6389470377220713856">Ime i prezime na kartici</translation>
 <translation id="6406506848690869874">Sinhronizacija</translation>
 <translation id="6410390304316730527">Bezbedno pregledanje vas štiti od napadača koji mogu da vas navedu da uradite nešto opasno, na primer, da instalirate zlonamerni softver ili otkrijete lične podatke poput lozinki, brojeva telefona ili brojeva kreditnih kartica. Ako ga isključite, budite oprezni pri pregledanju nepoznatih ili nebezbednih sajtova.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Uvećajte</translation>
 <translation id="6583087784430677195">Da biste isključili, otvorite <ph name="BEGIN_LINK" />Podešavanja<ph name="END_LINK" /> i idite u Automatski popunjavaj lozinke.</translation>
 <translation id="6585618849026997638">Ako dodate obeleživač, možete da se vratite na stranicu koja vam je važna</translation>
+<translation id="6596481460663245319">Traži sliku na Google-u</translation>
 <translation id="6598875554591387303">Sortiraj prema objavljivaču</translation>
 <translation id="6603393121510733479">Organizacija je isključila privatno pregledanje.
 <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
@@ -848,6 +851,7 @@
 <translation id="7987685713885608670">Radi dodatne zaštite šifrujte lozinke na uređaju pre nego što se sačuvaju u Google menadžeru lozinki.</translation>
 <translation id="7993619969781047893">Funkcije na nekim sajtovima mogu da prestanu sa radom</translation>
 <translation id="800361585186029508">Otvara unete URL-ove u Google Chrome-u.</translation>
+<translation id="8016714545083187120">Uvek koristi bezbedne veze</translation>
 <translation id="802154636333426148">Preuzimanje nije uspelo</translation>
 <translation id="8023878949384262191">Proširuje odeljak.</translation>
 <translation id="8027581147000338959">Otvori u novom prozoru</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
index 338af75..076611d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Није безбедно</translation>
 <translation id="3533202363250687977">Затвори све картице без архивирања</translation>
 <translation id="3533436815740441613">Нова картица</translation>
+<translation id="3547799431091898961">Да бисте се одјавили са Google налога на свим веб-сајтовима, <ph name="BEGIN_LINK" />одјавите се из Chrome-а<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Затвори картицу</translation>
 <translation id="3581564640715911333">Понуди превод страница на другим језицима</translation>
 <translation id="3588820906588687999">Отвори слику на новој картици</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Пробај поново</translation>
 <translation id="6377118281273296434">Безбедност сајта</translation>
 <translation id="6380866119319257197">Ако заборавите приступну фразу или желите да промените ово подешавање, <ph name="BEGIN_LINK" />ресетујте синхронизацију<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Лозинке се чувају у Google менаџеру лозинки само на овом уређају.</translation>
 <translation id="6389470377220713856">Име и презиме на картици</translation>
 <translation id="6406506848690869874">Синхронизација</translation>
 <translation id="6410390304316730527">Безбедно прегледање вас штити од нападача који могу да вас наведу да урадите нешто опасно, на пример, да инсталирате злонамерни софтвер или откријете личне податке попут лозинки, бројева телефона или бројева кредитних картица. Ако га искључите, будите опрезни при прегледању непознатих или небезбедних сајтова.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Увећајте</translation>
 <translation id="6583087784430677195">Да бисте искључили, отворите <ph name="BEGIN_LINK" />Подешавања<ph name="END_LINK" /> и идите у Аутоматски попуњавај лозинке.</translation>
 <translation id="6585618849026997638">Ако додате обележивач, можете да се вратите на страницу која вам је важна</translation>
+<translation id="6596481460663245319">Тражи слику на Google-у</translation>
 <translation id="6598875554591387303">Сортирај према објављивачу</translation>
 <translation id="6603393121510733479">Организација је искључила приватно прегледање.
 <ph name="BEGIN_LINK" />Сазнајте више<ph name="END_LINK" /></translation>
@@ -848,6 +851,7 @@
 <translation id="7987685713885608670">Ради додатне заштите шифрујте лозинке на уређају пре него што се сачувају у Google менаџеру лозинки.</translation>
 <translation id="7993619969781047893">Функције на неким сајтовима могу да престану са радом</translation>
 <translation id="800361585186029508">Отвара унете URL-ове у Google Chrome-у.</translation>
+<translation id="8016714545083187120">Увек користи безбедне везе</translation>
 <translation id="802154636333426148">Преузимање није успело</translation>
 <translation id="8023878949384262191">Проширује одељак.</translation>
 <translation id="8027581147000338959">Отвори у новом прозору</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index c6d118c4..c589f1625 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Försök igen</translation>
 <translation id="6377118281273296434">Säkerhet på webbplatsen</translation>
 <translation id="6380866119319257197">Om du glömmer lösenfrasen eller vill ändra inställningen <ph name="BEGIN_LINK" />återställer du synkroniseringen<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Lösenorden sparas med Google Lösenordshantering endast på den här enheten.</translation>
 <translation id="6389470377220713856">Namn på kort</translation>
 <translation id="6406506848690869874">Synkronisera</translation>
 <translation id="6410390304316730527">Säker webbsökning skyddar dig mot angripare som kan försöka lura dig att göra något riskfyllt, till exempel installera skadlig programvara eller avslöja personliga uppgifter som lösenord, telefonnummer eller kreditkortsuppgifter. Om du inaktiverar detta bör du vara försiktig när du besöker okända webbplatser.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
index 0febecb..d64fab3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Jaribu Tena</translation>
 <translation id="6377118281273296434">Usalama wa Tovuti</translation>
 <translation id="6380866119319257197">Ukisahau kauli yako ya siri au ukitaka kubadilisha mipangilio hii, <ph name="BEGIN_LINK" />fanya usawazishaji upya<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Manenosiri huhifadhiwa kwenye Kidhibiti cha Manenosiri cha Google kwenye kifaa hiki tu.</translation>
 <translation id="6389470377220713856">Jina lilio kwenye Kadi</translation>
 <translation id="6406506848690869874">Sawazisha</translation>
 <translation id="6410390304316730527">Kipengele cha Kuvinjari Salama hukulinda dhidi ya washambulizi ambao wanaweza kukulaghai ufanye kitu hatari kama vile kusakinisha programu hasidi au kufichua taarifa binafsi kama vile manenosiri, nambari za simu au kadi za mikopo. Ukikizima, kuwa makini unapovinjari tovuti zisizo za kawaida au zisizo na sifa nzuri.</translation>
@@ -848,6 +849,7 @@
 <translation id="7987685713885608670">Ili kuimarisha usalama, simba manenosiri kwa njia fiche kwenye kifaa chako kabla hayajahifadhiwa kwenye Kidhibiti cha Manenosiri cha Google.</translation>
 <translation id="7993619969781047893">Huenda vipengele kwenye baadhi ya tovuti vikakosa kufanya kazi</translation>
 <translation id="800361585186029508">Hufungua URL zilizowekwa katika Google Chrome.</translation>
+<translation id="8016714545083187120">Tumia Miunganisho Salama Kila Wakati</translation>
 <translation id="802154636333426148">Haikuweza kupakua</translation>
 <translation id="8023878949384262191">Hupanua sehemu.</translation>
 <translation id="8027581147000338959">Fungua Katika Dirisha Jipya</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index 93cde2ae..998c4bc 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">மீண்டும் முயலவும்</translation>
 <translation id="6377118281273296434">தளத்தின் பாதுகாப்பு</translation>
 <translation id="6380866119319257197">கடவுச்சொற்றொடரை மறந்துவிட்டால் அல்லது இந்த அமைப்பை மாற்ற விரும்பினால், <ph name="BEGIN_LINK" />ஒத்திசைவை மீட்டமைக்கவும்<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">இந்தச் சாதனத்தில் மட்டுமே உள்ள Google கடவுச்சொல் நிர்வாகியில் கடவுச்சொற்கள் சேமிக்கப்படுகின்றன.</translation>
 <translation id="6389470377220713856">அட்டையிலுள்ள பெயர்</translation>
 <translation id="6406506848690869874">Sync</translation>
 <translation id="6410390304316730527">தீங்கிழைக்கும் மென்பொருளை நிறுவச் செய்வது, கடவுச்சொற்கள், ஃபோன் எண்கள், கிரெடிட் கார்டு எண்கள் போன்ற தனிப்பட்ட தகவல்களைத் வெளியிடச் செய்வது உள்ளிட்ட ஆபத்தான செயல்களைச் செய்ய வைக்கக்கூடிய தீங்கிழைப்பவர்களிடமிருந்து ’பாதுகாப்பு உலாவல்’ அம்சம் உங்களைப் பாதுகாக்கும். அதை முடக்கினால், பரிச்சயமற்ற/நம்பகமற்ற தளங்களை உலாவும்போது கவனமாக இருக்கவும்.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index 6909746..e15fa8a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -365,7 +365,7 @@
 <translation id="4042870976416480368">పేజీలో కనుగొనండి</translation>
 <translation id="4049507953662678203">మీ ఇంట‌ర్నెట్ ప‌ని చేస్తోందో లేదో చెక్ చేసుకుని మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="4063300985191096908">ఫీడ్‌కు వెళ్లండి</translation>
-<translation id="408404951701638773">ఇప్పుడు శోధన పట్టీకి మరింత సులభంగా చేరుకోవచ్చు</translation>
+<translation id="408404951701638773">ఇప్పుడు శోధన బార్‌కు మరింత సులభంగా చేరుకోవచ్చు</translation>
 <translation id="4108998448622696017">ప్రమాదకరమైన సంఘటనలు జరిగినప్పుడు గుర్తించి, మిమ్మల్ని హెచ్చరిస్తుంది.</translation>
 <translation id="411254640334432676">డౌన్‌లోడ్ విఫలమైంది.</translation>
 <translation id="4112644173421521737">సెర్చ్</translation>
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">మళ్లీ ప్రయత్నించు</translation>
 <translation id="6377118281273296434">సైట్ భద్రత</translation>
 <translation id="6380866119319257197">మీరు మీ రహస్య పదబంధాన్ని మర్చిపోతే లేదా ఈ సెట్టింగ్‌ను మార్చాలనుకుంటే, <ph name="BEGIN_LINK" />సింక్‌ను రీసెట్ చేయండి<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">పాస్‌వర్డ్‌లు ఈ పరికరంలోని Google పాస్‌వర్డ్ మేనేజర్‌లో మాత్రమే సేవ్ చేయబడతాయి.</translation>
 <translation id="6389470377220713856">కార్డ్‌పై ఉన్న పేరు</translation>
 <translation id="6406506848690869874">Sync</translation>
 <translation id="6410390304316730527">ప్రమాదకరమైన సాఫ్ట్‌వేర్ ఇన్‌స్టాల్ చేసే విధంగా లేదా మీ పాస్‌వర్డ్‌లు, ఫోన్ నంబర్‌లు లేదా క్రెడిట్ కార్డ్‌ల వంటి మీ వ్యక్తిగత సమాచారాన్ని బహిర్గతం చేసే విధంగా మిమ్మల్ని మాయ చేసే హ్యాకర్‌ల నుండి మిమ్మల్ని సురక్షిత బ్రౌజింగ్ రక్షిస్తుంది. మీరు దీన్ని ఆఫ్ చేస్తే, అపరిచిత లేదా విశ్వసనీయం కాని సైట్‌లను బ్రౌజ్ చేసినప్పుడు జాగ్రత్త వహించండి.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index 326bbaa8..c13d3139 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">ลองอีกครั้ง</translation>
 <translation id="6377118281273296434">ความปลอดภัยของเว็บไซต์</translation>
 <translation id="6380866119319257197">หากคุณลืมรหัสผ่านหรือต้องการเปลี่ยนการตั้งค่านี้ โปรด<ph name="BEGIN_LINK" />รีเซ็ตการซิงค์<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">รหัสผ่านจะบันทึกอยู่ในเครื่องมือจัดการรหัสผ่านของ Google ในอุปกรณ์นี้เท่านั้น</translation>
 <translation id="6389470377220713856">ชื่อบนบัตร</translation>
 <translation id="6406506848690869874">การซิงค์ข้อมูล</translation>
 <translation id="6410390304316730527">Google Safe Browsing ปกป้องคุณจากผู้โจมตีที่อาจหลอกล่อให้ทำบางสิ่งที่อันตราย เช่น การติดตั้งซอฟต์แวร์ที่ประสงค์ร้ายหรือเปิดเผยข้อมูลส่วนบุคคล เช่น รหัสผ่าน หมายเลขโทรศัพท์ หรือบัตรเครดิต หากคุณปิดใช้ โปรดระวังขณะเรียกดูเว็บไซต์ที่ไม่คุ้นเคยหรือไม่เป็นที่รู้จัก</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index 90bfbf5..e5fbc64 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Güvenli değil</translation>
 <translation id="3533202363250687977">Tüm Gizli Sekmeleri Kapat</translation>
 <translation id="3533436815740441613">Yeni Sekme</translation>
+<translation id="3547799431091898961">Tüm web sitelerinde Google Hesabınızın oturumunu kapatmak için <ph name="BEGIN_LINK" />Chrome oturumunu kapatın<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Sekmeyi Kapat</translation>
 <translation id="3581564640715911333">Diğer dillerdeki sayfaları çevirmeyi öner</translation>
 <translation id="3588820906588687999">Resmi Yeni Sekmede Aç</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Tekrar Dene</translation>
 <translation id="6377118281273296434">Site Güvenliği</translation>
 <translation id="6380866119319257197">Parolanızı unutursanız veya bu ayarı değiştirmek isterseniz <ph name="BEGIN_LINK" />senkronizasyonu sıfırlayın<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Şifreler yalnızca bu cihazda Google Şifre Yöneticisi'ne kaydedilir.</translation>
 <translation id="6389470377220713856">Karttaki Ad</translation>
 <translation id="6406506848690869874">Senkronizasyon</translation>
 <translation id="6410390304316730527">Güvenli Tarama, sizi yanıltarak kötü amaçlı yazılım yüklemek veya kişisel bilgilerinizi (örneğin, şifreler, telefon numaraları veya kredi kartları) ifşa etmek gibi tehlikeli bir şey yapmanıza neden olabilecek saldırganlara karşı korur. Bu özelliği kapatırsanız tanıdık olmayan veya saygınlığı şüpheli sitelere göz atarken dikkatli olun.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Yakınlaştır</translation>
 <translation id="6583087784430677195">Özelliği kapatmak için <ph name="BEGIN_LINK" />Ayarlar<ph name="END_LINK" />'ı açıp Parolaları Otomatik Doldur'a gidin.</translation>
 <translation id="6585618849026997638">Önemli gördüğünüz sayfalara yer işareti koyarak geri dönebilirsiniz.</translation>
+<translation id="6596481460663245319">Resmi Google'la arayın</translation>
 <translation id="6598875554591387303">Yayıncıya göre sırala</translation>
 <translation id="6603393121510733479">Kuruluşunuz gizli taramayı kapattı.
 <ph name="BEGIN_LINK" />Daha fazla bilgi<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
index bb77e10..cc16bea9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -645,6 +645,7 @@
 <translation id="6374469231428023295">Повторити спробу</translation>
 <translation id="6377118281273296434">Безпека сайту</translation>
 <translation id="6380866119319257197">Якщо ви забули парольну фразу або хочете змінити це налаштування, <ph name="BEGIN_LINK" />скиньте синхронізацію<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Паролі збережено в Менеджері паролів Google лише на цьому пристрої.</translation>
 <translation id="6389470377220713856">Ім’я на картці</translation>
 <translation id="6406506848690869874">Синхронізація</translation>
 <translation id="6410390304316730527">Безпечний перегляд захищає вас від зловмисників, які можуть обманом змусити вас виконати небезпечну дію, наприклад установити шкідливе програмне забезпечення або розкрити особисту інформацію, як-от пароль, номер телефону чи дані кредитної картки. Якщо ви вимкнете цю функцію, будьте обережні на незнайомих і сумнівних сайтах.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
index 0ba9361..db79194 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">محفوظ نہیں</translation>
 <translation id="3533202363250687977">سبھی پوشیدگی ٹیبز بند کریں</translation>
 <translation id="3533436815740441613">نیا ٹیب</translation>
+<translation id="3547799431091898961">‏سبھی ویب سائٹس پر اپنے Google اکاؤنٹ سے سائن آؤٹ کرنے کے لیے <ph name="BEGIN_LINK" />Chrome سے سائن آؤٹ کریں<ph name="END_LINK" />۔</translation>
 <translation id="3551320343578183772">ٹیب بند کریں</translation>
 <translation id="3581564640715911333">صفحات کو دیگر زبانوں میں ترجمہ کرنے کی پیشکش کریں</translation>
 <translation id="3588820906588687999">تصویر نئے ٹیب میں کھولیں</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">دوبارہ کوشش کریں</translation>
 <translation id="6377118281273296434">سائٹ کی سیکیورٹی</translation>
 <translation id="6380866119319257197">اگر آپ اپنا پاس فریز بھول جاتے ہیں یا اس ترتیب کو تبدیل کرنا چاہتے ہیں تو <ph name="BEGIN_LINK" />مطابقت پذیری دوبارہ ترتیب دیں<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">‏پاس ورڈز صرف اس آلہ پر Google پاس ورڈ مینیجر میں محفوظ کیے جاتے ہیں۔</translation>
 <translation id="6389470377220713856">کارڈ پر نام</translation>
 <translation id="6406506848690869874">مطابقت پذیر بنائیں</translation>
 <translation id="6410390304316730527">محفوظ براؤزنگ ان حملہ آوروں سے آپ کی حفاظت کرتی ہے جو نقصان دہ سافٹ ویئر انسٹال کرنے یا پاس ورڈز، فون نمبرز یا کریڈٹ کارڈز جیسی ذاتی معلومات افشاء کرنے جیسے کچھ خطرناک کام انجام دینے میں آپ کو پھنسا سکتے ہیں۔ اگر آپ اسے آف کرتے ہیں تو غیر مانوس یا غیر معروف سائٹس کو براؤز کرتے وقت محتاط رہیں۔</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">زوم ان کریں</translation>
 <translation id="6583087784430677195">آف کرنے کے لیے، <ph name="BEGIN_LINK" />ترتیبات<ph name="END_LINK" /> کھولیں اور آٹو فل پاس ورڈز پر جائیں۔</translation>
 <translation id="6585618849026997638">بُک مارک شامل کر کے آپ کسی ایسے صفحے پر واپس جا سکتے ہیں جو آپ کیلئے اہم ہے</translation>
+<translation id="6596481460663245319">‏Google کی مدد سے تصویر تلاش کریں</translation>
 <translation id="6598875554591387303">ناشر کے لحاظ سے ترتیب دیں</translation>
 <translation id="6603393121510733479">آپ کی تنظیم نے نجی براؤزنگ کو آف کر دیا ہے۔
 <ph name="BEGIN_LINK" />مزید جانیں<ph name="END_LINK" /></translation>
@@ -848,6 +851,7 @@
 <translation id="7987685713885608670">‏اضافی حفاظت کے لیے، پاس ورڈز کو Google پاس ورڈ مینیجر میں محفوظ کرنے سے پہلے اپنے آلے پر مرموز کریں۔</translation>
 <translation id="7993619969781047893">کچھ سائٹس پر خصوصیات میں خلل ہو سکتا ہے۔</translation>
 <translation id="800361585186029508">‏درج کردہ URLs کو Google Chrome میں کھولتا ہے۔</translation>
+<translation id="8016714545083187120">ہمیشہ محفوظ کنکشنز کا استعمال کریں</translation>
 <translation id="802154636333426148">ڈاؤن لوڈ ناکام ہوگیا</translation>
 <translation id="8023878949384262191">سیکشن کو پھیلاتا ہے۔</translation>
 <translation id="8027581147000338959">نئی ونڈو میں کھولیں</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
index b844cb4..9c13292 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">Qaytadan</translation>
 <translation id="6377118281273296434">Sayt xavfsizligi</translation>
 <translation id="6380866119319257197">Agar kodli iborani unutsangiz yoki o‘zgartirmoqchi bo‘lsangiz, <ph name="BEGIN_LINK" />sinxronlash sozlamalarini qayta tiklang<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Parollar faqat shu qurilmadagi Google Parollar menejeriga saqlanadi.</translation>
 <translation id="6389470377220713856">Karta egasi</translation>
 <translation id="6406506848690869874">Sinxronlash</translation>
 <translation id="6410390304316730527">Saytlarni xavfsiz kezish parollar, telefon raqamlari yoki kredit kartalari kabi shaxsiy maʼlumotlaringizni oʻgʻirlash yoki zararli dasturlarni oʻrnatish orqali xavfli ishlarni amalga oshirishga undovchi shubhali kimsalardan himoyalaydi. Agar bu funksiyani faolsizlantirsangiz, notanish va shubhali saytlarga kirishda ehtiyot boʻling.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index ff5b83aa..ca1bae1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -646,6 +646,7 @@
 <translation id="6374469231428023295">Thử lại</translation>
 <translation id="6377118281273296434">Thông tin bảo mật của trang web</translation>
 <translation id="6380866119319257197">Nếu bạn quên cụm mật khẩu hoặc muốn thay đổi cài đặt này, hãy <ph name="BEGIN_LINK" />đặt lại đồng bộ hóa<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Chỉ lưu mật khẩu vào Trình quản lý mật khẩu của Google trên thiết bị này.</translation>
 <translation id="6389470377220713856">Tên trên thẻ</translation>
 <translation id="6406506848690869874">Đồng bộ hóa</translation>
 <translation id="6410390304316730527">Tính năng Duyệt web an toàn bảo vệ bạn trước những kẻ tấn công có thể đánh lừa bạn làm một việc gì đó nguy hiểm như cài đặt phần mềm độc hại hoặc tiết lộ thông tin cá nhân như mật khẩu, số điện thoại hoặc thẻ tín dụng. Nếu bạn tắt tính năng này, hãy cẩn thận khi duyệt các trang web lạ hoặc không có uy tín.</translation>
@@ -850,6 +851,7 @@
 <translation id="7987685713885608670">Để tăng mức độ an toàn, hãy mã hoá mật khẩu trên thiết bị trước khi lưu vào Trình quản lý mật khẩu của Google.</translation>
 <translation id="7993619969781047893">Các tính năng trên một số trang web có thể hoạt động không đúng cách</translation>
 <translation id="800361585186029508">Mở URL đã nhập trong Google Chrome.</translation>
+<translation id="8016714545083187120">Luôn sử dụng kết nối an toàn</translation>
 <translation id="802154636333426148">Tải xuống không thành công</translation>
 <translation id="8023878949384262191">Mở rộng phần.</translation>
 <translation id="8027581147000338959">Mở bằng Cửa sổ Mới</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
index cae47f9..e0d14161 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">不安全</translation>
 <translation id="3533202363250687977">关闭所有无痕式标签页</translation>
 <translation id="3533436815740441613">打开新的标签页</translation>
+<translation id="3547799431091898961">若要在所有网站上退出您的 Google 帐号,请<ph name="BEGIN_LINK" />退出 Chrome<ph name="END_LINK" />。</translation>
 <translation id="3551320343578183772">关闭标签页</translation>
 <translation id="3581564640715911333">询问是否翻译其他语言版本的网页</translation>
 <translation id="3588820906588687999">在新标签页中打开图片</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">重试</translation>
 <translation id="6377118281273296434">网站安全性</translation>
 <translation id="6380866119319257197">如果您忘记了密码或想更改此设置,请<ph name="BEGIN_LINK" />重置同步设置<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">系统会将密码仅保存到此设备上的 Google 密码管理器中。</translation>
 <translation id="6389470377220713856">持卡人姓名</translation>
 <translation id="6406506848690869874">同步</translation>
 <translation id="6410390304316730527">“安全浏览”功能可保护您免受攻击者诱骗,以防做出一些危险操作,例如安装恶意软件或泄露个人信息(如密码、电话号码或信用卡信息)。如果关闭此功能,当浏览不熟悉或信誉不佳的网站时,请一定多加小心。</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">放大</translation>
 <translation id="6583087784430677195">如需关闭此功能,请打开<ph name="BEGIN_LINK" />设置<ph name="END_LINK" />,然后转至“自动填充密码”。</translation>
 <translation id="6585618849026997638">您可以为重要网页添加书签以便返回查看</translation>
+<translation id="6596481460663245319">使用 Google 搜索图片</translation>
 <translation id="6598875554591387303">按发布者排序</translation>
 <translation id="6603393121510733479">贵单位关闭了无痕浏览。
 <ph name="BEGIN_LINK" />了解详情<ph name="END_LINK" /></translation>
@@ -848,6 +851,7 @@
 <translation id="7987685713885608670">为了提高安全性,请先在设备上对密码进行加密,然后再将其保存到 Google 密码管理器中。</translation>
 <translation id="7993619969781047893">某些网站上的功能可能会无法正常运作</translation>
 <translation id="800361585186029508">在 Google Chrome 中打开输入的网址。</translation>
+<translation id="8016714545083187120">一律使用安全连接</translation>
 <translation id="802154636333426148">下载失败</translation>
 <translation id="8023878949384262191">展开此部分。</translation>
 <translation id="8027581147000338959">在新窗口中打开</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
index 7e8a453..f97c644a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">不安全</translation>
 <translation id="3533202363250687977">關閉所有無痕式分頁</translation>
 <translation id="3533436815740441613">新分頁</translation>
+<translation id="3547799431091898961">如要在所有網站上登出 Google 帳戶,請<ph name="BEGIN_LINK" />登出 Chrome<ph name="END_LINK" />。</translation>
 <translation id="3551320343578183772">關閉分頁</translation>
 <translation id="3581564640715911333">詢問是否將網頁內容翻譯成其他語言</translation>
 <translation id="3588820906588687999">在新分頁中開啟圖片</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">再試一次</translation>
 <translation id="6377118281273296434">網站安全性</translation>
 <translation id="6380866119319257197">如果您忘記密碼短語,或希望變更這項設定,請<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">密碼只會儲存至此裝置上的「Google 密碼管理工具」。</translation>
 <translation id="6389470377220713856">持卡人姓名</translation>
 <translation id="6406506848690869874">同步處理</translation>
 <translation id="6410390304316730527">「安全瀏覽」能保護您免受攻擊,攻擊者可能會誘使您採取一些危險的行動,例如安裝惡意軟件或洩漏您的個人資料 (包括密碼、電話號碼或信用卡資料)。如關閉「安全瀏覽」,請在瀏覽不熟悉或信譽不佳的網站時提高警覺。</translation>
@@ -678,6 +680,7 @@
 <translation id="6561262006871132942">放大</translation>
 <translation id="6583087784430677195">如要關閉,請開啟「<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />」並前往「自動填入密碼」。</translation>
 <translation id="6585618849026997638">您可新增書籤,以便快速返回您認為重要的網頁</translation>
+<translation id="6596481460663245319">透過 Google 搜尋圖片</translation>
 <translation id="6598875554591387303">按發佈者排序</translation>
 <translation id="6603393121510733479">您的機構已關閉私密瀏覽功能。
 <ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
index 78ec78e..369f832 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">不安全</translation>
 <translation id="3533202363250687977">關閉所有無痕式分頁</translation>
 <translation id="3533436815740441613">新分頁</translation>
+<translation id="3547799431091898961">如要從所有網站中登出 Google 帳戶,請<ph name="BEGIN_LINK" />登出 Chrome<ph name="END_LINK" />。</translation>
 <translation id="3551320343578183772">關閉分頁</translation>
 <translation id="3581564640715911333">詢問是否要將網頁內容翻譯成其他語言</translation>
 <translation id="3588820906588687999">在新分頁中開啟圖片</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">再試一次</translation>
 <translation id="6377118281273296434">網站安全性</translation>
 <translation id="6380866119319257197">如果您忘記通關密語,或是想變更這項設定,請<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">密碼只會儲存至這部裝置上的 Google 密碼管理員。</translation>
 <translation id="6389470377220713856">持卡人姓名</translation>
 <translation id="6406506848690869874">同步</translation>
 <translation id="6410390304316730527">安全瀏覽功能可保護你不受到攻擊,攻擊者可能會誘騙你從事一些危險行為,例如安裝惡意軟體或洩漏個人資訊 (例如密碼、電話號碼或信用卡資訊)。如果你停用這項功能,瀏覽不熟悉或風評不佳的網站時,請提高警覺。</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">放大</translation>
 <translation id="6583087784430677195">如要關閉,請開啟「<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />」並前往「自動填入密碼」部分。</translation>
 <translation id="6585618849026997638">你可以將重要網頁加入書籤,以便再次造訪</translation>
+<translation id="6596481460663245319">使用 Google 搜尋圖片</translation>
 <translation id="6598875554591387303">依發布者排序</translation>
 <translation id="6603393121510733479">貴機構已關閉私密瀏覽功能。
 <ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
index f8885c7..c95a98c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -311,6 +311,7 @@
 <translation id="3529024052484145543">Akuphephile</translation>
 <translation id="3533202363250687977">Vala wonke amathebhu e-incognito</translation>
 <translation id="3533436815740441613">Ithebhu entsha</translation>
+<translation id="3547799431091898961">Ukuze uphume ngemvume ku-Google Account yakho kuwo wonke amawebhusayithi, <ph name="BEGIN_LINK" />phuma ngemvume ku-Chrome<ph name="END_LINK" />.</translation>
 <translation id="3551320343578183772">Vala ithebhu</translation>
 <translation id="3581564640715911333">Nikeza ngokuhumusha amakhasi ngezinye izilimi</translation>
 <translation id="3588820906588687999">Vula isithombe kuthebhu entsha</translation>
@@ -645,6 +646,7 @@
 <translation id="6374469231428023295">Phinda uzame</translation>
 <translation id="6377118281273296434">Ukuvikeleka Kwesayithi</translation>
 <translation id="6380866119319257197">Uma ukhohlwa umushwana wakho wokungena noma ufuna ukushintsha lesi silungiselelo, <ph name="BEGIN_LINK" />setha kabusha ukuvumelanisa<ph name="END_LINK" /></translation>
+<translation id="6387994324662817823">Amaphasiwedi alondolozwa Kwisiphathi Sephasiwedi se-Google kule divayisi kuphela.</translation>
 <translation id="6389470377220713856">Igama kukhadi</translation>
 <translation id="6406506848690869874">Vumelanisa</translation>
 <translation id="6410390304316730527">Ukuphequlula ngokuphephile kukuvikela kubahlaseli abangase bakukhohlise ukwenza okuthile okuyingozi njengokufaka isofthiwe enonya noma ukuveza ulwazi lomuntu siqu njengamaphasiwedi, izinombolo zefoni, noma amakhadi esikweletu. Uma ukuvala, qaphela lapho uphequlula kumasayithi ongawajwayele noma angathenjwa.</translation>
@@ -680,6 +682,7 @@
 <translation id="6561262006871132942">Sondeza isithombe</translation>
 <translation id="6583087784430677195">Ukuze ucishe, vula <ph name="BEGIN_LINK" />Amasethingi<ph name="END_LINK" /> bese uya kokuthi Gcwalisa ngokuzenzakalela Amaphasiwedi.</translation>
 <translation id="6585618849026997638">Ungabuyela ekhasini elibalulekile kuwe ngokwengeza ibhukhimakhi</translation>
+<translation id="6596481460663245319">Sesha Umfanekiso nge-Google</translation>
 <translation id="6598875554591387303">Hlunga Ngomshicileli</translation>
 <translation id="6603393121510733479">Inhlangano yakho ivale ukuphequlula okuyimfihlo.
 <ph name="BEGIN_LINK" />Funda kabanzi<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/browser/ui/activity_services/activities/reading_list_activity.mm b/ios/chrome/browser/ui/activity_services/activities/reading_list_activity.mm
index b9416f4..8170a2e7 100644
--- a/ios/chrome/browser/ui/activity_services/activities/reading_list_activity.mm
+++ b/ios/chrome/browser/ui/activity_services/activities/reading_list_activity.mm
@@ -4,13 +4,14 @@
 
 #import "ios/chrome/browser/ui/activity_services/activities/reading_list_activity.h"
 
-#include "base/metrics/user_metrics.h"
-#include "base/metrics/user_metrics_action.h"
+#import "base/metrics/user_metrics.h"
+#import "base/metrics/user_metrics_action.h"
+#import "base/strings/sys_string_conversions.h"
 #import "ios/chrome/browser/ui/commands/browser_commands.h"
 #import "ios/chrome/browser/ui/commands/reading_list_add_command.h"
-#include "ios/chrome/grit/ios_strings.h"
-#include "ui/base/l10n/l10n_util_mac.h"
-#include "url/gurl.h"
+#import "ios/chrome/grit/ios_strings.h"
+#import "ui/base/l10n/l10n_util_mac.h"
+#import "url/gurl.h"
 
 #if !defined(__has_feature) || !__has_feature(objc_arc)
 #error "This file requires ARC support."
@@ -42,7 +43,7 @@
   if (self = [super init]) {
     _dispatcher = dispatcher;
     _activityURL = activityURL;
-    _title = [NSString stringWithString:title];
+    _title = [title copy];
   }
   return self;
 }
@@ -71,8 +72,11 @@
 
 - (void)performActivity {
   [self activityDidFinish:YES];
+  // Reading list does not support not having title, so add host instead.
+  NSString* title =
+      _title ? _title : base::SysUTF8ToNSString(_activityURL.host());
   ReadingListAddCommand* command =
-      [[ReadingListAddCommand alloc] initWithURL:_activityURL title:_title];
+      [[ReadingListAddCommand alloc] initWithURL:_activityURL title:title];
   [_dispatcher addToReadingList:command];
 }
 
diff --git a/ios/chrome/browser/ui/settings/BUILD.gn b/ios/chrome/browser/ui/settings/BUILD.gn
index 5a00ec3..2bc08e75 100644
--- a/ios/chrome/browser/ui/settings/BUILD.gn
+++ b/ios/chrome/browser/ui/settings/BUILD.gn
@@ -132,6 +132,7 @@
     "//ios/chrome/browser/history",
     "//ios/chrome/browser/main",
     "//ios/chrome/browser/net:crurl",
+    "//ios/chrome/browser/ntp:features",
     "//ios/chrome/browser/passwords",
     "//ios/chrome/browser/prerender:prerender_pref",
     "//ios/chrome/browser/search_engines",
diff --git a/ios/chrome/browser/ui/settings/password/password_manager_view_controller.mm b/ios/chrome/browser/ui/settings/password/password_manager_view_controller.mm
index 78365e8..4ebd67f 100644
--- a/ios/chrome/browser/ui/settings/password/password_manager_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/password/password_manager_view_controller.mm
@@ -352,6 +352,14 @@
 
 - (void)viewDidLoad {
   [super viewDidLoad];
+
+  // Configure this now, rather than at initialization, because the superclass
+  // viewDidLoad will wipe out our value if we set it too early.
+  if (!ShouldShowSettingsUI()) {
+    self.navigationItem.largeTitleDisplayMode =
+        UINavigationItemLargeTitleDisplayModeAlways;
+  }
+
   self.tableView.allowsMultipleSelectionDuringEditing = YES;
   self.tableView.accessibilityIdentifier = kPasswordsTableViewId;
 
diff --git a/ios/chrome/browser/ui/settings/settings_table_view_controller.mm b/ios/chrome/browser/ui/settings/settings_table_view_controller.mm
index e83381f2..ef5a0fe 100644
--- a/ios/chrome/browser/ui/settings/settings_table_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/settings_table_view_controller.mm
@@ -33,6 +33,7 @@
 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
 #include "ios/chrome/browser/main/browser.h"
 #include "ios/chrome/browser/net/crurl.h"
+#import "ios/chrome/browser/ntp/features.h"
 #include "ios/chrome/browser/passwords/ios_chrome_password_check_manager.h"
 #include "ios/chrome/browser/passwords/ios_chrome_password_check_manager_factory.h"
 #include "ios/chrome/browser/passwords/ios_chrome_password_store_factory.h"
@@ -1059,10 +1060,16 @@
 
 - (TableViewSwitchItem*)articlesForYouItem {
   if (!_articlesForYouItem) {
+    AuthenticationService* authService =
+        AuthenticationServiceFactory::GetForBrowserState(
+            _browser->GetBrowserState());
+    BOOL isSignedIn =
+        authService->HasPrimaryIdentity(signin::ConsentLevel::kSignin);
+
     NSString* settingTitle =
-        IsDiscoverFeedEnabled()
-            ? l10n_util::GetNSString(IDS_IOS_DISCOVER_FEED_TITLE)
-            : l10n_util::GetNSString(IDS_IOS_CONTENT_SUGGESTIONS_SETTING_TITLE);
+        (isSignedIn && IsWebChannelsEnabled())
+            ? l10n_util::GetNSString(IDS_IOS_DISCOVER_AND_FOLLOWING_FEED_TITLE)
+            : l10n_util::GetNSString(IDS_IOS_DISCOVER_FEED_TITLE);
 
     _articlesForYouItem =
         [self switchItemWithType:SettingsItemTypeArticlesForYou
@@ -1077,10 +1084,16 @@
 
 - (TableViewInfoButtonItem*)managedArticlesForYouItem {
   if (!_managedArticlesForYouItem) {
+    AuthenticationService* authService =
+        AuthenticationServiceFactory::GetForBrowserState(
+            _browser->GetBrowserState());
+    BOOL isSignedIn =
+        authService->HasPrimaryIdentity(signin::ConsentLevel::kSignin);
+
     NSString* settingTitle =
-        IsDiscoverFeedEnabled()
-            ? l10n_util::GetNSString(IDS_IOS_DISCOVER_FEED_TITLE)
-            : l10n_util::GetNSString(IDS_IOS_CONTENT_SUGGESTIONS_SETTING_TITLE);
+        (isSignedIn && IsWebChannelsEnabled())
+            ? l10n_util::GetNSString(IDS_IOS_DISCOVER_AND_FOLLOWING_FEED_TITLE)
+            : l10n_util::GetNSString(IDS_IOS_DISCOVER_FEED_TITLE);
 
     _managedArticlesForYouItem = [[TableViewInfoButtonItem alloc]
         initWithType:SettingsItemTypeManagedArticlesForYou];
diff --git a/ios/chrome/browser/ui/webui/net_export/net_export_ui.mm b/ios/chrome/browser/ui/webui/net_export/net_export_ui.mm
index 667dbcf..5eff356 100644
--- a/ios/chrome/browser/ui/webui/net_export/net_export_ui.mm
+++ b/ios/chrome/browser/ui/webui/net_export/net_export_ui.mm
@@ -72,14 +72,14 @@
   void OnSendNetLog(const base::Value::List& list);
 
   // net_log::NetExportFileWriter::StateObserver implementation.
-  void OnNewState(const base::DictionaryValue& state) override;
+  void OnNewState(const base::Value::Dict& state) override;
 
  private:
   // Send NetLog data via email.
   void SendEmail(const base::FilePath& file_to_send);
 
   void NotifyUIWithState(
-      std::unique_ptr<base::DictionaryValue> file_writer_state);
+      const base::Value::Dict& file_writer_state);
 
   // Cache of GetApplicationContext()->GetNetExportFileWriter().
   // This is owned by the ApplicationContext.
@@ -169,8 +169,8 @@
       &NetExportMessageHandler::SendEmail, base::Unretained(this)));
 }
 
-void NetExportMessageHandler::OnNewState(const base::DictionaryValue& state) {
-  NotifyUIWithState(state.CreateDeepCopy());
+void NetExportMessageHandler::OnNewState(const base::Value::Dict& state) {
+  NotifyUIWithState(state);
 }
 
 void NetExportMessageHandler::SendEmail(const base::FilePath& file_to_send) {
@@ -197,14 +197,12 @@
 }
 
 void NetExportMessageHandler::NotifyUIWithState(
-    std::unique_ptr<base::DictionaryValue> file_writer_state) {
+    const base::Value::Dict& file_writer_state) {
   DCHECK_CURRENTLY_ON(web::WebThread::UI);
   DCHECK(web_ui());
 
-  base::Value state = file_writer_state->Clone();
   base::Value event(net_log::kNetLogInfoChangedEvent);
-
-  base::ValueView args[] = {event, state};
+  base::ValueView args[] = {event, file_writer_state};
   web_ui()->CallJavascriptFunction("cr.webUIListenerCallback", args);
 }
 
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
index e8e9d65c..a328037 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-d275853f6ba560bdc61941c31e110b0d99d0928d
\ No newline at end of file
+96455434b65f6fa863762d64b1436ce742560233
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
index 4256db5..48552dc 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-f81a7ca11baed688505501be35a5b976582fd903
\ No newline at end of file
+7096eee567da8a63435863373f74976cbf94afd6
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
index 64bd9a9..457869b7 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-a5ef25d21e3ee924ad4bd9d8b6bc662eed30540c
\ No newline at end of file
+259232fd2a62e08819655fce7a3529109de4ef6d
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
index a7209ada..6290f3d 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-6a21ac5131c4c44a2068e21cbafb7c23aa609e28
\ No newline at end of file
+abbee34f9a40e8357141a3a89cd98721a24985f3
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1
index 891df18..5dd692d 100644
--- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-9d916f306951bbcc38051d5af5a22bf4318a3348
\ No newline at end of file
+8584291aec6b0f1b7c63170284ed6ee2ae3b049e
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1
index 05b691f..dc6b893 100644
--- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-19d37e0cd9239abd38d146392ab75806d8f494d6
\ No newline at end of file
+4d05f9b7762b8e9da997afa6ff713ffd6c57f111
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
index b6841ef..55d1682 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-3ec89b045732e69e574f202ce31fe48833dfc7d5
\ No newline at end of file
+e5661d37bb6642e8ee9b49ba5e2124d264c3fa45
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
index 711a2934..9dd9918c 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-4df0029612fae99f77f86669389812e1e1c57046
\ No newline at end of file
+c3b1f36faa0dfa179a893abf0da665658a784689
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
index 6d266a2..e3205fb4 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-7a98dbbb2b0d1d13942f99f1ccc79a36638c58d1
\ No newline at end of file
+07c1771300bee66568d1433fe6d7296b1691c34e
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
index fd65e4e4..8a4acec8 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-44f263d840c983d653a94ce3739929118b70cfd1
\ No newline at end of file
+020da02b1f25c965cb2936ebb0db60fb31e885cc
\ No newline at end of file
diff --git a/ios/web/js_features/context_menu/context_menu_js_unittest.mm b/ios/web/js_features/context_menu/context_menu_js_unittest.mm
index 2acb568a..de00f65 100644
--- a/ios/web/js_features/context_menu/context_menu_js_unittest.mm
+++ b/ios/web/js_features/context_menu/context_menu_js_unittest.mm
@@ -259,7 +259,7 @@
   }
 
   // Finds the element at the given |point| and compares it against
-  // |expected_result|. Retries up to 5 times if there is a mismatch.  Without
+  // |expected_result|. Retries if there is a mismatch.  Without
   // the retry logic, these tests fail flakily, possibly because they attempt to
   // find the element before the webview has completed layout and/or
   // rendering. This occurs on all iOS versions, but seems to be worse on iOS
@@ -271,7 +271,7 @@
   void CheckElementResult(CGPoint point,
                           const base::Value& expected_result,
                           const std::vector<const char*>& ignored_keys) {
-    constexpr int kNumTries = 5;
+    constexpr int kNumTries = 13;
     for (int i = 0; i < kNumTries; ++i) {
       base::Value result = FindElementAtPoint(point);
       for (const char* key : ignored_keys) {
diff --git a/media/formats/mp2t/es_parser_h264.cc b/media/formats/mp2t/es_parser_h264.cc
index 79ff5e9..7132c58 100644
--- a/media/formats/mp2t/es_parser_h264.cc
+++ b/media/formats/mp2t/es_parser_h264.cc
@@ -6,6 +6,7 @@
 
 #include <limits>
 
+#include "base/containers/adapters.h"
 #include "base/logging.h"
 #include "base/numerics/safe_conversions.h"
 #include "media/base/decrypt_config.h"
@@ -113,8 +114,8 @@
     result.reset(new uint8_t[au_end_pos]);
     uint8_t* temp = result.get();
     memcpy(temp, au, au_end_pos);
-    for (auto epb_pos = epbs.rbegin(); epb_pos != epbs.rend(); ++epb_pos) {
-      RemoveByte(temp, *epb_pos, au_end_pos);
+    for (const auto& epb : base::Reversed(epbs)) {
+      RemoveByte(temp, epb, au_end_pos);
       au_end_pos--;
     }
     au = temp;
diff --git a/media/gpu/android/codec_image.cc b/media/gpu/android/codec_image.cc
index 36f76b2..7bb06e0 100644
--- a/media/gpu/android/codec_image.cc
+++ b/media/gpu/android/codec_image.cc
@@ -93,8 +93,8 @@
   DCHECK_CALLED_ON_VALID_THREAD(gpu_main_thread_checker_);
 
   // This method is only called for SurfaceTexture implementation which can't be
-  // thread-safe.
-  DCHECK(!features::NeedThreadSafeAndroidMedia());
+  // thread-safe. Hence the lock which ensures thread safety should be null.
+  DCHECK(!GetDrDcLockPtr());
 
   TRACE_EVENT0("media", "CodecImage::CopyTexImage");
   DCHECK_EQ(COPY, ShouldBindOrCopy());
diff --git a/media/gpu/android/codec_image_group_unittest.cc b/media/gpu/android/codec_image_group_unittest.cc
index 1a74e8d..f711af3 100644
--- a/media/gpu/android/codec_image_group_unittest.cc
+++ b/media/gpu/android/codec_image_group_unittest.cc
@@ -11,6 +11,8 @@
 #include "base/test/task_environment.h"
 #include "base/test/test_simple_task_runner.h"
 #include "base/threading/thread.h"
+#include "gpu/command_buffer/service/ref_counted_lock_for_test.h"
+#include "gpu/config/gpu_finch_features.h"
 #include "media/base/android/mock_android_overlay.h"
 #include "media/gpu/android/codec_surface_bundle.h"
 #include "media/gpu/android/mock_codec_image.h"
@@ -31,7 +33,9 @@
       scoped_refptr<CodecSurfaceBundle> surface_bundle)
       : CodecImageGroup(std::move(task_runner),
                         std::move(surface_bundle),
-                        /*lock=*/nullptr) {}
+                        features::NeedThreadSafeAndroidMedia()
+                            ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+                            : nullptr) {}
 
   void SetDestructionCallback(base::OnceClosure cb) {
     destruction_cb_ = std::move(cb);
@@ -113,8 +117,11 @@
   scoped_refptr<CodecSurfaceBundle> surface_bundle =
       base::MakeRefCounted<CodecSurfaceBundle>();
   scoped_refptr<CodecImageGroup> image_group =
-      base::MakeRefCounted<CodecImageGroup>(gpu_task_runner_, surface_bundle,
-                                            /*lock=*/nullptr);
+      base::MakeRefCounted<CodecImageGroup>(
+          gpu_task_runner_, surface_bundle,
+          features::NeedThreadSafeAndroidMedia()
+              ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+              : nullptr);
   // TODO(liberato): we should also make sure that adding an image doesn't call
   // ReleaseCodecBuffer when it's added.
 }
diff --git a/media/gpu/android/codec_image_unittest.cc b/media/gpu/android/codec_image_unittest.cc
index 5b40c39..e80a503 100644
--- a/media/gpu/android/codec_image_unittest.cc
+++ b/media/gpu/android/codec_image_unittest.cc
@@ -12,7 +12,9 @@
 #include "base/threading/sequenced_task_runner_handle.h"
 #include "gpu/command_buffer/service/mock_abstract_texture.h"
 #include "gpu/command_buffer/service/mock_texture_owner.h"
+#include "gpu/command_buffer/service/ref_counted_lock_for_test.h"
 #include "gpu/command_buffer/service/texture_manager.h"
+#include "gpu/config/gpu_finch_features.h"
 #include "media/base/android/media_codec_bridge.h"
 #include "media/base/android/mock_media_codec_bridge.h"
 #include "media/gpu/android/codec_image.h"
@@ -97,10 +99,16 @@
     auto codec_buffer_wait_coordinator =
         kind == kTextureOwner ? codec_buffer_wait_coordinator_ : nullptr;
     auto buffer_renderer = std::make_unique<CodecOutputBufferRenderer>(
-        std::move(buffer), codec_buffer_wait_coordinator, /*lock=*/nullptr);
+        std::move(buffer), codec_buffer_wait_coordinator,
+        features::NeedThreadSafeAndroidMedia()
+            ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+            : nullptr);
 
     scoped_refptr<CodecImage> image =
-        new CodecImage(buffer_renderer->size(), /*lock=*/nullptr);
+        new CodecImage(buffer_renderer->size(),
+                       features::NeedThreadSafeAndroidMedia()
+                           ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+                           : nullptr);
     image->Initialize(
         std::move(buffer_renderer), kind == kTextureOwner,
         base::BindRepeating(&PromotionHintReceiver::OnPromotionHint,
@@ -343,10 +351,15 @@
   auto buffer = CodecOutputBuffer::CreateForTesting(
       0, visible_size, gfx::ColorSpace::CreateSRGB());
   auto buffer_renderer = std::make_unique<CodecOutputBufferRenderer>(
-      std::move(buffer), nullptr, /*lock=*/nullptr);
+      std::move(buffer), nullptr,
+      features::NeedThreadSafeAndroidMedia()
+          ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+          : nullptr);
 
-  scoped_refptr<CodecImage> image =
-      new CodecImage(coded_size, /*lock=*/nullptr);
+  scoped_refptr<CodecImage> image = new CodecImage(
+      coded_size, features::NeedThreadSafeAndroidMedia()
+                      ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+                      : nullptr);
   image->Initialize(std::move(buffer_renderer), false,
                     PromotionHintAggregator::NotifyPromotionHintCB());
 
diff --git a/media/gpu/android/frame_info_helper_unittest.cc b/media/gpu/android/frame_info_helper_unittest.cc
index 889b9ac5..00d530d 100644
--- a/media/gpu/android/frame_info_helper_unittest.cc
+++ b/media/gpu/android/frame_info_helper_unittest.cc
@@ -8,6 +8,8 @@
 #include "base/test/task_environment.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "gpu/command_buffer/service/mock_texture_owner.h"
+#include "gpu/command_buffer/service/ref_counted_lock_for_test.h"
+#include "gpu/config/gpu_finch_features.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 using testing::_;
@@ -27,8 +29,11 @@
   auto task_runner = base::ThreadTaskRunnerHandle::Get();
   auto get_stub_cb =
       base::BindRepeating([]() -> gpu::CommandBufferStub* { return nullptr; });
-  return FrameInfoHelper::Create(std::move(task_runner), std::move(get_stub_cb),
-                                 /*lock=*/nullptr);
+  return FrameInfoHelper::Create(
+      std::move(task_runner), std::move(get_stub_cb),
+      features::NeedThreadSafeAndroidMedia()
+          ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+          : nullptr);
 }
 }  // namespace
 
@@ -57,13 +62,20 @@
       gfx::Size size,
       scoped_refptr<gpu::TextureOwner> texture_owner) {
     auto codec_buffer_wait_coordinator =
-        texture_owner ? base::MakeRefCounted<CodecBufferWaitCoordinator>(
-                            texture_owner, /*lock=*/nullptr)
-                      : nullptr;
+        texture_owner
+            ? base::MakeRefCounted<CodecBufferWaitCoordinator>(
+                  texture_owner,
+                  features::NeedThreadSafeAndroidMedia()
+                      ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+                      : nullptr)
+            : nullptr;
     auto buffer = CodecOutputBuffer::CreateForTesting(
         0, size, gfx::ColorSpace::CreateSRGB());
     auto buffer_renderer = std::make_unique<CodecOutputBufferRenderer>(
-        std::move(buffer), codec_buffer_wait_coordinator, /*lock=*/nullptr);
+        std::move(buffer), codec_buffer_wait_coordinator,
+        features::NeedThreadSafeAndroidMedia()
+            ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+            : nullptr);
 
     // We don't have codec, so releasing test buffer is not possible. Mark it as
     // rendered for test purpose.
diff --git a/media/gpu/android/media_codec_video_decoder_unittest.cc b/media/gpu/android/media_codec_video_decoder_unittest.cc
index 6481bee..dc96001 100644
--- a/media/gpu/android/media_codec_video_decoder_unittest.cc
+++ b/media/gpu/android/media_codec_video_decoder_unittest.cc
@@ -14,6 +14,8 @@
 #include "base/test/task_environment.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "gpu/command_buffer/service/mock_texture_owner.h"
+#include "gpu/command_buffer/service/ref_counted_lock_for_test.h"
+#include "gpu/config/gpu_finch_features.h"
 #include "gpu/config/gpu_preferences.h"
 #include "media/base/android/media_codec_util.h"
 #include "media/base/android/mock_android_overlay.h"
@@ -153,7 +155,10 @@
         base::BindRepeating(&CreateAndroidOverlayCb),
         base::BindRepeating(&MediaCodecVideoDecoderTest::RequestOverlayInfoCb,
                             base::Unretained(this)),
-        std::move(video_frame_factory), /*lock=*/nullptr);
+        std::move(video_frame_factory),
+        features::NeedThreadSafeAndroidMedia()
+            ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+            : nullptr);
     mcvd_ = std::make_unique<AsyncDestroyVideoDecoder<MediaCodecVideoDecoder>>(
         base::WrapUnique(mcvd));
     mcvd_raw_ = mcvd;
diff --git a/media/gpu/android/mock_codec_buffer_wait_coordinator.cc b/media/gpu/android/mock_codec_buffer_wait_coordinator.cc
index 25e4d97..c3ab80e 100644
--- a/media/gpu/android/mock_codec_buffer_wait_coordinator.cc
+++ b/media/gpu/android/mock_codec_buffer_wait_coordinator.cc
@@ -4,6 +4,9 @@
 
 #include "media/gpu/android/mock_codec_buffer_wait_coordinator.h"
 
+#include "gpu/command_buffer/service/ref_counted_lock_for_test.h"
+#include "gpu/config/gpu_finch_features.h"
+
 namespace media {
 
 using testing::Invoke;
@@ -11,7 +14,11 @@
 
 MockCodecBufferWaitCoordinator::MockCodecBufferWaitCoordinator(
     scoped_refptr<NiceMock<gpu::MockTextureOwner>> texture_owner)
-    : CodecBufferWaitCoordinator(texture_owner, /*lock=*/nullptr),
+    : CodecBufferWaitCoordinator(
+          texture_owner,
+          features::NeedThreadSafeAndroidMedia()
+              ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+              : nullptr),
       mock_texture_owner(std::move(texture_owner)),
       expecting_frame_available(false) {
   ON_CALL(*this, texture_owner()).WillByDefault(Return(mock_texture_owner));
diff --git a/media/gpu/android/mock_codec_image.cc b/media/gpu/android/mock_codec_image.cc
index 54abdaa..d36005e9 100644
--- a/media/gpu/android/mock_codec_image.cc
+++ b/media/gpu/android/mock_codec_image.cc
@@ -4,10 +4,16 @@
 
 #include "media/gpu/android/mock_codec_image.h"
 
+#include "gpu/command_buffer/service/ref_counted_lock_for_test.h"
+#include "gpu/config/gpu_finch_features.h"
+
 namespace media {
 
 MockCodecImage::MockCodecImage(const gfx::Size& coded_size)
-    : CodecImage(coded_size, /*lock=*/nullptr) {}
+    : CodecImage(coded_size,
+                 features::NeedThreadSafeAndroidMedia()
+                     ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+                     : nullptr) {}
 
 MockCodecImage::~MockCodecImage() = default;
 
diff --git a/media/gpu/android/pooled_shared_image_video_provider_unittest.cc b/media/gpu/android/pooled_shared_image_video_provider_unittest.cc
index 1aeebbc..9641a112 100644
--- a/media/gpu/android/pooled_shared_image_video_provider_unittest.cc
+++ b/media/gpu/android/pooled_shared_image_video_provider_unittest.cc
@@ -11,6 +11,8 @@
 #include "base/test/mock_callback.h"
 #include "base/test/task_environment.h"
 #include "base/threading/sequenced_task_runner_handle.h"
+#include "gpu/command_buffer/service/ref_counted_lock_for_test.h"
+#include "gpu/config/gpu_finch_features.h"
 #include "gpu/ipc/common/command_buffer_id.h"
 #include "media/gpu/android/mock_shared_image_video_provider.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -55,7 +57,9 @@
 
     provider_ = base::WrapUnique(new PooledSharedImageVideoProvider(
         std::move(mock_gpu_helper), std::move(mock_provider),
-        /*lock=*/nullptr));
+        features::NeedThreadSafeAndroidMedia()
+            ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+            : nullptr));
   }
 
   // Return an ImageReadyCB that saves the ImageRecord in |image_records_|.
diff --git a/media/gpu/android/video_frame_factory_impl_unittest.cc b/media/gpu/android/video_frame_factory_impl_unittest.cc
index 5c1fb58..47ef2f65 100644
--- a/media/gpu/android/video_frame_factory_impl_unittest.cc
+++ b/media/gpu/android/video_frame_factory_impl_unittest.cc
@@ -13,7 +13,9 @@
 #include "base/test/task_environment.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "gpu/command_buffer/service/mock_texture_owner.h"
+#include "gpu/command_buffer/service/ref_counted_lock_for_test.h"
 #include "gpu/command_buffer/service/shared_context_state.h"
+#include "gpu/config/gpu_finch_features.h"
 #include "gpu/config/gpu_preferences.h"
 #include "media/base/android/test_destruction_observable.h"
 #include "media/base/limits.h"
@@ -69,12 +71,18 @@
 
     impl_ = std::make_unique<VideoFrameFactoryImpl>(
         task_runner_, gpu_preferences_, std::move(image_provider),
-        std::move(mre_manager), std::move(info_helper), /*lock=*/nullptr);
+        std::move(mre_manager), std::move(info_helper),
+        features::NeedThreadSafeAndroidMedia()
+            ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+            : nullptr);
     auto texture_owner = base::MakeRefCounted<NiceMock<gpu::MockTextureOwner>>(
         0, nullptr, nullptr, true);
     auto codec_buffer_wait_coordinator =
         base::MakeRefCounted<CodecBufferWaitCoordinator>(
-            std::move(texture_owner), /*lock=*/nullptr);
+            std::move(texture_owner),
+            features::NeedThreadSafeAndroidMedia()
+                ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+                : nullptr);
 
     // Provide a non-null |codec_buffer_wait_coordinator| to |impl_|.
     impl_->SetCodecBufferWaitCorrdinatorForTesting(
@@ -132,7 +140,10 @@
     auto codec_image =
         base::MakeRefCounted<MockCodecImage>(gfx::Size(100, 100));
     record.codec_image_holder = base::MakeRefCounted<CodecImageHolder>(
-        task_runner_, codec_image, nullptr);
+        task_runner_, codec_image,
+        features::NeedThreadSafeAndroidMedia()
+            ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+            : nullptr);
     return record;
   }
 
@@ -180,7 +191,9 @@
       base::MakeRefCounted<CodecSurfaceBundle>(
           base::MakeRefCounted<NiceMock<gpu::MockTextureOwner>>(0, nullptr,
                                                                 nullptr, true),
-          /*lock=*/nullptr);
+          features::NeedThreadSafeAndroidMedia()
+              ? base::MakeRefCounted<gpu::RefCountedLockForTest>()
+              : nullptr);
   EXPECT_CALL(*mre_manager_raw_, SetSurfaceBundle(surface_bundle));
   impl_->SetSurfaceBundle(surface_bundle);
   base::RunLoop().RunUntilIdle();
diff --git a/media/gpu/v4l2/test/av1_decoder.cc b/media/gpu/v4l2/test/av1_decoder.cc
index 371c4ce..f688110 100644
--- a/media/gpu/v4l2/test/av1_decoder.cc
+++ b/media/gpu/v4l2/test/av1_decoder.cc
@@ -34,13 +34,13 @@
 
 inline void conditionally_set_flags(__u8* flags,
                                     const bool condition,
-                                    const bool mask) {
+                                    const __u8 mask) {
   *flags |= (condition ? mask : 0);
 }
 
 inline void conditionally_set_u32_flags(__u32* flags,
                                         const bool condition,
-                                        const bool mask) {
+                                        const __u32 mask) {
   *flags |= (condition ? mask : 0);
 }
 
diff --git a/mojo/public/cpp/bindings/lib/validation_util.cc b/mojo/public/cpp/bindings/lib/validation_util.cc
index 45dd2bf9..c02ded0 100644
--- a/mojo/public/cpp/bindings/lib/validation_util.cc
+++ b/mojo/public/cpp/bindings/lib/validation_util.cc
@@ -8,6 +8,7 @@
 
 #include <limits>
 
+#include "base/containers/adapters.h"
 #include "base/strings/stringprintf.h"
 #include "mojo/public/cpp/bindings/lib/message_internal.h"
 #include "mojo/public/cpp/bindings/lib/serialization_util.h"
@@ -69,9 +70,9 @@
   const auto& header = *static_cast<const StructHeader*>(data);
   if (header.version <= version_sizes.back().version) {
     // Scan in reverse order to optimize for more recent versions.
-    for (auto it = version_sizes.rbegin(); it != version_sizes.rend(); ++it) {
-      if (header.version >= it->version) {
-        if (header.num_bytes == it->num_bytes)
+    for (const auto& version_size : base::Reversed(version_sizes)) {
+      if (header.version >= version_size.version) {
+        if (header.num_bytes == version_size.num_bytes)
           break;
         ReportValidationError(validation_context,
                               VALIDATION_ERROR_UNEXPECTED_STRUCT_HEADER);
diff --git a/net/BUILD.gn b/net/BUILD.gn
index a733e5ec..3842576 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -434,6 +434,8 @@
     "cookies/cookie_store.h",
     "cookies/cookie_util.cc",
     "cookies/cookie_util.h",
+    "cookies/first_party_set_entry.cc",
+    "cookies/first_party_set_entry.h",
     "cookies/first_party_set_metadata.cc",
     "cookies/first_party_set_metadata.h",
     "cookies/parsed_cookie.cc",
diff --git a/net/cookies/cookie_access_delegate.cc b/net/cookies/cookie_access_delegate.cc
index 9ed9ed4..63ccc28 100644
--- a/net/cookies/cookie_access_delegate.cc
+++ b/net/cookies/cookie_access_delegate.cc
@@ -7,22 +7,21 @@
 #include <set>
 
 #include "base/callback.h"
-#include "base/stl_util.h"
 #include "net/base/schemeful_site.h"
 #include "net/cookies/cookie_partition_key.h"
-#include "net/cookies/first_party_set_metadata.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace net {
 
 namespace {
-CookiePartitionKey CreateCookiePartitionKeyFromFirstPartySetOwner(
+CookiePartitionKey CreateCookiePartitionKeyFromFirstPartySetEntry(
     const CookiePartitionKey& cookie_partition_key,
-    absl::optional<SchemefulSite> first_party_set_owner) {
-  if (!first_party_set_owner) {
+    absl::optional<FirstPartySetEntry> first_party_set_entry) {
+  if (!first_party_set_entry) {
     return cookie_partition_key;
   }
-  return CookiePartitionKey::FromWire(first_party_set_owner.value(),
+  return CookiePartitionKey::FromWire(first_party_set_entry.value().primary(),
                                       cookie_partition_key.nonce());
 }
 }  // namespace
@@ -48,15 +47,15 @@
     return cookie_partition_key;
   }
 
-  absl::optional<absl::optional<SchemefulSite>> maybe_owner =
+  absl::optional<absl::optional<FirstPartySetEntry>> maybe_entry =
       delegate->FindFirstPartySetOwner(
           cookie_partition_key.site(),
-          base::BindOnce(&CreateCookiePartitionKeyFromFirstPartySetOwner,
+          base::BindOnce(&CreateCookiePartitionKeyFromFirstPartySetEntry,
                          cookie_partition_key)
               .Then(std::move(callback)));
-  if (maybe_owner.has_value())
-    return CreateCookiePartitionKeyFromFirstPartySetOwner(cookie_partition_key,
-                                                          maybe_owner.value());
+  if (maybe_entry.has_value())
+    return CreateCookiePartitionKeyFromFirstPartySetEntry(cookie_partition_key,
+                                                          maybe_entry.value());
 
   return absl::nullopt;
 }
diff --git a/net/cookies/cookie_access_delegate.h b/net/cookies/cookie_access_delegate.h
index 76b4d59..1de6b03 100644
--- a/net/cookies/cookie_access_delegate.h
+++ b/net/cookies/cookie_access_delegate.h
@@ -15,6 +15,7 @@
 #include "net/cookies/canonical_cookie.h"
 #include "net/cookies/cookie_constants.h"
 #include "net/cookies/cookie_partition_key.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "net/cookies/first_party_set_metadata.h"
 #include "net/cookies/same_party_context.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -74,11 +75,11 @@
   // with the result. The callback will be invoked iff the return value is
   // nullopt; i.e. a result will be provided via return value or callback, but
   // not both, and not neither.
-  [[nodiscard]] virtual absl::optional<absl::optional<net::SchemefulSite>>
+  [[nodiscard]] virtual absl::optional<absl::optional<net::FirstPartySetEntry>>
   FindFirstPartySetOwner(
       const net::SchemefulSite& site,
-      base::OnceCallback<void(absl::optional<net::SchemefulSite>)> callback)
-      const = 0;
+      base::OnceCallback<void(absl::optional<net::FirstPartySetEntry>)>
+          callback) const = 0;
 
   // Computes the owners of a set of sites' First-Party Sets if the site are in
   // non-trivial sets. If a given site is not in a non-trivial set, the output
@@ -89,12 +90,12 @@
   // nullopt; i.e. a result will be provided via return value or callback, but
   // not both, and not neither.
   [[nodiscard]] virtual absl::optional<
-      base::flat_map<net::SchemefulSite, net::SchemefulSite>>
+      base::flat_map<net::SchemefulSite, net::FirstPartySetEntry>>
   FindFirstPartySetOwners(
       const base::flat_set<net::SchemefulSite>& sites,
-      base::OnceCallback<void(
-          base::flat_map<net::SchemefulSite, net::SchemefulSite>)> callback)
-      const = 0;
+      base::OnceCallback<
+          void(base::flat_map<net::SchemefulSite, net::FirstPartySetEntry>)>
+          callback) const = 0;
 
   // Converts the CookiePartitionKey's site to its First-Party Set owner if
   // the site is in a nontrivial set.
diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc
index 7ccffa2..65225db5 100644
--- a/net/cookies/cookie_monster.cc
+++ b/net/cookies/cookie_monster.cc
@@ -2250,8 +2250,8 @@
             GURL(base::StrCat({url::kHttpsScheme, "://", domain})));
       }
     }
-    absl::optional<base::flat_map<SchemefulSite, SchemefulSite>> maybe_sets =
-        cookie_access_delegate()->FindFirstPartySetOwners(
+    absl::optional<base::flat_map<SchemefulSite, FirstPartySetEntry>>
+        maybe_sets = cookie_access_delegate()->FindFirstPartySetOwners(
             sites,
             base::BindOnce(&CookieMonster::RecordPeriodicFirstPartySetsStats,
                            weak_ptr_factory_.GetWeakPtr()));
@@ -2277,10 +2277,10 @@
 }
 
 void CookieMonster::RecordPeriodicFirstPartySetsStats(
-    base::flat_map<SchemefulSite, SchemefulSite> sets) const {
+    base::flat_map<SchemefulSite, FirstPartySetEntry> sets) const {
   base::flat_map<SchemefulSite, std::set<SchemefulSite>> grouped_by_owner;
-  for (const auto& [site, owner] : sets) {
-    grouped_by_owner[owner].insert(site);
+  for (const auto& [site, entry] : sets) {
+    grouped_by_owner[entry.primary()].insert(site);
   }
   for (const auto& set : grouped_by_owner) {
     int sample = std::accumulate(
diff --git a/net/cookies/cookie_monster.h b/net/cookies/cookie_monster.h
index af03c70..fa5e56d 100644
--- a/net/cookies/cookie_monster.h
+++ b/net/cookies/cookie_monster.h
@@ -689,7 +689,7 @@
   // may be collected asynchronously w.r.t. the rest of the stats collected by
   // `RecordPeriodicStats`.
   void RecordPeriodicFirstPartySetsStats(
-      base::flat_map<SchemefulSite, SchemefulSite> sets) const;
+      base::flat_map<SchemefulSite, FirstPartySetEntry> sets) const;
 
   // Defers the callback until the full coookie database has been loaded. If
   // it's already been loaded, runs the callback synchronously.
diff --git a/net/cookies/cookie_monster_unittest.cc b/net/cookies/cookie_monster_unittest.cc
index 0d4cd3ce..12203ac 100644
--- a/net/cookies/cookie_monster_unittest.cc
+++ b/net/cookies/cookie_monster_unittest.cc
@@ -5300,23 +5300,20 @@
 };
 
 TEST_F(FirstPartySetEnabledCookieMonsterTest, RecordsPeriodicFPSSizes) {
+  net::SchemefulSite owner1(GURL("https://owner1.test"));
+  net::SchemefulSite owner2(GURL("https://owner2.test"));
+  net::SchemefulSite member1(GURL("https://member1.test"));
+  net::SchemefulSite member2(GURL("https://member2.test"));
+  net::SchemefulSite member3(GURL("https://member3.test"));
+  net::SchemefulSite member4(GURL("https://member4.test"));
+
   access_delegate_->SetFirstPartySets({
-      {
-          SchemefulSite(GURL("https://owner1.test")),
-          {
-              SchemefulSite(GURL("https://owner1.test")),
-              SchemefulSite(GURL("https://member1.test")),
-              SchemefulSite(GURL("https://member2.test")),
-          },
-      },
-      {
-          SchemefulSite(GURL("https://owner2.test")),
-          {
-              SchemefulSite(GURL("https://owner2.test")),
-              SchemefulSite(GURL("https://member3.test")),
-              SchemefulSite(GURL("https://member4.test")),
-          },
-      },
+      {owner1, net::FirstPartySetEntry(owner1)},
+      {member1, net::FirstPartySetEntry(owner1)},
+      {member2, net::FirstPartySetEntry(owner1)},
+      {owner2, net::FirstPartySetEntry(owner2)},
+      {member3, net::FirstPartySetEntry(owner2)},
+      {member4, net::FirstPartySetEntry(owner2)},
   });
 
   ASSERT_TRUE(SetCookie(cm(), GURL("https://owner1.test"), kValidCookieLine));
diff --git a/net/cookies/cookie_partition_key_collection.cc b/net/cookies/cookie_partition_key_collection.cc
index 907a4e68..9a33688 100644
--- a/net/cookies/cookie_partition_key_collection.cc
+++ b/net/cookies/cookie_partition_key_collection.cc
@@ -14,20 +14,21 @@
 #include "net/base/schemeful_site.h"
 #include "net/cookies/cookie_access_delegate.h"
 #include "net/cookies/cookie_partition_key.h"
+#include "net/cookies/first_party_set_entry.h"
 
 namespace net {
 
 namespace {
-CookiePartitionKeyCollection TransformWithFirstPartySetOwners(
+CookiePartitionKeyCollection TransformWithFirstPartySetEntries(
     const base::flat_set<CookiePartitionKey>& keys,
-    base::flat_map<SchemefulSite, SchemefulSite> sites_to_owners) {
+    base::flat_map<SchemefulSite, FirstPartySetEntry> sites_to_entries) {
   std::vector<CookiePartitionKey> canonicalized_keys;
   canonicalized_keys.reserve(keys.size());
   for (const CookiePartitionKey& key : keys) {
-    const auto first_party_set_owner_iter = sites_to_owners.find(key.site());
+    const auto it = sites_to_entries.find(key.site());
     canonicalized_keys.push_back(
-        !key.nonce() && first_party_set_owner_iter != sites_to_owners.end()
-            ? CookiePartitionKey::FromWire(first_party_set_owner_iter->second)
+        !key.nonce() && it != sites_to_entries.end()
+            ? CookiePartitionKey::FromWire(it->second.primary())
             : key);
   }
   return CookiePartitionKeyCollection(canonicalized_keys);
@@ -80,15 +81,15 @@
   }
   if (sites.empty())
     return *this;
-  absl::optional<base::flat_map<SchemefulSite, SchemefulSite>>
-      maybe_sites_to_owners = cookie_access_delegate->FindFirstPartySetOwners(
+  absl::optional<base::flat_map<SchemefulSite, FirstPartySetEntry>>
+      maybe_sites_to_entries = cookie_access_delegate->FindFirstPartySetOwners(
           sites,
-          base::BindOnce(&TransformWithFirstPartySetOwners, PartitionKeys())
+          base::BindOnce(&TransformWithFirstPartySetEntries, PartitionKeys())
               .Then(std::move(callback)));
 
-  if (maybe_sites_to_owners.has_value())
-    return TransformWithFirstPartySetOwners(PartitionKeys(),
-                                            maybe_sites_to_owners.value());
+  if (maybe_sites_to_entries.has_value())
+    return TransformWithFirstPartySetEntries(PartitionKeys(),
+                                             maybe_sites_to_entries.value());
 
   return absl::nullopt;
 }
diff --git a/net/cookies/cookie_partition_key_collection_unittest.cc b/net/cookies/cookie_partition_key_collection_unittest.cc
index 25b5b15..88a7eebc 100644
--- a/net/cookies/cookie_partition_key_collection_unittest.cc
+++ b/net/cookies/cookie_partition_key_collection_unittest.cc
@@ -112,10 +112,10 @@
       CookiePartitionKey::FromURLForTesting(kNonMemberURL);
 
   TestCookieAccessDelegate delegate;
-  base::flat_map<SchemefulSite, std::set<SchemefulSite>> first_party_sets;
-  first_party_sets.insert(std::make_pair(
-      kOwnerSite, std::set<SchemefulSite>({kOwnerSite, kMemberSite})));
-  delegate.SetFirstPartySets(first_party_sets);
+  delegate.SetFirstPartySets({
+      {kOwnerSite, net::FirstPartySetEntry(kOwnerSite)},
+      {kMemberSite, net::FirstPartySetEntry(kOwnerSite)},
+  });
 
   CookiePartitionKeyCollection empty_key_collection;
   EXPECT_TRUE(
diff --git a/net/cookies/first_party_set_entry.cc b/net/cookies/first_party_set_entry.cc
new file mode 100644
index 0000000..f75a025
--- /dev/null
+++ b/net/cookies/first_party_set_entry.cc
@@ -0,0 +1,40 @@
+// Copyright 2022 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/first_party_set_entry.h"
+
+#include <tuple>
+
+#include "net/base/schemeful_site.h"
+
+namespace net {
+
+FirstPartySetEntry::FirstPartySetEntry() = default;
+
+FirstPartySetEntry::FirstPartySetEntry(SchemefulSite primary)
+    : primary_(primary) {}
+
+FirstPartySetEntry::FirstPartySetEntry(const FirstPartySetEntry&) = default;
+FirstPartySetEntry& FirstPartySetEntry::operator=(const FirstPartySetEntry&) =
+    default;
+FirstPartySetEntry::FirstPartySetEntry(FirstPartySetEntry&&) = default;
+FirstPartySetEntry& FirstPartySetEntry::operator=(FirstPartySetEntry&&) =
+    default;
+
+FirstPartySetEntry::~FirstPartySetEntry() = default;
+
+bool FirstPartySetEntry::operator==(const FirstPartySetEntry& other) const {
+  return primary_ == other.primary_;
+}
+
+bool FirstPartySetEntry::operator!=(const FirstPartySetEntry& other) const {
+  return !(*this == other);
+}
+
+std::ostream& operator<<(std::ostream& os, const FirstPartySetEntry& entry) {
+  os << "{" << entry.primary() << "}";
+  return os;
+}
+
+}  // namespace net
diff --git a/net/cookies/first_party_set_entry.h b/net/cookies/first_party_set_entry.h
new file mode 100644
index 0000000..29fcd0a
--- /dev/null
+++ b/net/cookies/first_party_set_entry.h
@@ -0,0 +1,44 @@
+// Copyright 2022 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_FIRST_PARTY_SET_ENTRY_H_
+#define NET_COOKIES_FIRST_PARTY_SET_ENTRY_H_
+
+#include "net/base/net_export.h"
+#include "net/base/schemeful_site.h"
+
+namespace net {
+
+// This class bundles together metadata associated with an entry in a
+// First-Party Set.
+class NET_EXPORT FirstPartySetEntry {
+ public:
+  FirstPartySetEntry();
+
+  // `primary` is the primary site in the First-Party Set associated with this
+  // entry.
+  explicit FirstPartySetEntry(SchemefulSite primary);
+
+  FirstPartySetEntry(const FirstPartySetEntry&);
+  FirstPartySetEntry& operator=(const FirstPartySetEntry&);
+  FirstPartySetEntry(FirstPartySetEntry&&);
+  FirstPartySetEntry& operator=(FirstPartySetEntry&&);
+
+  ~FirstPartySetEntry();
+
+  bool operator==(const FirstPartySetEntry& other) const;
+  bool operator!=(const FirstPartySetEntry& other) const;
+
+  const SchemefulSite& primary() const { return primary_; }
+
+ private:
+  SchemefulSite primary_;
+};
+
+NET_EXPORT std::ostream& operator<<(std::ostream& os,
+                                    const FirstPartySetEntry& fpse);
+
+}  // namespace net
+
+#endif  // NET_COOKIES_FIRST_PARTY_SET_ENTRY_H_
diff --git a/net/cookies/first_party_set_metadata.cc b/net/cookies/first_party_set_metadata.cc
index 0bd6ab7e..0937d89 100644
--- a/net/cookies/first_party_set_metadata.cc
+++ b/net/cookies/first_party_set_metadata.cc
@@ -7,18 +7,18 @@
 #include <tuple>
 
 #include "base/stl_util.h"
-#include "net/cookies/cookie_constants.h"
+#include "net/cookies/first_party_set_entry.h"
 
 namespace net {
 
 FirstPartySetMetadata::FirstPartySetMetadata() = default;
 FirstPartySetMetadata::FirstPartySetMetadata(
     const SamePartyContext& context,
-    const SchemefulSite* frame_owner,
-    const SchemefulSite* top_frame_owner)
+    const FirstPartySetEntry* frame_entry,
+    const FirstPartySetEntry* top_frame_entry)
     : context_(context),
-      frame_owner_(base::OptionalFromPtr(frame_owner)),
-      top_frame_owner_(base::OptionalFromPtr(top_frame_owner)) {}
+      frame_entry_(base::OptionalFromPtr(frame_entry)),
+      top_frame_entry_(base::OptionalFromPtr(top_frame_entry)) {}
 
 FirstPartySetMetadata::FirstPartySetMetadata(FirstPartySetMetadata&&) = default;
 FirstPartySetMetadata& FirstPartySetMetadata::operator=(
@@ -28,15 +28,15 @@
 
 bool FirstPartySetMetadata::operator==(
     const FirstPartySetMetadata& other) const {
-  return std::tie(context_, frame_owner_, top_frame_owner_) ==
-         std::tie(other.context_, other.frame_owner_, other.top_frame_owner_);
+  return std::tie(context_, frame_entry_, top_frame_entry_) ==
+         std::tie(other.context_, other.frame_entry_, other.top_frame_entry_);
 }
 
 std::ostream& operator<<(std::ostream& os,
                          const FirstPartySetMetadata& metadata) {
   os << "{" << metadata.context() << ", "
-     << base::OptionalOrNullptr(metadata.frame_owner()) << ", "
-     << base::OptionalOrNullptr(metadata.top_frame_owner()) << "}";
+     << base::OptionalOrNullptr(metadata.frame_entry()) << ", "
+     << base::OptionalOrNullptr(metadata.top_frame_entry()) << "}";
   return os;
 }
 
diff --git a/net/cookies/first_party_set_metadata.h b/net/cookies/first_party_set_metadata.h
index 6298c7e..5d54d556 100644
--- a/net/cookies/first_party_set_metadata.h
+++ b/net/cookies/first_party_set_metadata.h
@@ -5,9 +5,8 @@
 #ifndef NET_COOKIES_FIRST_PARTY_SET_METADATA_H_
 #define NET_COOKIES_FIRST_PARTY_SET_METADATA_H_
 
-#include "base/stl_util.h"
 #include "net/base/net_export.h"
-#include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "net/cookies/same_party_context.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
@@ -19,12 +18,12 @@
  public:
   FirstPartySetMetadata();
 
-  // `frame_owner` and `top_frame_owner` must live for the duration of the ctor;
+  // `frame_entry` and `top_frame_entry` must live for the duration of the ctor;
   // nullptr indicates that there's no First-Party Set that's associated with
   // the current frame or the top frame, respectively, in the given context.
   FirstPartySetMetadata(const SamePartyContext& context,
-                        const SchemefulSite* frame_owner,
-                        const SchemefulSite* top_frame_owner);
+                        const FirstPartySetEntry* frame_entry,
+                        const FirstPartySetEntry* top_frame_entry);
 
   FirstPartySetMetadata(FirstPartySetMetadata&&);
   FirstPartySetMetadata& operator=(FirstPartySetMetadata&&);
@@ -37,17 +36,17 @@
 
   // Returns a optional<T>& instead of a T* so that operator== can be defined
   // more easily.
-  const absl::optional<SchemefulSite>& frame_owner() const {
-    return frame_owner_;
+  const absl::optional<FirstPartySetEntry>& frame_entry() const {
+    return frame_entry_;
   }
-  const absl::optional<SchemefulSite>& top_frame_owner() const {
-    return top_frame_owner_;
+  const absl::optional<FirstPartySetEntry>& top_frame_entry() const {
+    return top_frame_entry_;
   }
 
  private:
   SamePartyContext context_ = SamePartyContext();
-  absl::optional<SchemefulSite> frame_owner_ = absl::nullopt;
-  absl::optional<SchemefulSite> top_frame_owner_ = absl::nullopt;
+  absl::optional<FirstPartySetEntry> frame_entry_ = absl::nullopt;
+  absl::optional<FirstPartySetEntry> top_frame_entry_ = absl::nullopt;
 };
 
 NET_EXPORT std::ostream& operator<<(std::ostream& os,
diff --git a/net/cookies/test_cookie_access_delegate.cc b/net/cookies/test_cookie_access_delegate.cc
index 1bf7de1d..95df366 100644
--- a/net/cookies/test_cookie_access_delegate.cc
+++ b/net/cookies/test_cookie_access_delegate.cc
@@ -19,6 +19,7 @@
 #include "net/base/schemeful_site.h"
 #include "net/cookies/cookie_constants.h"
 #include "net/cookies/cookie_util.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "net/cookies/first_party_set_metadata.h"
 #include "net/cookies/same_party_context.h"
 
@@ -54,7 +55,7 @@
     const SchemefulSite* top_frame_site,
     const std::set<SchemefulSite>& party_context,
     base::OnceCallback<void(FirstPartySetMetadata)> callback) const {
-  absl::optional<SchemefulSite> top_frame_owner =
+  absl::optional<FirstPartySetEntry> top_frame_owner =
       top_frame_site ? FindFirstPartySetOwnerSync(*top_frame_site)
                      : absl::nullopt;
   return RunMaybeAsync(
@@ -65,39 +66,36 @@
       std::move(callback));
 }
 
-absl::optional<SchemefulSite>
+absl::optional<FirstPartySetEntry>
 TestCookieAccessDelegate::FindFirstPartySetOwnerSync(
     const SchemefulSite& site) const {
-  auto owner_set_iter =
-      base::ranges::find_if(first_party_sets_, [&](const auto& set_iter) {
-        return base::Contains(set_iter.second, site);
-      });
+  auto entry = first_party_sets_.find(site);
 
-  return owner_set_iter != first_party_sets_.end()
-             ? absl::make_optional(owner_set_iter->first)
-             : absl::nullopt;
+  return entry != first_party_sets_.end() ? absl::make_optional(entry->second)
+                                          : absl::nullopt;
 }
 
-absl::optional<absl::optional<SchemefulSite>>
+absl::optional<absl::optional<FirstPartySetEntry>>
 TestCookieAccessDelegate::FindFirstPartySetOwner(
     const SchemefulSite& site,
-    base::OnceCallback<void(absl::optional<SchemefulSite>)> callback) const {
+    base::OnceCallback<void(absl::optional<FirstPartySetEntry>)> callback)
+    const {
   return RunMaybeAsync(FindFirstPartySetOwnerSync(site), std::move(callback));
 }
 
-absl::optional<base::flat_map<SchemefulSite, SchemefulSite>>
+absl::optional<base::flat_map<SchemefulSite, FirstPartySetEntry>>
 TestCookieAccessDelegate::FindFirstPartySetOwners(
     const base::flat_set<SchemefulSite>& sites,
-    base::OnceCallback<void(base::flat_map<SchemefulSite, SchemefulSite>)>
+    base::OnceCallback<void(base::flat_map<SchemefulSite, FirstPartySetEntry>)>
         callback) const {
-  std::vector<std::pair<SchemefulSite, SchemefulSite>> mapping;
+  std::vector<std::pair<SchemefulSite, FirstPartySetEntry>> mapping;
   for (const SchemefulSite& site : sites) {
-    absl::optional<SchemefulSite> owner = FindFirstPartySetOwnerSync(site);
-    if (owner)
-      mapping.emplace_back(site, *owner);
+    absl::optional<FirstPartySetEntry> entry = FindFirstPartySetOwnerSync(site);
+    if (entry)
+      mapping.emplace_back(site, *entry);
   }
 
-  return RunMaybeAsync<base::flat_map<SchemefulSite, SchemefulSite>>(
+  return RunMaybeAsync<base::flat_map<SchemefulSite, FirstPartySetEntry>>(
       mapping, std::move(callback));
 }
 
@@ -133,7 +131,7 @@
 }
 
 void TestCookieAccessDelegate::SetFirstPartySets(
-    const base::flat_map<SchemefulSite, std::set<SchemefulSite>>& sets) {
+    const base::flat_map<SchemefulSite, FirstPartySetEntry>& sets) {
   first_party_sets_ = sets;
 }
 
diff --git a/net/cookies/test_cookie_access_delegate.h b/net/cookies/test_cookie_access_delegate.h
index 5293a416..77d4b7f 100644
--- a/net/cookies/test_cookie_access_delegate.h
+++ b/net/cookies/test_cookie_access_delegate.h
@@ -15,6 +15,7 @@
 #include "net/base/schemeful_site.h"
 #include "net/cookies/cookie_access_delegate.h"
 #include "net/cookies/cookie_constants.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "net/cookies/first_party_set_metadata.h"
 #include "net/cookies/same_party_context.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -46,15 +47,16 @@
       const SchemefulSite* top_frame_site,
       const std::set<SchemefulSite>& party_context,
       base::OnceCallback<void(FirstPartySetMetadata)> callback) const override;
-  absl::optional<absl::optional<SchemefulSite>> FindFirstPartySetOwner(
+  absl::optional<absl::optional<FirstPartySetEntry>> FindFirstPartySetOwner(
       const SchemefulSite& site,
-      base::OnceCallback<void(absl::optional<SchemefulSite>)> callback)
+      base::OnceCallback<void(absl::optional<FirstPartySetEntry>)> callback)
       const override;
-  absl::optional<base::flat_map<SchemefulSite, SchemefulSite>>
+  absl::optional<base::flat_map<SchemefulSite, FirstPartySetEntry>>
   FindFirstPartySetOwners(
       const base::flat_set<SchemefulSite>& sites,
-      base::OnceCallback<void(base::flat_map<SchemefulSite, SchemefulSite>)>
-          callback) const override;
+      base::OnceCallback<
+          void(base::flat_map<SchemefulSite, FirstPartySetEntry>)> callback)
+      const override;
 
   // Sets the expected return value for any cookie whose Domain
   // matches |cookie_domain|. Pass the value of |cookie.Domain()| and any
@@ -69,11 +71,10 @@
       const std::string& site_for_cookies_scheme,
       bool require_secure_origin);
 
-  // Set the test delegate's First-Party Sets. The map is keyed on the set's
-  // owner site. The owner site should still be included in the std::set stored
-  // in the map.
+  // Set the test delegate's First-Party Sets. The map's keys are the sites in
+  // the sets. Owner sites must be included among the keys for a given set.
   void SetFirstPartySets(
-      const base::flat_map<SchemefulSite, std::set<SchemefulSite>>& sets);
+      const base::flat_map<SchemefulSite, FirstPartySetEntry>& sets);
 
   void set_invoke_callbacks_asynchronously(bool async) {
     invoke_callbacks_asynchronously_ = async;
@@ -81,7 +82,7 @@
 
  private:
   // Synchronous version of FindFirstPartySetOwner, for convenience.
-  absl::optional<SchemefulSite> FindFirstPartySetOwnerSync(
+  absl::optional<FirstPartySetEntry> FindFirstPartySetOwnerSync(
       const SchemefulSite& site) const;
 
   // Discard any leading dot in the domain string.
@@ -95,7 +96,7 @@
 
   std::map<std::string, CookieAccessSemantics> expectations_;
   std::map<std::string, bool> ignore_samesite_restrictions_schemes_;
-  base::flat_map<SchemefulSite, std::set<SchemefulSite>> first_party_sets_;
+  base::flat_map<SchemefulSite, FirstPartySetEntry> first_party_sets_;
   bool invoke_callbacks_asynchronously_ = false;
 };
 
diff --git a/net/socket/tcp_socket_posix.cc b/net/socket/tcp_socket_posix.cc
index 640fe1e9..ac53c0f3 100644
--- a/net/socket/tcp_socket_posix.cc
+++ b/net/socket/tcp_socket_posix.cc
@@ -499,14 +499,6 @@
   }
 }
 
-int TCPSocketPosix::OpenAndReleaseSocketDescriptor(AddressFamily family,
-                                                   SocketDescriptor* out) {
-  std::unique_ptr<SocketPosix> new_socket = std::make_unique<SocketPosix>();
-  int rv = new_socket->Open(ConvertAddressFamily(family));
-  *out = new_socket->ReleaseConnectedSocket();
-  return rv;
-}
-
 SocketDescriptor TCPSocketPosix::ReleaseSocketDescriptorForTesting() {
   SocketDescriptor socket_descriptor = socket_->ReleaseConnectedSocket();
   socket_.reset();
diff --git a/net/socket/tcp_socket_posix.h b/net/socket/tcp_socket_posix.h
index 5200584..6cad47a8 100644
--- a/net/socket/tcp_socket_posix.h
+++ b/net/socket/tcp_socket_posix.h
@@ -150,11 +150,6 @@
 
   const NetLogWithSource& net_log() const { return net_log_; }
 
-  // Opens the socket and returns the underlying SocketDescriptor as well as the
-  // result of Open(). This method is used by the socket broker.
-  static int OpenAndReleaseSocketDescriptor(AddressFamily family,
-                                            SocketDescriptor* out);
-
   // Return the underlying SocketDescriptor and clean up this object, which may
   // no longer be used. This method should be used only for testing. No read,
   // write, or accept operations should be pending.
diff --git a/net/socket/tcp_socket_win.cc b/net/socket/tcp_socket_win.cc
index b6f4475a..f8ddee0 100644
--- a/net/socket/tcp_socket_win.cc
+++ b/net/socket/tcp_socket_win.cc
@@ -749,29 +749,6 @@
   }
 }
 
-int TCPSocketWin::OpenAndReleaseSocketDescriptor(AddressFamily family,
-                                                 SocketDescriptor* out) {
-  THREAD_CHECKER(thread_checker);
-  DCHECK_CALLED_ON_VALID_THREAD(thread_checker);
-
-  SOCKET new_socket = CreatePlatformSocket(ConvertAddressFamily(family),
-                                           SOCK_STREAM, IPPROTO_TCP);
-  int os_error = WSAGetLastError();
-  int result = OK;
-  if (new_socket == INVALID_SOCKET) {
-    PLOG(ERROR) << "CreatePlatformSocket() returned an error";
-    result = MapSystemError(os_error);
-  }
-
-  if (!SetNonBlockingAndGetError(new_socket, &os_error)) {
-    result = MapSystemError(os_error);
-  }
-
-  *out = new_socket;
-  new_socket = INVALID_SOCKET;
-  return result;
-}
-
 SocketDescriptor TCPSocketWin::ReleaseSocketDescriptorForTesting() {
   SocketDescriptor socket_descriptor = socket_;
   socket_ = INVALID_SOCKET;
diff --git a/net/socket/tcp_socket_win.h b/net/socket/tcp_socket_win.h
index d8f2be38..36fcb08 100644
--- a/net/socket/tcp_socket_win.h
+++ b/net/socket/tcp_socket_win.h
@@ -123,11 +123,6 @@
 
   const NetLogWithSource& net_log() const { return net_log_; }
 
-  // Opens the socket and returns the underlying SocketDescriptor as well as the
-  // result of Open(). This method is used by the socket broker.
-  static int OpenAndReleaseSocketDescriptor(AddressFamily family,
-                                            SocketDescriptor* out);
-
   // Return the underlying SocketDescriptor and clean up this object, which may
   // no longer be used. This method should be used only for testing. No read,
   // write, or accept operations should be pending.
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
index 3c7710c..4c9c7a0 100644
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -335,7 +335,11 @@
 
     cookie_partition_key_ = CookiePartitionKey::FromNetworkIsolationKey(
         request_->isolation_info().network_isolation_key(),
-        base::OptionalOrNullptr(first_party_set_metadata_.top_frame_owner()));
+        base::OptionalOrNullptr(
+            first_party_set_metadata_.top_frame_entry().has_value()
+                ? absl::make_optional(
+                      first_party_set_metadata_.top_frame_entry()->primary())
+                : absl::nullopt));
     AddCookieHeaderAndStart();
   } else {
     StartTransaction();
@@ -615,7 +619,7 @@
           is_main_frame_navigation, force_ignore_site_for_cookies);
 
   bool is_in_nontrivial_first_party_set =
-      first_party_set_metadata_.frame_owner().has_value();
+      first_party_set_metadata_.frame_entry().has_value();
   CookieOptions options = CreateCookieOptions(
       same_site_context, first_party_set_metadata_.context(),
       request_->isolation_info(), is_in_nontrivial_first_party_set);
@@ -851,7 +855,7 @@
           force_ignore_site_for_cookies);
 
   bool is_in_nontrivial_first_party_set =
-      first_party_set_metadata_.frame_owner().has_value();
+      first_party_set_metadata_.frame_entry().has_value();
   CookieOptions options = CreateCookieOptions(
       same_site_context, first_party_set_metadata_.context(),
       request_->isolation_info(), is_in_nontrivial_first_party_set);
diff --git a/net/url_request/url_request_http_job_unittest.cc b/net/url_request/url_request_http_job_unittest.cc
index 9167632d..68466ac 100644
--- a/net/url_request/url_request_http_job_unittest.cc
+++ b/net/url_request/url_request_http_job_unittest.cc
@@ -1917,16 +1917,15 @@
   const IsolationInfo kNonMemberIsolationInfo =
       IsolationInfo::CreateForInternalRequest(kNonMemberOrigin);
 
-  base::flat_map<SchemefulSite, std::set<SchemefulSite>> first_party_sets;
-  first_party_sets.insert(std::make_pair(
-      kOwnerSite, std::set<SchemefulSite>({kOwnerSite, kMemberSite})));
-
   auto context_builder = CreateTestURLRequestContextBuilder();
   auto cookie_monster = std::make_unique<CookieMonster>(
       /*store=*/nullptr, /*net_log=*/nullptr,
       /*first_party_sets_enabled=*/false);
   auto cookie_access_delegate = std::make_unique<TestCookieAccessDelegate>();
-  cookie_access_delegate->SetFirstPartySets(first_party_sets);
+  cookie_access_delegate->SetFirstPartySets({
+      {kOwnerSite, net::FirstPartySetEntry(kOwnerSite)},
+      {kMemberSite, net::FirstPartySetEntry(kOwnerSite)},
+  });
   cookie_monster->SetCookieAccessDelegate(std::move(cookie_access_delegate));
   context_builder->SetCookieStore(std::move(cookie_monster));
   auto context = context_builder->Build();
diff --git a/printing/buildflags/buildflags.gni b/printing/buildflags/buildflags.gni
index 1d2b24ad..e57b8ed 100644
--- a/printing/buildflags/buildflags.gni
+++ b/printing/buildflags/buildflags.gni
@@ -36,8 +36,7 @@
 
   # Enable snapshotting a page when printing for its content to be analyzed for
   # sensitive content by enterprise users.
-  enable_print_content_analysis =
-      is_chromeos_ash || is_chromeos_lacros || is_win || is_linux || is_mac
+  enable_print_content_analysis = is_chromeos || is_win || is_linux || is_mac
 }
 
 declare_args() {
diff --git a/remoting/host/desktop_resizer_x11.cc b/remoting/host/desktop_resizer_x11.cc
index 0031489..6e83afe 100644
--- a/remoting/host/desktop_resizer_x11.cc
+++ b/remoting/host/desktop_resizer_x11.cc
@@ -29,18 +29,13 @@
 //   3. Errors are communicated via Xlib's spectacularly unhelpful mechanism
 //      of terminating the process unless you install an error handler.
 //
-// The basic approach is as follows:
+// Since we want the current mode name to be consistent, the approach is as
+// follows:
 //
-//   1. Create a new mode with the correct resolution;
-//   2. Switch to the new mode;
-//   3. Delete the old mode.
-//
-// Since the new mode must have a different name, and we want the current mode
-// name to be consistent, we then additionally:
-//
-//   4. Recreate the old mode at the new resolution;
-//   5. Switch to the old mode;
-//   6. Delete the temporary mode.
+//   1. Disable the RANDR Output.
+//   2. Delete the CRD mode, if it exists.
+//   3. Create the CRD mode at the new resolution.
+//   4. Set the Output to the CRD mode (which re-enables it).
 //
 // Name consistency will allow a future CL to disable resize-to-client if the
 // user has changed the mode to something other than "Chrome Remote Desktop
@@ -198,17 +193,13 @@
 void DesktopResizerX11::SetResolutionNewMode(
     x11::RandR::Output output,
     const ScreenResolution& resolution) {
-  // The name of the mode representing the current client view resolution and
-  // the temporary mode used for the reasons described at the top of this file.
-  // The former should be localized if it's user-visible; the latter only
-  // exists briefly and does not need to localized.
+  // The name of the mode representing the current client view resolution.
   const char* kModeName = "Chrome Remote Desktop client resolution";
-  const char* kTempModeName = "Chrome Remote Desktop temporary mode";
 
   // Actually do the resize operation, preserving the current mode name. Note
-  // that we have to detach the output from any mode in order to resize it
-  // (strictly speaking, this is only required when reducing the size, but it
-  // seems safe to do it regardless).
+  // that we have to detach the output from the mode in order to delete the
+  // mode and re-create it with the new resolution. The output may also need to
+  // be detached from all modes in order to reduce the root window size.
   HOST_LOG << "Changing desktop size to " << resolution.dimensions().width()
            << "x" << resolution.dimensions().height();
 
@@ -217,19 +208,15 @@
       PixelsToMillimeters(resolution.dimensions().width(), kDefaultDPI);
   uint32_t height_mm =
       PixelsToMillimeters(resolution.dimensions().height(), kDefaultDPI);
-  CreateMode(output, kTempModeName, resolution.dimensions().width(),
-             resolution.dimensions().height());
   SwitchToMode(output, nullptr);
   randr_->SetScreenSize(
       {root_, static_cast<uint16_t>(resolution.dimensions().width()),
        static_cast<uint16_t>(resolution.dimensions().height()), width_mm,
        height_mm});
-  SwitchToMode(output, kTempModeName);
   DeleteMode(output, kModeName);
   CreateMode(output, kModeName, resolution.dimensions().width(),
              resolution.dimensions().height());
   SwitchToMode(output, kModeName);
-  DeleteMode(output, kTempModeName);
 }
 
 void DesktopResizerX11::SetResolutionExistingMode(
diff --git a/services/network/cookie_manager_unittest.cc b/services/network/cookie_manager_unittest.cc
index 641d875..a6a7a402 100644
--- a/services/network/cookie_manager_unittest.cc
+++ b/services/network/cookie_manager_unittest.cc
@@ -2958,9 +2958,10 @@
         non_member_partition_key_(
             net::CookiePartitionKey::FromURLForTesting(non_member_url_)) {
     delegate_ = std::make_unique<net::TestCookieAccessDelegate>();
-    first_party_sets_.insert(std::make_pair(
-        owner_site_,
-        std::set<net::SchemefulSite>({owner_site_, member_site_})));
+    first_party_sets_.insert(
+        {owner_site_, net::FirstPartySetEntry(owner_site_)});
+    first_party_sets_.insert(
+        {member_site_, net::FirstPartySetEntry(owner_site_)});
     delegate_->SetFirstPartySets(first_party_sets_);
     cookie_store()->SetCookieAccessDelegate(std::move(delegate_));
   }
@@ -2977,8 +2978,7 @@
   const GURL non_member_url_;
   const net::CookiePartitionKey non_member_partition_key_;
 
-  base::flat_map<net::SchemefulSite, std::set<net::SchemefulSite>>
-      first_party_sets_;
+  base::flat_map<net::SchemefulSite, net::FirstPartySetEntry> first_party_sets_;
   std::unique_ptr<net::TestCookieAccessDelegate> delegate_;
 };
 
diff --git a/services/network/first_party_sets/first_party_sets_access_delegate.h b/services/network/first_party_sets/first_party_sets_access_delegate.h
index 91a1fd4..392c4ccd 100644
--- a/services/network/first_party_sets/first_party_sets_access_delegate.h
+++ b/services/network/first_party_sets/first_party_sets_access_delegate.h
@@ -9,7 +9,6 @@
 
 #include "base/callback.h"
 #include "base/containers/circular_deque.h"
-#include "base/containers/flat_map.h"
 #include "base/containers/flat_set.h"
 #include "base/memory/raw_ptr.h"
 #include "base/sequence_checker.h"
@@ -30,9 +29,9 @@
 class FirstPartySetsAccessDelegate
     : public mojom::FirstPartySetsAccessDelegate {
  public:
-  using OwnerResult = absl::optional<net::SchemefulSite>;
-  using OwnersResult = base::flat_map<net::SchemefulSite, net::SchemefulSite>;
-  using FlattenedSets = base::flat_map<net::SchemefulSite, net::SchemefulSite>;
+  using OwnerResult = FirstPartySetsManager::OwnerResult;
+  using OwnersResult = FirstPartySetsManager::OwnersResult;
+  using FlattenedSets = FirstPartySetsManager::FlattenedSets;
 
   // Construct a FirstPartySetsAccessDelegate that provides customizations
   // and serves mojo requests for the underlying First-Party Sets info.
diff --git a/services/network/first_party_sets/first_party_sets_access_delegate_unittest.cc b/services/network/first_party_sets/first_party_sets_access_delegate_unittest.cc
index 7bcb2b7..c700489 100644
--- a/services/network/first_party_sets/first_party_sets_access_delegate_unittest.cc
+++ b/services/network/first_party_sets/first_party_sets_access_delegate_unittest.cc
@@ -14,6 +14,7 @@
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "net/cookies/first_party_set_metadata.h"
 #include "net/cookies/same_party_context.h"
 #include "services/network/public/mojom/first_party_sets_access_delegate.mojom.h"
@@ -30,7 +31,7 @@
 using ::testing::UnorderedElementsAre;
 using Type = net::SamePartyContext::Type;
 using OverrideSets =
-    base::flat_map<net::SchemefulSite, absl::optional<net::SchemefulSite>>;
+    base::flat_map<net::SchemefulSite, absl::optional<net::FirstPartySetEntry>>;
 
 namespace network {
 
@@ -71,11 +72,11 @@
             /*params=*/nullptr,
             &first_party_sets_manager_) {
     first_party_sets_manager_.SetCompleteSets({
-        {kSet1Member1, kSet1Owner},
-        {kSet1Member2, kSet1Owner},
-        {kSet1Owner, kSet1Owner},
-        {kSet2Member1, kSet2Owner},
-        {kSet2Owner, kSet2Owner},
+        {kSet1Member1, net::FirstPartySetEntry(kSet1Owner)},
+        {kSet1Member2, net::FirstPartySetEntry(kSet1Owner)},
+        {kSet1Owner, net::FirstPartySetEntry(kSet1Owner)},
+        {kSet2Member1, net::FirstPartySetEntry(kSet2Owner)},
+        {kSet2Owner, net::FirstPartySetEntry(kSet2Owner)},
     });
   }
 
@@ -101,17 +102,17 @@
 
 TEST_F(NoopFirstPartySetsAccessDelegateTest, FindOwner) {
   EXPECT_THAT(delegate().FindOwner(kSet1Owner, base::NullCallback()),
-              absl::make_optional(kSet1Owner));
+              absl::make_optional(net::FirstPartySetEntry(kSet1Owner)));
   EXPECT_THAT(delegate().FindOwner(kSet2Member1, base::NullCallback()),
-              absl::make_optional(kSet2Owner));
+              absl::make_optional(net::FirstPartySetEntry(kSet2Owner)));
 }
 
 TEST_F(NoopFirstPartySetsAccessDelegateTest, FindOwners) {
   EXPECT_THAT(
       delegate().FindOwners({kSet1Member1, kSet2Member1}, base::NullCallback()),
       FirstPartySetsAccessDelegate::OwnersResult({
-          {kSet1Member1, kSet1Owner},
-          {kSet2Member1, kSet2Owner},
+          {kSet1Member1, net::FirstPartySetEntry(kSet1Owner)},
+          {kSet2Member1, net::FirstPartySetEntry(kSet2Owner)},
       }));
 }
 
@@ -123,11 +124,11 @@
                   CreateFirstPartySetsAccessDelegateParams(enabled),
                   &first_party_sets_manager_) {
     first_party_sets_manager_.SetCompleteSets({
-        {kSet1Member1, kSet1Owner},
-        {kSet1Member2, kSet1Owner},
-        {kSet1Owner, kSet1Owner},
-        {kSet2Member1, kSet2Owner},
-        {kSet2Owner, kSet2Owner},
+        {kSet1Member1, net::FirstPartySetEntry(kSet1Owner)},
+        {kSet1Member2, net::FirstPartySetEntry(kSet1Owner)},
+        {kSet1Owner, net::FirstPartySetEntry(kSet1Owner)},
+        {kSet2Member1, net::FirstPartySetEntry(kSet2Owner)},
+        {kSet2Owner, net::FirstPartySetEntry(kSet2Owner)},
     });
   }
 
@@ -215,9 +216,10 @@
 
   delegate_remote()->NotifyReady(mojom::FirstPartySetsReadyEvent::New());
 
+  net::FirstPartySetEntry entry(kSet1Owner);
   EXPECT_EQ(future.Get(),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kSameParty),
-                                       &kSet1Owner, &kSet1Owner));
+                                       &entry, &entry));
 }
 
 TEST_F(AsyncFirstPartySetsAccessDelegateTest, QueryBeforeReady_FindOwner) {
@@ -226,7 +228,8 @@
 
   delegate_remote()->NotifyReady(mojom::FirstPartySetsReadyEvent::New());
 
-  EXPECT_THAT(future.Get(), absl::make_optional(kSet1Owner));
+  EXPECT_THAT(future.Get(),
+              absl::make_optional(net::FirstPartySetEntry(kSet1Owner)));
 }
 
 TEST_F(AsyncFirstPartySetsAccessDelegateTest, QueryBeforeReady_FindOwners) {
@@ -236,26 +239,28 @@
 
   delegate_remote()->NotifyReady(mojom::FirstPartySetsReadyEvent::New());
 
-  EXPECT_THAT(future.Get(), FirstPartySetsAccessDelegate::OwnersResult({
-                                {kSet1Member1, kSet1Owner},
-                                {kSet2Member1, kSet2Owner},
-                            }));
+  EXPECT_THAT(future.Get(),
+              FirstPartySetsAccessDelegate::OwnersResult({
+                  {kSet1Member1, net::FirstPartySetEntry(kSet1Owner)},
+                  {kSet2Member1, net::FirstPartySetEntry(kSet2Owner)},
+              }));
 }
 
 TEST_F(AsyncFirstPartySetsAccessDelegateTest, OverrideSets_ComputeMetadata) {
   delegate_remote()->NotifyReady(CreateFirstPartySetsReadyEvent({
-      {kSet1Member1, {kSet3Owner}},
-      {kSet3Owner, {kSet3Owner}},
+      {kSet1Member1, {net::FirstPartySetEntry(kSet3Owner)}},
+      {kSet3Owner, {net::FirstPartySetEntry(kSet3Owner)}},
   }));
 
+  net::FirstPartySetEntry entry(kSet3Owner);
   EXPECT_EQ(ComputeMetadataAndWait(kSet3Owner, &kSet1Member1, {kSet1Member1}),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kSameParty),
-                                       &kSet3Owner, &kSet3Owner));
+                                       &entry, &entry));
 }
 
 TEST_F(AsyncFirstPartySetsAccessDelegateTest, OverrideSets_FindOwner) {
   delegate_remote()->NotifyReady(CreateFirstPartySetsReadyEvent({
-      {kSet3Owner, {kSet3Owner}},
+      {kSet3Owner, {net::FirstPartySetEntry(kSet3Owner)}},
   }));
 
   EXPECT_THAT(FindOwnerAndWait(kSet3Owner), Optional(_));
@@ -263,7 +268,7 @@
 
 TEST_F(AsyncFirstPartySetsAccessDelegateTest, OverrideSets_FindOwners) {
   delegate_remote()->NotifyReady(CreateFirstPartySetsReadyEvent({
-      {kSet3Owner, {kSet3Owner}},
+      {kSet3Owner, {net::FirstPartySetEntry(kSet3Owner)}},
   }));
 
   EXPECT_THAT(FindOwnersAndWait({kSet3Owner}),
@@ -275,28 +280,30 @@
  public:
   SyncFirstPartySetsAccessDelegateTest() {
     delegate_remote()->NotifyReady(CreateFirstPartySetsReadyEvent({
-        {kSet3Member1, {kSet3Owner}},
-        {kSet3Owner, {kSet3Owner}},
+        {kSet3Member1, {net::FirstPartySetEntry(kSet3Owner)}},
+        {kSet3Owner, {net::FirstPartySetEntry(kSet3Owner)}},
     }));
   }
 };
 
 TEST_F(SyncFirstPartySetsAccessDelegateTest, ComputeMetadata) {
+  net::FirstPartySetEntry entry(kSet1Owner);
   EXPECT_EQ(ComputeMetadataAndWait(kSet1Member1, &kSet1Member1, {kSet1Member1}),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kSameParty),
-                                       &kSet1Owner, &kSet1Owner));
+                                       &entry, &entry));
 }
 
 TEST_F(SyncFirstPartySetsAccessDelegateTest, FindOwner) {
-  EXPECT_THAT(FindOwnerAndWait(kSet1Member1), absl::make_optional(kSet1Owner));
+  EXPECT_THAT(FindOwnerAndWait(kSet1Member1),
+              absl::make_optional(net::FirstPartySetEntry(kSet1Owner)));
 }
 
 TEST_F(SyncFirstPartySetsAccessDelegateTest, FindOwners) {
   EXPECT_THAT(FindOwnersAndWait({kSet1Member1, kSet2Member1, kSet3Member1}),
               FirstPartySetsAccessDelegate::OwnersResult({
-                  {kSet1Member1, kSet1Owner},
-                  {kSet2Member1, kSet2Owner},
-                  {kSet3Member1, kSet3Owner},
+                  {kSet1Member1, net::FirstPartySetEntry(kSet1Owner)},
+                  {kSet2Member1, net::FirstPartySetEntry(kSet2Owner)},
+                  {kSet3Member1, net::FirstPartySetEntry(kSet3Owner)},
               }));
 }
 
diff --git a/services/network/first_party_sets/first_party_sets_context_config.h b/services/network/first_party_sets/first_party_sets_context_config.h
index 49e98cb5..27ddcc79 100644
--- a/services/network/first_party_sets/first_party_sets_context_config.h
+++ b/services/network/first_party_sets/first_party_sets_context_config.h
@@ -7,6 +7,7 @@
 
 #include "base/containers/flat_map.h"
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace network {
@@ -15,8 +16,8 @@
 // info in the given network context.
 class FirstPartySetsContextConfig {
  public:
-  using OverrideSets =
-      base::flat_map<net::SchemefulSite, absl::optional<net::SchemefulSite>>;
+  using OverrideSets = base::flat_map<net::SchemefulSite,
+                                      absl::optional<net::FirstPartySetEntry>>;
 
   explicit FirstPartySetsContextConfig(bool enabled);
 
diff --git a/services/network/first_party_sets/first_party_sets_manager.cc b/services/network/first_party_sets/first_party_sets_manager.cc
index 39bced6..ff16c821 100644
--- a/services/network/first_party_sets/first_party_sets_manager.cc
+++ b/services/network/first_party_sets/first_party_sets_manager.cc
@@ -21,6 +21,7 @@
 #include "base/time/time.h"
 #include "base/timer/elapsed_timer.h"
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "net/cookies/first_party_set_metadata.h"
 #include "net/cookies/same_party_context.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -55,23 +56,24 @@
     const std::set<net::SchemefulSite>& party_context,
     const FirstPartySetsContextConfig& fps_context_config) const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  const FirstPartySetsManager::OwnerResult site_owner =
+  const FirstPartySetsManager::OwnerResult site_entry =
       FindOwnerInternal(site, fps_context_config);
-  if (!site_owner.has_value())
+  if (!site_entry.has_value())
     return false;
 
-  const auto is_owned_by_site_owner =
-      [this, &site_owner,
+  const auto is_in_same_set_as_frame_site =
+      [this, &site_entry,
        &fps_context_config](const net::SchemefulSite& context_site) -> bool {
-    const FirstPartySetsManager::OwnerResult context_owner =
+    const FirstPartySetsManager::OwnerResult context_entry =
         FindOwnerInternal(context_site, fps_context_config);
-    return context_owner.has_value() && *context_owner == *site_owner;
+    return context_entry.has_value() &&
+           context_entry->primary() == site_entry->primary();
   };
 
-  if (top_frame_site && !is_owned_by_site_owner(*top_frame_site))
+  if (top_frame_site && !is_in_same_set_as_frame_site(*top_frame_site))
     return false;
 
-  return base::ranges::all_of(party_context, is_owned_by_site_owner);
+  return base::ranges::all_of(party_context, is_in_same_set_as_frame_site);
 }
 
 absl::optional<net::FirstPartySetMetadata>
@@ -143,8 +145,7 @@
       base::OptionalOrNullptr(top_frame_owner));
 }
 
-const FirstPartySetsManager::OwnerResult
-FirstPartySetsManager::FindOwnerInternal(
+FirstPartySetsManager::OwnerResult FirstPartySetsManager::FindOwnerInternal(
     const net::SchemefulSite& site,
     const FirstPartySetsContextConfig& fps_context_config) const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -154,7 +155,7 @@
   net::SchemefulSite normalized_site = site;
   normalized_site.ConvertWebSocketToHttp();
 
-  FirstPartySetsManager::OwnerResult owner;
+  FirstPartySetsManager::OwnerResult entry;
 
   if (fps_context_config.is_enabled() && is_enabled()) {
     // Check if `normalized_site` can be found in the customizations first.
@@ -162,17 +163,19 @@
     if (const auto it =
             fps_context_config.customizations().find(normalized_site);
         it != fps_context_config.customizations().end()) {
-      owner = it->second;
+      if (it->second.has_value()) {
+        entry = net::FirstPartySetEntry(it->second.value());
+      }
     } else if (const auto it = sets_->find(normalized_site);
                it != sets_->end()) {
-      owner = it->second;
+      entry = net::FirstPartySetEntry(it->second);
     }
   }
 
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "Cookie.FirstPartySets.FindOwner.Latency", timer.Elapsed(),
       base::Microseconds(1), base::Milliseconds(100), 50);
-  return owner;
+  return entry;
 }
 
 absl::optional<FirstPartySetsManager::OwnerResult>
@@ -247,16 +250,16 @@
   if (!fps_context_config.is_enabled())
     return {};
 
-  std::vector<std::pair<net::SchemefulSite, net::SchemefulSite>>
-      sites_to_owners;
+  std::vector<std::pair<net::SchemefulSite, net::FirstPartySetEntry>>
+      sites_to_entries;
   for (const net::SchemefulSite& site : sites) {
-    const FirstPartySetsManager::OwnerResult owner =
+    const FirstPartySetsManager::OwnerResult entry =
         FindOwnerInternal(site, fps_context_config);
-    if (owner.has_value()) {
-      sites_to_owners.emplace_back(site, owner.value());
+    if (entry.has_value()) {
+      sites_to_entries.emplace_back(site, entry.value());
     }
   }
-  return sites_to_owners;
+  return sites_to_entries;
 }
 
 void FirstPartySetsManager::InvokePendingQueries() {
diff --git a/services/network/first_party_sets/first_party_sets_manager.h b/services/network/first_party_sets/first_party_sets_manager.h
index 9929dcc1..ae4b612 100644
--- a/services/network/first_party_sets/first_party_sets_manager.h
+++ b/services/network/first_party_sets/first_party_sets_manager.h
@@ -18,6 +18,7 @@
 #include "base/time/time.h"
 #include "base/timer/elapsed_timer.h"
 #include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "net/cookies/first_party_set_metadata.h"
 #include "services/network/first_party_sets/first_party_sets_context_config.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -28,9 +29,11 @@
 // answers queries about First-Party Sets after they've been loaded.
 class FirstPartySetsManager {
  public:
-  using OwnerResult = absl::optional<net::SchemefulSite>;
-  using OwnersResult = base::flat_map<net::SchemefulSite, net::SchemefulSite>;
-  using FlattenedSets = base::flat_map<net::SchemefulSite, net::SchemefulSite>;
+  using OwnerResult = absl::optional<net::FirstPartySetEntry>;
+  using OwnersResult =
+      base::flat_map<net::SchemefulSite, net::FirstPartySetEntry>;
+  using FlattenedSets =
+      base::flat_map<net::SchemefulSite, net::FirstPartySetEntry>;
 
   explicit FirstPartySetsManager(bool enabled);
   ~FirstPartySetsManager();
@@ -143,7 +146,7 @@
   //
   // This is synchronous, and must not be called until the instance is fully
   // initialized.
-  const absl::optional<net::SchemefulSite> FindOwnerInternal(
+  OwnerResult FindOwnerInternal(
       const net::SchemefulSite& site,
       const FirstPartySetsContextConfig& fps_context_config) const;
 
diff --git a/services/network/first_party_sets/first_party_sets_manager_unittest.cc b/services/network/first_party_sets/first_party_sets_manager_unittest.cc
index f5402fb..ab14a5c 100644
--- a/services/network/first_party_sets/first_party_sets_manager_unittest.cc
+++ b/services/network/first_party_sets/first_party_sets_manager_unittest.cc
@@ -12,6 +12,7 @@
 #include "base/test/test_future.h"
 #include "net/base/schemeful_site.h"
 #include "net/cookies/cookie_constants.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "net/cookies/first_party_set_metadata.h"
 #include "net/cookies/same_party_context.h"
 #include "testing/gmock/include/gmock/gmock-matchers.h"
@@ -27,7 +28,7 @@
 
 using Type = net::SamePartyContext::Type;
 using OverrideSets =
-    base::flat_map<net::SchemefulSite, absl::optional<net::SchemefulSite>>;
+    base::flat_map<net::SchemefulSite, absl::optional<net::FirstPartySetEntry>>;
 
 namespace network {
 
@@ -41,8 +42,8 @@
   explicit FirstPartySetsManagerTest(bool enabled, bool context_enabled)
       : manager_(enabled), fps_context_config_(context_enabled) {}
 
-  void SetCompleteSets(
-      const base::flat_map<net::SchemefulSite, net::SchemefulSite>& content) {
+  void SetCompleteSets(const base::flat_map<net::SchemefulSite,
+                                            net::FirstPartySetEntry>& content) {
     manager_.SetCompleteSets(content);
   }
 
@@ -103,9 +104,11 @@
 
 TEST_F(FirstPartySetsManagerDisabledTest, SetCompleteSets) {
   SetCompleteSets({{net::SchemefulSite(GURL("https://aaaa.test")),
-                    net::SchemefulSite(GURL("https://example.test"))},
+                    net::FirstPartySetEntry(
+                        net::SchemefulSite(GURL("https://example.test")))},
                    {net::SchemefulSite(GURL("https://example.test")),
-                    net::SchemefulSite(GURL("https://example.test"))}});
+                    net::FirstPartySetEntry(
+                        net::SchemefulSite(GURL("https://example.test")))}});
 
   EXPECT_THAT(FindOwnersAndWait({
                   net::SchemefulSite(GURL("https://aaaa.test")),
@@ -128,9 +131,11 @@
 
   SetFirstPartySetsContextConfig(
       true, {{net::SchemefulSite(GURL("https://member1.test")),
-              {net::SchemefulSite(GURL("https://example.test"))}},
+              {net::FirstPartySetEntry(
+                  net::SchemefulSite(GURL("https://example.test")))}},
              {net::SchemefulSite(GURL("https://example.test")),
-              {net::SchemefulSite(GURL("https://example.test"))}}});
+              {net::FirstPartySetEntry(
+                  net::SchemefulSite(GURL("https://example.test")))}}});
 
   // Works if the site is provided with WSS scheme instead of HTTPS.
   EXPECT_THAT(
@@ -149,15 +154,19 @@
 
 TEST_F(FirstPartySetsManagerDisabledTest, FindOwner) {
   SetCompleteSets({{net::SchemefulSite(GURL("https://member.test")),
-                    net::SchemefulSite(GURL("https://example.test"))},
+                    net::FirstPartySetEntry(
+                        net::SchemefulSite(GURL("https://example.test")))},
                    {net::SchemefulSite(GURL("https://example.test")),
-                    net::SchemefulSite(GURL("https://example.test"))}});
+                    net::FirstPartySetEntry(
+                        net::SchemefulSite(GURL("https://example.test")))}});
 
   SetFirstPartySetsContextConfig(
       true, {{net::SchemefulSite(GURL("https://aaaa.test")),
-              {net::SchemefulSite(GURL("https://example.test"))}},
+              {net::FirstPartySetEntry(
+                  net::SchemefulSite(GURL("https://example.test")))}},
              {net::SchemefulSite(GURL("https://example.test")),
-              {net::SchemefulSite(GURL("https://example.test"))}}});
+              {net::FirstPartySetEntry(
+                  net::SchemefulSite(GURL("https://example.test")))}}});
 
   EXPECT_FALSE(
       FindOwnerAndWait(net::SchemefulSite(GURL("https://example.test"))));
@@ -172,20 +181,24 @@
 };
 
 TEST_F(FirstPartySetsEnabledTest, SetCompleteSets) {
-  SetCompleteSets(base::flat_map<net::SchemefulSite, net::SchemefulSite>(
-      {{net::SchemefulSite(GURL("https://aaaa.test")),
-        net::SchemefulSite(GURL("https://example.test"))},
-       {net::SchemefulSite(GURL("https://example.test")),
-        net::SchemefulSite(GURL("https://example.test"))}}));
+  SetCompleteSets({{net::SchemefulSite(GURL("https://aaaa.test")),
+                    net::FirstPartySetEntry(
+                        net::SchemefulSite(GURL("https://example.test")))},
+                   {net::SchemefulSite(GURL("https://example.test")),
+                    net::FirstPartySetEntry(
+                        net::SchemefulSite(GURL("https://example.test")))}});
 
   EXPECT_THAT(FindOwnersAndWait({
                   net::SchemefulSite(GURL("https://aaaa.test")),
                   net::SchemefulSite(GURL("https://example.test")),
               }),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://aaaa.test"),
-                                        SerializesTo("https://example.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://aaaa.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test"))))));
 }
 
 TEST_F(FirstPartySetsEnabledTest, SetCompleteSets_Idempotent) {
@@ -194,9 +207,11 @@
 
   // The second call to SetCompleteSets should have no effect.
   SetCompleteSets({{net::SchemefulSite(GURL("https://aaaa.test")),
-                    net::SchemefulSite(GURL("https://example.test"))},
+                    net::FirstPartySetEntry(
+                        net::SchemefulSite(GURL("https://example.test")))},
                    {net::SchemefulSite(GURL("https://example.test")),
-                    net::SchemefulSite(GURL("https://example.test"))}});
+                    net::FirstPartySetEntry(
+                        net::SchemefulSite(GURL("https://example.test")))}});
   EXPECT_THAT(FindOwnersAndWait({
                   net::SchemefulSite(GURL("https://aaaa.test")),
                   net::SchemefulSite(GURL("https://example.test")),
@@ -228,15 +243,18 @@
 
     SetCompleteSets({
         {net::SchemefulSite(GURL("https://member1.test")),
-         net::SchemefulSite(GURL("https://example.test"))},
+         net::FirstPartySetEntry(
+             net::SchemefulSite(GURL("https://example.test")))},
         {net::SchemefulSite(GURL("https://member3.test")),
-         net::SchemefulSite(GURL("https://example.test"))},
+         net::FirstPartySetEntry(
+             net::SchemefulSite(GURL("https://example.test")))},
         {net::SchemefulSite(GURL("https://example.test")),
-         net::SchemefulSite(GURL("https://example.test"))},
+         net::FirstPartySetEntry(
+             net::SchemefulSite(GURL("https://example.test")))},
         {net::SchemefulSite(GURL("https://member2.test")),
-         net::SchemefulSite(GURL("https://foo.test"))},
+         net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))},
         {net::SchemefulSite(GURL("https://foo.test")),
-         net::SchemefulSite(GURL("https://foo.test"))},
+         net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test")))},
     });
 
     // We don't wait for the sets to be loaded before returning, in order to let
@@ -259,10 +277,11 @@
 
   {
     net::SchemefulSite owner(GURL("https://example.test"));
+    net::FirstPartySetEntry entry(owner);
 
     EXPECT_EQ(future.Get(),
               net::FirstPartySetMetadata(
-                  net::SamePartyContext(Type::kSameParty), &owner, &owner));
+                  net::SamePartyContext(Type::kSameParty), &entry, &entry));
   }
 }
 
@@ -274,9 +293,9 @@
 
   Populate();
 
-  EXPECT_THAT(
-      future.Get(),
-      absl::make_optional(net::SchemefulSite(GURL("https://example.test"))));
+  EXPECT_THAT(future.Get(),
+              absl::make_optional(net::FirstPartySetEntry(
+                  net::SchemefulSite(GURL("https://example.test")))));
 }
 
 TEST_F(AsyncPopulatedFirstPartySetsManagerTest, QueryBeforeReady_FindOwners) {
@@ -290,11 +309,13 @@
 
   Populate();
 
-  EXPECT_THAT(future.Get(),
-              UnorderedElementsAre(Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://foo.test"))));
+  EXPECT_THAT(future.Get(), UnorderedElementsAre(
+                                Pair(SerializesTo("https://member1.test"),
+                                     net::FirstPartySetEntry(net::SchemefulSite(
+                                         GURL("https://example.test")))),
+                                Pair(SerializesTo("https://member2.test"),
+                                     net::FirstPartySetEntry(net::SchemefulSite(
+                                         GURL("https://foo.test"))))));
 }
 
 class PopulatedFirstPartySetsManagerTest
@@ -740,38 +761,39 @@
   net::SchemefulSite owner(GURL("https://example.test"));
   net::SchemefulSite wss_member(GURL("wss://member1.test"));
   net::SchemefulSite wss_nonmember(GURL("wss://nonmember.test"));
+  net::FirstPartySetEntry entry(owner);
 
   // Works as usual for sites that are in First-Party sets.
   EXPECT_EQ(ComputeMetadataAndWait(member, &member, {member}),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kSameParty),
-                                       &owner, &owner));
+                                       &entry, &entry));
   EXPECT_EQ(ComputeMetadataAndWait(owner, &member, {member}),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kSameParty),
-                                       &owner, &owner));
+                                       &entry, &entry));
   EXPECT_EQ(ComputeMetadataAndWait(member, &owner, {member}),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kSameParty),
-                                       &owner, &owner));
+                                       &entry, &entry));
   EXPECT_EQ(ComputeMetadataAndWait(member, &member, {owner}),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kSameParty),
-                                       &owner, &owner));
+                                       &entry, &entry));
   EXPECT_EQ(ComputeMetadataAndWait(member, &member, {member, owner}),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kSameParty),
-                                       &owner, &owner));
+                                       &entry, &entry));
 
   // Works if the site is provided with WSS scheme instead of HTTPS.
   EXPECT_EQ(ComputeMetadataAndWait(wss_member, &member, {member, owner}),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kSameParty),
-                                       &owner, &owner));
+                                       &entry, &entry));
 
   EXPECT_EQ(ComputeMetadataAndWait(nonmember, &member, {member}),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kCrossParty),
-                                       nullptr, &owner));
+                                       nullptr, &entry));
   EXPECT_EQ(ComputeMetadataAndWait(member, &nonmember, {member}),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kCrossParty),
-                                       &owner, nullptr));
+                                       &entry, nullptr));
   EXPECT_EQ(ComputeMetadataAndWait(wss_nonmember, &wss_member, {member, owner}),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kCrossParty),
-                                       nullptr, &owner));
+                                       nullptr, &entry));
 
   EXPECT_EQ(ComputeMetadataAndWait(nonmember, &nonmember, {nonmember}),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kCrossParty),
@@ -779,28 +801,26 @@
 
   EXPECT_EQ(ComputeMetadataAndWait(member, &member, {member, nonmember}),
             net::FirstPartySetMetadata(net::SamePartyContext(Type::kCrossParty),
-                                       &owner, &owner));
+                                       &entry, &entry));
 }
 
 TEST_F(PopulatedFirstPartySetsManagerTest, FindOwner) {
-  const absl::optional<net::SchemefulSite> kSetOwner1 =
-      absl::make_optional(net::SchemefulSite(GURL("https://example.test")));
-  const absl::optional<net::SchemefulSite> kSetOwner2 =
-      absl::make_optional(net::SchemefulSite(GURL("https://foo.test")));
+  const net::SchemefulSite kSetOwner1(GURL("https://example.test"));
+  const net::SchemefulSite kSetOwner2(GURL("https://foo.test"));
 
   struct TestCase {
     const std::string url;
-    const absl::optional<net::SchemefulSite> expected;
+    const absl::optional<net::FirstPartySetEntry> expected;
   } test_cases[] = {
-      {"https://example.test", kSetOwner1},
+      {"https://example.test", net::FirstPartySetEntry(kSetOwner1)},
       // Insecure URL
       {"http://example.test", absl::nullopt},
       // Test member
-      {"https://member1.test", kSetOwner1},
+      {"https://member1.test", net::FirstPartySetEntry(kSetOwner1)},
       {"http://member1.test", absl::nullopt},
       // Test another disjoint set
-      {"https://foo.test", kSetOwner2},
-      {"https://member2.test", kSetOwner2},
+      {"https://foo.test", net::FirstPartySetEntry(kSetOwner2)},
+      {"https://member2.test", net::FirstPartySetEntry(kSetOwner2)},
       // Test a site not in a set
       {"https://nonmember.test", absl::nullopt},
   };
@@ -812,51 +832,67 @@
 }
 
 TEST_F(PopulatedFirstPartySetsManagerTest, FindOwners) {
-  net::SchemefulSite kExample =
-      net::SchemefulSite(GURL("https://example.test"));
-  net::SchemefulSite kFoo = net::SchemefulSite(GURL("https://foo.test"));
-  net::SchemefulSite kMember1 =
-      net::SchemefulSite(GURL("https://member1.test"));
-  net::SchemefulSite kMember2 =
-      net::SchemefulSite(GURL("https://member2.test"));
-  net::SchemefulSite kNonmember =
-      net::SchemefulSite(GURL("https://nonmember.test"));
+  net::SchemefulSite kExample(GURL("https://example.test"));
+  net::SchemefulSite kFoo(GURL("https://foo.test"));
+  net::SchemefulSite kMember1(GURL("https://member1.test"));
+  net::SchemefulSite kMember2(GURL("https://member2.test"));
+  net::SchemefulSite kNonmember(GURL("https://nonmember.test"));
 
-  EXPECT_THAT(FindOwnersAndWait({kExample}),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test"))));
-  EXPECT_THAT(FindOwnersAndWait({kMember1}),
-              UnorderedElementsAre(Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test"))));
+  EXPECT_THAT(
+      FindOwnersAndWait({kExample}),
+      UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
+                                net::FirstPartySetEntry(net::SchemefulSite(
+                                    GURL("https://example.test"))))));
+  EXPECT_THAT(
+      FindOwnersAndWait({kMember1}),
+      UnorderedElementsAre(Pair(SerializesTo("https://member1.test"),
+                                net::FirstPartySetEntry(net::SchemefulSite(
+                                    GURL("https://example.test"))))));
   EXPECT_THAT(FindOwnersAndWait({kNonmember}), IsEmpty());
 
-  EXPECT_THAT(FindOwnersAndWait({kExample, kNonmember}),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test"))));
-  EXPECT_THAT(FindOwnersAndWait({kMember1, kNonmember}),
-              UnorderedElementsAre(Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test"))));
+  EXPECT_THAT(
+      FindOwnersAndWait({kExample, kNonmember}),
+      UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
+                                net::FirstPartySetEntry(net::SchemefulSite(
+                                    GURL("https://example.test"))))));
+  EXPECT_THAT(
+      FindOwnersAndWait({kMember1, kNonmember}),
+      UnorderedElementsAre(Pair(SerializesTo("https://member1.test"),
+                                net::FirstPartySetEntry(net::SchemefulSite(
+                                    GURL("https://example.test"))))));
 
   EXPECT_THAT(FindOwnersAndWait({kExample, kFoo}),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://foo.test"),
-                                        SerializesTo("https://foo.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://foo.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test"))))));
   EXPECT_THAT(FindOwnersAndWait({kMember1, kFoo}),
-              UnorderedElementsAre(Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://foo.test"),
-                                        SerializesTo("https://foo.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://foo.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test"))))));
   EXPECT_THAT(FindOwnersAndWait({kExample, kMember2}),
-              UnorderedElementsAre(Pair(SerializesTo("https://example.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://foo.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://example.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test"))))));
   EXPECT_THAT(FindOwnersAndWait({kMember1, kMember2}),
-              UnorderedElementsAre(Pair(SerializesTo("https://member1.test"),
-                                        SerializesTo("https://example.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://foo.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://member1.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://example.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test"))))));
 }
 
 class DisabledContextFirstPartySetsManagerTest
@@ -868,10 +904,12 @@
         // Should not have effect when FPS is disabled for the context.
         {
             {net::SchemefulSite(GURL("https://example.test")),
-             absl::make_optional(net::SchemefulSite(GURL("https://foo.test")))},
+             absl::make_optional(net::FirstPartySetEntry(
+                 net::SchemefulSite(GURL("https://foo.test"))))},
             // Below are the owner self mappings.
             {net::SchemefulSite(GURL("https://foo.test")),
-             absl::make_optional(net::SchemefulSite(GURL("https://foo.test")))},
+             absl::make_optional(net::FirstPartySetEntry(
+                 net::SchemefulSite(GURL("https://foo.test"))))},
         });
   }
 };
@@ -914,12 +952,15 @@
   OverrideSetsFirstPartySetsManagerTest() {
     SetCompleteSets({
         {net::SchemefulSite(GURL("https://member1.test")),
-         net::SchemefulSite(GURL("https://example.test"))},
+         net::FirstPartySetEntry(
+             net::SchemefulSite(GURL("https://example.test")))},
         {net::SchemefulSite(GURL("https://member2.test")),
-         net::SchemefulSite(GURL("https://example.test"))},
+         net::FirstPartySetEntry(
+             net::SchemefulSite(GURL("https://example.test")))},
         // Below are the owner self mappings.
         {net::SchemefulSite(GURL("https://example.test")),
-         net::SchemefulSite(GURL("https://example.test"))},
+         net::FirstPartySetEntry(
+             net::SchemefulSite(GURL("https://example.test")))},
     });
 
     SetFirstPartySetsContextConfig(
@@ -927,23 +968,27 @@
         {
             // New entry:
             {net::SchemefulSite(GURL("https://foo.test")),
-             {net::SchemefulSite(GURL("https://foo.test"))}},
+             {net::FirstPartySetEntry(
+                 net::SchemefulSite(GURL("https://foo.test")))}},
             // Removed entry:
             {net::SchemefulSite(GURL("https://member1.test")), absl::nullopt},
             // Remapped entry:
             {net::SchemefulSite(GURL("https://member2.test")),
-             {net::SchemefulSite(GURL("https://foo.test"))}},
+             {net::FirstPartySetEntry(
+                 net::SchemefulSite(GURL("https://foo.test")))}},
         });
   }
 };
 
 TEST_F(OverrideSetsFirstPartySetsManagerTest, FindOwner) {
-  EXPECT_EQ(FindOwnerAndWait(net::SchemefulSite(GURL("https://foo.test"))),
-            net::SchemefulSite(GURL("https://foo.test")));
+  EXPECT_EQ(
+      FindOwnerAndWait(net::SchemefulSite(GURL("https://foo.test"))),
+      net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test"))));
   EXPECT_EQ(FindOwnerAndWait(net::SchemefulSite(GURL("https://member1.test"))),
             absl::nullopt);
-  EXPECT_EQ(FindOwnerAndWait(net::SchemefulSite(GURL("https://member2.test"))),
-            net::SchemefulSite(GURL("https://foo.test")));
+  EXPECT_EQ(
+      FindOwnerAndWait(net::SchemefulSite(GURL("https://member2.test"))),
+      net::FirstPartySetEntry(net::SchemefulSite(GURL("https://foo.test"))));
 }
 
 TEST_F(OverrideSetsFirstPartySetsManagerTest, FindOwners) {
@@ -952,10 +997,13 @@
                   net::SchemefulSite(GURL("https://member2.test")),
                   net::SchemefulSite(GURL("https://foo.test")),
               }),
-              UnorderedElementsAre(Pair(SerializesTo("https://foo.test"),
-                                        SerializesTo("https://foo.test")),
-                                   Pair(SerializesTo("https://member2.test"),
-                                        SerializesTo("https://foo.test"))));
+              UnorderedElementsAre(
+                  Pair(SerializesTo("https://foo.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test")))),
+                  Pair(SerializesTo("https://member2.test"),
+                       net::FirstPartySetEntry(
+                           net::SchemefulSite(GURL("https://foo.test"))))));
 }
 
 TEST_F(OverrideSetsFirstPartySetsManagerTest, ComputeMetadata) {
@@ -964,10 +1012,12 @@
   net::SchemefulSite member1(GURL("https://member1.test"));
   net::SchemefulSite member2(GURL("https://member2.test"));
 
+  net::FirstPartySetEntry example_entry(example);
+  net::FirstPartySetEntry foo_entry(foo);
   {
     // member1 has been removed from its set.
     net::FirstPartySetMetadata expected(
-        net::SamePartyContext(Type::kCrossParty), nullptr, &example);
+        net::SamePartyContext(Type::kCrossParty), nullptr, &example_entry);
 
     EXPECT_THAT(ComputeMetadataAndWait(member1, &example, {}),
                 testing::Eq(std::ref(expected)));
@@ -975,7 +1025,7 @@
   {
     // member2 and foo are sites in a new set.
     net::FirstPartySetMetadata expected(net::SamePartyContext(Type::kSameParty),
-                                        &foo, &foo);
+                                        &foo_entry, &foo_entry);
 
     EXPECT_THAT(ComputeMetadataAndWait(member2, &foo, {}),
                 testing::Eq(std::ref(expected)));
diff --git a/services/network/network_service.cc b/services/network/network_service.cc
index cc578c6..dcdc3bc 100644
--- a/services/network/network_service.cc
+++ b/services/network/network_service.cc
@@ -99,6 +99,10 @@
 #include "services/network/sct_auditing/sct_auditing_cache.h"
 #endif
 
+namespace net {
+class FirstPartySetEntry;
+}
+
 namespace network {
 
 namespace {
@@ -801,7 +805,7 @@
 }
 
 void NetworkService::SetFirstPartySets(
-    const base::flat_map<net::SchemefulSite, net::SchemefulSite>& sets) {
+    const base::flat_map<net::SchemefulSite, net::FirstPartySetEntry>& sets) {
   first_party_sets_manager_->SetCompleteSets(sets);
 }
 
diff --git a/services/network/network_service.h b/services/network/network_service.h
index 2a903fd..7bc7649 100644
--- a/services/network/network_service.h
+++ b/services/network/network_service.h
@@ -59,6 +59,7 @@
 
 namespace net {
 class FileNetLogObserver;
+class FirstPartySetEntry;
 class HostResolverManager;
 class HttpAuthHandlerFactory;
 class LoggingNetworkChangeObserver;
@@ -215,7 +216,7 @@
   void BindTestInterface(
       mojo::PendingReceiver<mojom::NetworkServiceTest> receiver) override;
   void SetFirstPartySets(
-      const base::flat_map<net::SchemefulSite, net::SchemefulSite>& sets)
+      const base::flat_map<net::SchemefulSite, net::FirstPartySetEntry>& sets)
       override;
   void SetExplicitlyAllowedPorts(const std::vector<uint16_t>& ports) override;
 
diff --git a/services/network/public/cpp/BUILD.gn b/services/network/public/cpp/BUILD.gn
index 97738fd..2685ea8 100644
--- a/services/network/public/cpp/BUILD.gn
+++ b/services/network/public/cpp/BUILD.gn
@@ -208,6 +208,7 @@
   ]
   deps = [
     ":crash_keys",
+    ":first_party_sets_mojom_support",
     ":schemeful_site_mojom_support",
     "//net",
     "//services/network/public/mojom:cookies_mojom_shared",
@@ -284,6 +285,21 @@
   defines = [ "IS_NETWORK_CPP_SCHEMEFUL_IMPL" ]
 }
 
+# This component is separate from cpp_base as it is a dependency of
+# //services/network/public/mojom:cookies_mojom.
+component("first_party_sets_mojom_support") {
+  sources = [
+    "first_party_sets_mojom_traits.cc",
+    "first_party_sets_mojom_traits.h",
+  ]
+  deps = [
+    ":schemeful_site_mojom_support",
+    "//net",
+    "//services/network/public/mojom:mojom_first_party_sets_shared",
+  ]
+  defines = [ "IS_FIRST_PARTY_SETS_MOJOM_TRAITS_IMPL" ]
+}
+
 component("cpp_base") {
   output_name = "network_cpp_base"
 
@@ -350,11 +366,13 @@
   ]
   deps = [
     ":buildflags",
+    ":first_party_sets_mojom_support",
     "//base",
     "//ipc",
     "//mojo/public/mojom/base",
     "//net",
     "//services/network/public/mojom:cookies_mojom",
+    "//services/network/public/mojom:mojom_first_party_sets",
     "//services/network/public/mojom:url_loader_base",
   ]
   defines = [ "IS_NETWORK_CPP_BASE_IMPL" ]
@@ -431,6 +449,7 @@
     "digitally_signed_mojom_traits_unittest.cc",
     "empty_url_loader_client_unittest.cc",
     "file_enumeration_entry_mojom_traits_unittest.cc",
+    "first_party_sets_mojom_traits_unittest.cc",
     "header_util_unittest.cc",
     "host_resolver_mojom_traits_unittest.cc",
     "initiator_lock_compatibility_unittest.cc",
diff --git a/services/network/public/cpp/cookie_manager_mojom_traits.cc b/services/network/public/cpp/cookie_manager_mojom_traits.cc
index 9871fb0..06d5b97 100644
--- a/services/network/public/cpp/cookie_manager_mojom_traits.cc
+++ b/services/network/public/cpp/cookie_manager_mojom_traits.cc
@@ -4,11 +4,14 @@
 
 #include "services/network/public/cpp/cookie_manager_mojom_traits.h"
 
+#include "base/stl_util.h"
 #include "base/time/time.h"
 #include "mojo/public/cpp/base/time_mojom_traits.h"
 #include "net/cookies/cookie_constants.h"
 #include "net/cookies/cookie_options.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "net/cookies/same_party_context.h"
+#include "services/network/public/mojom/cookie_manager.mojom-shared.h"
 #include "services/network/public/mojom/cookie_manager.mojom.h"
 
 namespace mojo {
@@ -732,17 +735,17 @@
   if (!metadata.ReadContext(&context))
     return false;
 
-  absl::optional<net::SchemefulSite> frame_owner;
-  if (!metadata.ReadFrameOwner(&frame_owner))
+  absl::optional<net::FirstPartySetEntry> frame_entry;
+  if (!metadata.ReadFrameEntry(&frame_entry))
     return false;
 
-  absl::optional<net::SchemefulSite> top_frame_owner;
-  if (!metadata.ReadTopFrameOwner(&top_frame_owner))
+  absl::optional<net::FirstPartySetEntry> top_frame_entry;
+  if (!metadata.ReadTopFrameEntry(&top_frame_entry))
     return false;
 
   *out_metadata =
-      net::FirstPartySetMetadata(context, base::OptionalOrNullptr(frame_owner),
-                                 base::OptionalOrNullptr(top_frame_owner));
+      net::FirstPartySetMetadata(context, base::OptionalOrNullptr(frame_entry),
+                                 base::OptionalOrNullptr(top_frame_entry));
 
   return true;
 }
diff --git a/services/network/public/cpp/cookie_manager_mojom_traits.h b/services/network/public/cpp/cookie_manager_mojom_traits.h
index ae4151f..ca842a7 100644
--- a/services/network/public/cpp/cookie_manager_mojom_traits.h
+++ b/services/network/public/cpp/cookie_manager_mojom_traits.h
@@ -16,10 +16,12 @@
 #include "net/cookies/cookie_inclusion_status.h"
 #include "net/cookies/cookie_options.h"
 #include "net/cookies/cookie_partition_key_collection.h"
+#include "net/cookies/first_party_set_entry.h"
 #include "net/cookies/first_party_set_metadata.h"
 #include "net/cookies/same_party_context.h"
 #include "services/network/public/cpp/cookie_manager_shared_mojom_traits.h"
 #include "services/network/public/mojom/cookie_manager.mojom-forward.h"
+#include "services/network/public/mojom/cookie_manager.mojom.h"
 #include "services/network/public/mojom/cookie_partition_key.mojom.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
@@ -382,14 +384,14 @@
     return m.context();
   }
 
-  static absl::optional<net::SchemefulSite> frame_owner(
+  static absl::optional<net::FirstPartySetEntry> frame_entry(
       const net::FirstPartySetMetadata& m) {
-    return m.frame_owner();
+    return m.frame_entry();
   }
 
-  static absl::optional<net::SchemefulSite> top_frame_owner(
+  static absl::optional<net::FirstPartySetEntry> top_frame_entry(
       const net::FirstPartySetMetadata& m) {
-    return m.top_frame_owner();
+    return m.top_frame_entry();
   }
 
   static bool Read(network::mojom::FirstPartySetMetadataDataView metadata,
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 ea7bdb3..01311cd5 100644
--- a/services/network/public/cpp/cookie_manager_mojom_traits_unittest.cc
+++ b/services/network/public/cpp/cookie_manager_mojom_traits_unittest.cc
@@ -566,12 +566,15 @@
   net::SchemefulSite frame_owner(GURL("https://frame.test"));
   net::SchemefulSite top_frame_owner(GURL("https://top_frame.test"));
 
+  net::FirstPartySetEntry frame_entry(frame_owner);
+  net::FirstPartySetEntry top_frame_entry(top_frame_owner);
+
   auto make_metadata = [&]() {
     // Use non-default values to ensure serialization/deserialization works
     // properly.
     return net::FirstPartySetMetadata(
         net::SamePartyContext(net::SamePartyContext::Type::kSameParty),
-        &frame_owner, &top_frame_owner);
+        &frame_entry, &top_frame_entry);
   };
 
   net::FirstPartySetMetadata original = make_metadata();
@@ -582,8 +585,8 @@
 
   EXPECT_EQ(round_tripped.context(),
             net::SamePartyContext(net::SamePartyContext::Type::kSameParty));
-  EXPECT_EQ(round_tripped.frame_owner(), frame_owner);
-  EXPECT_EQ(round_tripped.top_frame_owner(), top_frame_owner);
+  EXPECT_EQ(round_tripped.frame_entry(), frame_entry);
+  EXPECT_EQ(round_tripped.top_frame_entry(), top_frame_entry);
 
   EXPECT_EQ(round_tripped, make_metadata());
 }
diff --git a/services/network/public/cpp/first_party_sets_mojom_traits.cc b/services/network/public/cpp/first_party_sets_mojom_traits.cc
new file mode 100644
index 0000000..1098c04
--- /dev/null
+++ b/services/network/public/cpp/first_party_sets_mojom_traits.cc
@@ -0,0 +1,26 @@
+// Copyright 2022 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 "services/network/public/cpp/first_party_sets_mojom_traits.h"
+
+#include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
+#include "services/network/public/cpp/schemeful_site_mojom_traits.h"
+#include "services/network/public/mojom/first_party_sets.mojom-shared.h"
+
+namespace mojo {
+
+bool StructTraits<network::mojom::FirstPartySetEntryDataView,
+                  net::FirstPartySetEntry>::
+    Read(network::mojom::FirstPartySetEntryDataView entry,
+         net::FirstPartySetEntry* out) {
+  net::SchemefulSite primary;
+  if (!entry.ReadPrimary(&primary))
+    return false;
+
+  *out = net::FirstPartySetEntry(primary);
+  return true;
+}
+
+}  // namespace mojo
diff --git a/services/network/public/cpp/first_party_sets_mojom_traits.h b/services/network/public/cpp/first_party_sets_mojom_traits.h
new file mode 100644
index 0000000..28d8e56f
--- /dev/null
+++ b/services/network/public/cpp/first_party_sets_mojom_traits.h
@@ -0,0 +1,29 @@
+// Copyright 2022 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 SERVICES_NETWORK_PUBLIC_CPP_FIRST_PARTY_SETS_MOJOM_TRAITS_H_
+#define SERVICES_NETWORK_PUBLIC_CPP_FIRST_PARTY_SETS_MOJOM_TRAITS_H_
+
+#include "net/cookies/first_party_set_entry.h"
+
+#include "net/base/schemeful_site.h"
+#include "services/network/public/mojom/first_party_sets.mojom-shared.h"
+
+namespace mojo {
+
+template <>
+struct COMPONENT_EXPORT(FIRST_PARTY_SETS_MOJOM_TRAITS)
+    StructTraits<network::mojom::FirstPartySetEntryDataView,
+                 net::FirstPartySetEntry> {
+  static net::SchemefulSite primary(const net::FirstPartySetEntry& e) {
+    return e.primary();
+  }
+
+  static bool Read(network::mojom::FirstPartySetEntryDataView entry,
+                   net::FirstPartySetEntry* out);
+};
+
+}  // namespace mojo
+
+#endif  // SERVICES_NETWORK_PUBLIC_CPP_FIRST_PARTY_SETS_MOJOM_TRAITS_H_
diff --git a/services/network/public/cpp/first_party_sets_mojom_traits_unittest.cc b/services/network/public/cpp/first_party_sets_mojom_traits_unittest.cc
new file mode 100644
index 0000000..e1d33075
--- /dev/null
+++ b/services/network/public/cpp/first_party_sets_mojom_traits_unittest.cc
@@ -0,0 +1,31 @@
+// Copyright 2022 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 "services/network/public/cpp/first_party_sets_mojom_traits.h"
+
+#include "mojo/public/cpp/test_support/test_utils.h"
+#include "net/base/schemeful_site.h"
+#include "net/cookies/first_party_set_entry.h"
+#include "services/network/public/mojom/first_party_sets.mojom.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+namespace network {
+namespace {
+
+TEST(FirstPartySetsTraitsTest, Roundtrips_FirstPartySetEntry) {
+  net::SchemefulSite primary(GURL("https://primary.test"));
+
+  net::FirstPartySetEntry original(primary);
+  net::FirstPartySetEntry round_tripped;
+
+  EXPECT_TRUE(mojo::test::SerializeAndDeserialize<mojom::FirstPartySetEntry>(
+      original, round_tripped));
+
+  EXPECT_EQ(original, round_tripped);
+  EXPECT_EQ(round_tripped.primary(), primary);
+}
+
+}  // namespace
+}  // namespace network
diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn
index 69351875..38abaac 100644
--- a/services/network/public/mojom/BUILD.gn
+++ b/services/network/public/mojom/BUILD.gn
@@ -731,6 +731,41 @@
   ]
 }
 
+mojom("mojom_first_party_sets") {
+  generate_java = true
+  sources = [ "first_party_sets.mojom" ]
+
+  public_deps = [
+    ":mojom_schemeful_site",
+    "//mojo/public/mojom/base",
+  ]
+
+  if (!is_ios) {
+    export_class_attribute_blink = "BLINK_PLATFORM_EXPORT"
+    export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
+    export_header_blink = "third_party/blink/public/platform/web_common.h"
+  }
+
+  shared_typemaps = []
+  cpp_typemaps =
+      shared_typemaps + [
+        {
+          types = [
+            {
+              mojom = "network.mojom.FirstPartySetEntry"
+              cpp = "::net::FirstPartySetEntry"
+            },
+          ]
+          traits_headers = [
+            "//services/network/public/cpp/first_party_sets_mojom_traits.h",
+          ]
+          traits_public_deps =
+              [ "//services/network/public/cpp:first_party_sets_mojom_support" ]
+        },
+      ]
+  blink_cpp_typemaps = shared_typemaps
+}
+
 mojom("cookies_mojom") {
   generate_java = true
   sources = [
@@ -742,6 +777,7 @@
   ]
 
   public_deps = [
+    ":mojom_first_party_sets",
     ":mojom_schemeful_site",
     "//components/content_settings/core/common:mojo_bindings",
     "//mojo/public/mojom/base",
@@ -923,6 +959,7 @@
 
   public_deps = [
     ":cookies_mojom",
+    ":mojom_first_party_sets",
     ":mojom_ip_address",
     ":mojom_network_isolation_key",
     ":mojom_network_param",
diff --git a/services/network/public/mojom/cookie_manager.mojom b/services/network/public/mojom/cookie_manager.mojom
index 3e942f0e..bc26a4f93f 100644
--- a/services/network/public/mojom/cookie_manager.mojom
+++ b/services/network/public/mojom/cookie_manager.mojom
@@ -7,6 +7,7 @@
 import "components/content_settings/core/common/content_settings.mojom";
 import "mojo/public/mojom/base/time.mojom";
 import "services/network/public/mojom/cookie_partition_key.mojom";
+import "services/network/public/mojom/first_party_sets.mojom";
 import "services/network/public/mojom/schemeful_site.mojom";
 import "url/mojom/url.mojom";
 
@@ -469,8 +470,8 @@
   SamePartyContext context;
   // absl::nullopt indicates that the frame's site is not associated with any
   // First-Party Set.
-  SchemefulSite? frame_owner;
+  FirstPartySetEntry? frame_entry;
   // absl::nullopt indicates that the top frame's site is not associated with
   // any First-Party Set.
-  SchemefulSite? top_frame_owner;
+  FirstPartySetEntry? top_frame_entry;
 };
diff --git a/services/network/public/mojom/first_party_sets.mojom b/services/network/public/mojom/first_party_sets.mojom
new file mode 100644
index 0000000..a50e825
--- /dev/null
+++ b/services/network/public/mojom/first_party_sets.mojom
@@ -0,0 +1,12 @@
+// Copyright 2022 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.
+
+module network.mojom;
+
+import "services/network/public/mojom/schemeful_site.mojom";
+
+// This struct should match //net/cookies/first_party_set_entry.h.
+struct FirstPartySetEntry {
+  SchemefulSite primary;
+};
diff --git a/services/network/public/mojom/first_party_sets_access_delegate.mojom b/services/network/public/mojom/first_party_sets_access_delegate.mojom
index a31bb72..568c5c1c8 100644
--- a/services/network/public/mojom/first_party_sets_access_delegate.mojom
+++ b/services/network/public/mojom/first_party_sets_access_delegate.mojom
@@ -4,6 +4,7 @@
 
 module network.mojom;
 
+import "services/network/public/mojom/first_party_sets.mojom";
 import "services/network/public/mojom/schemeful_site.mojom";
 
 // Lives in the network service and controlled by the browser process to
@@ -32,8 +33,8 @@
   //
   // This map is computed by the browser side against the public First-Party
   // Sets, where the keys are member sites and the values are the ultimate
-  // owners of the final First-Party Sets combining the public sets and the
-  // modifications. Entries of site -> absl::nullopt means the key site is
+  // entries of the final First-Party Sets combining the public sets and the
+  // modifications. Map entries of site -> absl::nullopt means the key site is
   // considered deleted from the existing First-Party Sets.
-  map<SchemefulSite, SchemefulSite?> customizations;
+  map<SchemefulSite, FirstPartySetEntry?> customizations;
 };
diff --git a/services/network/public/mojom/network_service.mojom b/services/network/public/mojom/network_service.mojom
index 0ca0994..2662075 100644
--- a/services/network/public/mojom/network_service.mojom
+++ b/services/network/public/mojom/network_service.mojom
@@ -16,6 +16,7 @@
 import "mojo/public/mojom/base/values.mojom";
 import "sandbox/policy/mojom/context.mojom";
 import "sandbox/policy/mojom/sandbox.mojom";
+import "services/network/public/mojom/first_party_sets.mojom";
 import "services/network/public/mojom/host_resolver.mojom";
 import "services/network/public/mojom/http_raw_headers.mojom";
 import "services/network/public/mojom/key_pinning.mojom";
@@ -363,14 +364,15 @@
 
   // Sets the First-Party Sets data. First-Party Sets are a collection of set
   // declarations defined in the document:
-  // https://github.com/privacycg/first-party-sets. Each set is indicated by
-  // the owner site, and member sites. |sets| contains the mapping of
-  // site -> site, where keys are members of sets, and values are owners of
-  // the sets. Owners are explicitly represented as members of the set.
+  // https://github.com/privacycg/first-party-sets. Each set is indicated by the
+  // primary site, and member sites. |sets| contains the mapping of site ->
+  // entry, where keys are sites in the sets, and values are entries containing
+  // site metadata (such as the primary site in the set). Primary sites are
+  // included as keys of the map.
   //
   // Only the first call can have any effect, subsequent invocations are
   // ignored.
-  SetFirstPartySets(map<SchemefulSite, SchemefulSite> sets);
+  SetFirstPartySets(map<SchemefulSite, FirstPartySetEntry> sets);
 
   // Sets the list of ports which will be permitted even if they normally would
   // be restricted.
diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
index 2217606..8fd9f7e 100644
--- a/services/network/restricted_cookie_manager.cc
+++ b/services/network/restricted_cookie_manager.cc
@@ -82,7 +82,7 @@
                                         1);
   }
   options.set_is_in_nontrivial_first_party_set(
-      first_party_set_metadata.frame_owner().has_value());
+      first_party_set_metadata.frame_entry().has_value());
 
   return options;
 }
@@ -118,7 +118,7 @@
                                         1);
   }
   options.set_is_in_nontrivial_first_party_set(
-      first_party_set_metadata.frame_owner().has_value());
+      first_party_set_metadata.frame_entry().has_value());
 
   return options;
 }
@@ -343,7 +343,10 @@
       cookie_partition_key_(net::CookiePartitionKey::FromNetworkIsolationKey(
           isolation_info.network_isolation_key(),
           base::OptionalOrNullptr(
-              first_party_set_metadata_.top_frame_owner()))),
+              first_party_set_metadata_.top_frame_entry().has_value()
+                  ? absl::make_optional(
+                        first_party_set_metadata_.top_frame_entry()->primary())
+                  : absl::nullopt))),
       cookie_partition_key_collection_(
           net::CookiePartitionKeyCollection::FromOptional(
               cookie_partition_key_)),
@@ -382,7 +385,11 @@
   first_party_set_metadata_ = std::move(first_party_set_metadata);
   cookie_partition_key_ = net::CookiePartitionKey::FromNetworkIsolationKey(
       isolation_info_.network_isolation_key(),
-      base::OptionalOrNullptr(first_party_set_metadata_.top_frame_owner()));
+      base::OptionalOrNullptr(
+          first_party_set_metadata_.top_frame_entry().has_value()
+              ? absl::make_optional(
+                    first_party_set_metadata_.top_frame_entry()->primary())
+              : absl::nullopt));
   cookie_partition_key_collection_ =
       net::CookiePartitionKeyCollection::FromOptional(cookie_partition_key_);
   std::move(done_closure).Run();
diff --git a/services/network/restricted_cookie_manager_unittest.cc b/services/network/restricted_cookie_manager_unittest.cc
index ceea30c..7d021618 100644
--- a/services/network/restricted_cookie_manager_unittest.cc
+++ b/services/network/restricted_cookie_manager_unittest.cc
@@ -462,9 +462,11 @@
             &first_party_sets_manager_) {
     first_party_sets_manager_.SetCompleteSets(
         {{net::SchemefulSite(GURL("https://example.com")),
-          net::SchemefulSite(GURL("https://example.com"))},
+          net::FirstPartySetEntry(
+              net::SchemefulSite(GURL("https://example.com")))},
          {net::SchemefulSite(GURL("https://member1.com")),
-          net::SchemefulSite(GURL("https://example.com"))}});
+          net::FirstPartySetEntry(
+              net::SchemefulSite(GURL("https://example.com")))}});
     first_party_sets_access_delegate_remote_->NotifyReady(
         mojom::FirstPartySetsReadyEvent::New());
     auto cookie_access_delegate = std::make_unique<CookieAccessDelegateImpl>(
@@ -2049,13 +2051,12 @@
 
   const GURL kCookieURL("https://example.com");
 
-  base::flat_map<net::SchemefulSite, std::set<net::SchemefulSite>>
-      first_party_sets;
-  first_party_sets.insert(std::make_pair(
-      kOwnerSite, std::set<net::SchemefulSite>({kOwnerSite, kMemberSite})));
   auto cookie_access_delegate =
       std::make_unique<net::TestCookieAccessDelegate>();
-  cookie_access_delegate->SetFirstPartySets(first_party_sets);
+  cookie_access_delegate->SetFirstPartySets({
+      {kOwnerSite, net::FirstPartySetEntry(kOwnerSite)},
+      {kMemberSite, net::FirstPartySetEntry(kOwnerSite)},
+  });
   cookie_monster_.SetCookieAccessDelegate(std::move(cookie_access_delegate));
 
   // Set https://example.com cookie when the top-frame site is the owner
diff --git a/services/network/test/test_socket_broker_impl.cc b/services/network/test/test_socket_broker_impl.cc
index 14b123e..3e159e8 100644
--- a/services/network/test/test_socket_broker_impl.cc
+++ b/services/network/test/test_socket_broker_impl.cc
@@ -4,6 +4,9 @@
 
 #include "services/network/test/test_socket_broker_impl.h"
 
+#include <errno.h>
+
+#include "base/files/file_util.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "net/base/net_errors.h"
 #include "net/log/net_log_source.h"
@@ -11,6 +14,9 @@
 #include "net/socket/tcp_socket.h"
 
 #if !BUILDFLAG(IS_WIN)
+#include <netinet/in.h>
+#include <sys/socket.h>
+
 #include "base/files/scoped_file.h"
 #endif
 
@@ -31,12 +37,17 @@
 #if BUILDFLAG(IS_WIN)
   std::move(callback).Run(mojo::PlatformHandle(), net::OK);
 #else
-  net::SocketDescriptor socket;
-  int rv =
-      net::TCPSocket::OpenAndReleaseSocketDescriptor(address_family, &socket);
-  base::ScopedFD fd(socket);
-
-  std::move(callback).Run(mojo::PlatformHandle(std::move(fd)), rv);
+  base::ScopedFD socket(net::CreatePlatformSocket(
+      net::ConvertAddressFamily(address_family), SOCK_STREAM,
+      address_family == AF_UNIX ? 0 : IPPROTO_TCP));
+  int rv = net::OK;
+  if (!socket.is_valid()) {
+    rv = net::MapSystemError(errno);
+  } else if (!base::SetNonBlocking(socket.get())) {
+    rv = net::MapSystemError(errno);
+    socket.reset();
+  }
+  std::move(callback).Run(mojo::PlatformHandle(std::move(socket)), rv);
 #endif
 }
 
diff --git a/testing/buildbot/chrome.json b/testing/buildbot/chrome.json
index 733bd37..8e14f34 100644
--- a/testing/buildbot/chrome.json
+++ b/testing/buildbot/chrome.json
@@ -1916,7 +1916,7 @@
       {
         "args": [],
         "cros_board": "atlas",
-        "cros_img": "atlas-release/R106-14997.0.0",
+        "cros_img": "atlas-release/R106-15019.0.0",
         "name": "lacros_all_tast_tests ATLAS_RELEASE_LKGM",
         "resultdb": {
           "enable": true,
@@ -1980,7 +1980,7 @@
       {
         "args": [],
         "cros_board": "eve",
-        "cros_img": "eve-release/R106-14997.0.0",
+        "cros_img": "eve-release/R106-15019.0.0",
         "name": "lacros_all_tast_tests EVE_RELEASE_LKGM",
         "resultdb": {
           "enable": true,
@@ -2087,7 +2087,7 @@
       {
         "args": [],
         "cros_board": "hana",
-        "cros_img": "hana-release/R106-14997.0.0",
+        "cros_img": "hana-release/R106-15019.0.0",
         "name": "lacros_all_tast_tests HANA_RELEASE_LKGM",
         "resultdb": {
           "enable": true,
@@ -2151,7 +2151,7 @@
       {
         "args": [],
         "cros_board": "jacuzzi",
-        "cros_img": "jacuzzi-release/R106-14997.0.0",
+        "cros_img": "jacuzzi-release/R106-15019.0.0",
         "name": "lacros_all_tast_tests JACUZZI_RELEASE_LKGM",
         "resultdb": {
           "enable": true,
@@ -2255,9 +2255,9 @@
     "skylab_tests": [
       {
         "args": [],
-        "cros_board": "cherry",
-        "cros_img": "cherry64-release/R106-14997.0.0",
-        "name": "lacros_all_tast_tests CHERRY64_RELEASE_LKGM",
+        "cros_board": "herobrine",
+        "cros_img": "herobrine-release/R106-14997.0.0",
+        "name": "lacros_all_tast_tests HEROBRINE_RELEASE_LKGM",
         "resultdb": {
           "enable": true,
           "has_native_resultdb_integration": true
@@ -2267,23 +2267,7 @@
         "test": "lacros_all_tast_tests",
         "test_id_prefix": "ninja://chromeos/lacros:lacros_all_tast_tests/",
         "timeout_sec": 10800,
-        "variant_id": "CHERRY64_RELEASE_LKGM"
-      },
-      {
-        "args": [],
-        "cros_board": "jacuzzi",
-        "cros_img": "jacuzzi64-release/R106-14997.0.0",
-        "name": "lacros_all_tast_tests JACUZZI64_RELEASE_LKGM",
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {},
-        "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)",
-        "test": "lacros_all_tast_tests",
-        "test_id_prefix": "ninja://chromeos/lacros:lacros_all_tast_tests/",
-        "timeout_sec": 10800,
-        "variant_id": "JACUZZI64_RELEASE_LKGM"
+        "variant_id": "HEROBRINE_RELEASE_LKGM"
       }
     ]
   },
diff --git a/testing/buildbot/chromium.clang.json b/testing/buildbot/chromium.clang.json
index 55ee7f45..6d5b09e1 100644
--- a/testing/buildbot/chromium.clang.json
+++ b/testing/buildbot/chromium.clang.json
@@ -40646,7 +40646,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -40676,7 +40676,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40698,7 +40698,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -40728,7 +40728,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40750,7 +40750,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -40780,7 +40780,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40802,7 +40802,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -40832,7 +40832,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40854,7 +40854,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -40884,7 +40884,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40906,7 +40906,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -40936,7 +40936,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40958,7 +40958,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -40988,7 +40988,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41010,7 +41010,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -41040,7 +41040,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41062,7 +41062,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -41092,7 +41092,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41114,7 +41114,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -41144,7 +41144,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41166,7 +41166,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -41196,7 +41196,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41218,7 +41218,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -41248,7 +41248,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41270,7 +41270,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -41300,7 +41300,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41322,7 +41322,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -41352,7 +41352,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41374,7 +41374,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -41404,7 +41404,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41426,7 +41426,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -41456,7 +41456,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41478,7 +41478,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -41508,7 +41508,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41530,7 +41530,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -41560,7 +41560,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41602,7 +41602,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -41634,7 +41634,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -41649,7 +41649,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -41681,7 +41681,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -41696,7 +41696,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -41728,7 +41728,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -41743,7 +41743,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -41775,7 +41775,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -41790,7 +41790,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -41822,7 +41822,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -41837,7 +41837,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -41869,7 +41869,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -41884,7 +41884,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -41916,7 +41916,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -41931,7 +41931,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -41963,7 +41963,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -41978,7 +41978,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -42010,7 +42010,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -42025,7 +42025,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -42057,7 +42057,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -42072,7 +42072,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -42104,7 +42104,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -42119,7 +42119,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -42151,7 +42151,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -42166,7 +42166,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -42198,7 +42198,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -42213,7 +42213,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -42245,7 +42245,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -42260,7 +42260,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -42292,7 +42292,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -42307,7 +42307,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -42339,7 +42339,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -42354,7 +42354,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -42386,7 +42386,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
@@ -42401,7 +42401,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -42433,7 +42433,7 @@
           "expiration": 21600,
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             }
           ],
diff --git a/testing/buildbot/chromium.dawn.json b/testing/buildbot/chromium.dawn.json
index 73402f6..270d681 100644
--- a/testing/buildbot/chromium.dawn.json
+++ b/testing/buildbot/chromium.dawn.json
@@ -329,6 +329,45 @@
       },
       {
         "args": [
+          "webgpu_cts",
+          "--show-stdout",
+          "--browser=release",
+          "--passthrough",
+          "-v",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=Vulkan",
+          "--enable-dawn-backend-validation",
+          "--retry-limit=3",
+          "--jobs=4"
+        ],
+        "ci_only": true,
+        "isolate_name": "telemetry_gpu_integration_test",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "webgpu_cts_with_validation_tests",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "should_retry_with_patch": false,
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "8086:9bc5-20.0.8",
+              "os": "Ubuntu-18.04.6",
+              "pool": "chromium.tests.gpu"
+            }
+          ],
+          "idempotent": false,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 14
+        },
+        "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
+      },
+      {
+        "args": [
           "--flag-specific=webgpu-swiftshader",
           "--initialize-webgpu-adapter-at-startup-timeout-ms=60000",
           "--no-xvfb",
@@ -440,6 +479,47 @@
           "shards": 2
         },
         "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
+      },
+      {
+        "args": [
+          "webgpu_cts",
+          "--show-stdout",
+          "--browser=release",
+          "--passthrough",
+          "-v",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=Vulkan",
+          "--use-webgpu-adapter=swiftshader",
+          "--test-filter=*web_platform*",
+          "--enable-dawn-backend-validation",
+          "--retry-limit=3",
+          "--jobs=4"
+        ],
+        "ci_only": true,
+        "isolate_name": "telemetry_gpu_integration_test",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "webgpu_swiftshader_web_platform_cts_with_validation_tests",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "should_retry_with_patch": false,
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "8086:9bc5-20.0.8",
+              "os": "Ubuntu-18.04.6",
+              "pool": "chromium.tests.gpu"
+            }
+          ],
+          "idempotent": false,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 2
+        },
+        "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
       }
     ]
   },
@@ -1287,6 +1367,45 @@
       },
       {
         "args": [
+          "webgpu_cts",
+          "--show-stdout",
+          "--browser=release",
+          "--passthrough",
+          "-v",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=Vulkan",
+          "--enable-dawn-backend-validation",
+          "--retry-limit=3",
+          "--jobs=4"
+        ],
+        "ci_only": true,
+        "isolate_name": "telemetry_gpu_integration_test",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "webgpu_cts_with_validation_tests",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "should_retry_with_patch": false,
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "8086:9bc5-20.0.8",
+              "os": "Ubuntu-18.04.6",
+              "pool": "chromium.tests.gpu"
+            }
+          ],
+          "idempotent": false,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 14
+        },
+        "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
+      },
+      {
+        "args": [
           "--flag-specific=webgpu-swiftshader",
           "--initialize-webgpu-adapter-at-startup-timeout-ms=60000",
           "--no-xvfb",
@@ -1398,6 +1517,47 @@
           "shards": 2
         },
         "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
+      },
+      {
+        "args": [
+          "webgpu_cts",
+          "--show-stdout",
+          "--browser=release",
+          "--passthrough",
+          "-v",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=Vulkan",
+          "--use-webgpu-adapter=swiftshader",
+          "--test-filter=*web_platform*",
+          "--enable-dawn-backend-validation",
+          "--retry-limit=3",
+          "--jobs=4"
+        ],
+        "ci_only": true,
+        "isolate_name": "telemetry_gpu_integration_test",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "webgpu_swiftshader_web_platform_cts_with_validation_tests",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "should_retry_with_patch": false,
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "8086:9bc5-20.0.8",
+              "os": "Ubuntu-18.04.6",
+              "pool": "chromium.tests.gpu"
+            }
+          ],
+          "idempotent": false,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 2
+        },
+        "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
       }
     ]
   },
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index c5c1a8f5..8f9cb37 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -31291,7 +31291,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -31323,7 +31323,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -31345,7 +31345,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -31377,7 +31377,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -31399,7 +31399,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -31431,7 +31431,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -31454,7 +31454,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -31486,7 +31486,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -31509,7 +31509,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -31541,7 +31541,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -31564,7 +31564,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -31596,7 +31596,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -31619,7 +31619,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -31651,7 +31651,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -31674,7 +31674,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -31706,7 +31706,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -31729,7 +31729,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -31761,7 +31761,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -31783,7 +31783,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -31815,7 +31815,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -31837,7 +31837,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -31869,7 +31869,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -31892,7 +31892,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -31924,7 +31924,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -31947,7 +31947,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -31979,7 +31979,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32001,7 +32001,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -32033,7 +32033,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32055,7 +32055,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -32087,7 +32087,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32109,7 +32109,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -32141,7 +32141,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32163,7 +32163,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -32195,7 +32195,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32217,7 +32217,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization",
           "--extra-app-args=--disable-field-trial-config"
@@ -32249,7 +32249,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32278,7 +32278,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -32308,7 +32308,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32330,7 +32330,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -32360,7 +32360,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32382,7 +32382,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -32412,7 +32412,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32434,7 +32434,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -32464,7 +32464,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32486,7 +32486,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -32516,7 +32516,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32538,7 +32538,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -32568,7 +32568,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32590,7 +32590,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -32620,7 +32620,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32642,7 +32642,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -32672,7 +32672,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32694,7 +32694,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -32724,7 +32724,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32746,7 +32746,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -32776,7 +32776,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32798,7 +32798,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -32828,7 +32828,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32850,7 +32850,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -32880,7 +32880,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32902,7 +32902,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -32932,7 +32932,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -32954,7 +32954,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -32984,7 +32984,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33006,7 +33006,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -33036,7 +33036,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33058,7 +33058,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -33088,7 +33088,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33110,7 +33110,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -33140,7 +33140,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33162,7 +33162,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -33192,7 +33192,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33214,7 +33214,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33245,7 +33245,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33267,7 +33267,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33298,7 +33298,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33320,7 +33320,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33351,7 +33351,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33373,7 +33373,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33404,7 +33404,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33427,7 +33427,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33458,7 +33458,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33481,7 +33481,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33512,7 +33512,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33535,7 +33535,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33566,7 +33566,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33589,7 +33589,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33620,7 +33620,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33643,7 +33643,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33674,7 +33674,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33697,7 +33697,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33728,7 +33728,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33751,7 +33751,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33782,7 +33782,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33805,7 +33805,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33836,7 +33836,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33859,7 +33859,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33890,7 +33890,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33912,7 +33912,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33943,7 +33943,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -33965,7 +33965,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -33996,7 +33996,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34018,7 +34018,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -34049,7 +34049,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34072,7 +34072,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -34103,7 +34103,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34126,7 +34126,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -34157,7 +34157,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34180,7 +34180,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -34210,7 +34210,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34232,7 +34232,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -34262,7 +34262,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34284,7 +34284,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -34314,7 +34314,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34336,7 +34336,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -34366,7 +34366,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34388,7 +34388,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -34419,7 +34419,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34441,7 +34441,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -34472,7 +34472,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34494,7 +34494,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -34525,7 +34525,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34547,7 +34547,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -34577,7 +34577,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34599,7 +34599,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -34629,7 +34629,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34652,7 +34652,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -34682,7 +34682,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34704,7 +34704,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -34735,7 +34735,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34757,7 +34757,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -34788,7 +34788,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34810,7 +34810,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -34841,7 +34841,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34863,7 +34863,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -34893,7 +34893,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34915,7 +34915,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -34945,7 +34945,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -34967,7 +34967,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -34997,7 +34997,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35019,7 +35019,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -35049,7 +35049,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35071,7 +35071,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -35101,7 +35101,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35123,7 +35123,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -35154,7 +35154,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35176,7 +35176,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -35207,7 +35207,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35229,7 +35229,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -35260,7 +35260,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35282,7 +35282,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -35312,7 +35312,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35334,7 +35334,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -35364,7 +35364,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35386,7 +35386,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -35416,7 +35416,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35438,7 +35438,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -35468,7 +35468,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35490,7 +35490,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -35520,7 +35520,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35542,7 +35542,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -35572,7 +35572,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35594,7 +35594,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -35624,7 +35624,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35646,7 +35646,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -35676,7 +35676,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35698,7 +35698,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -35728,7 +35728,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35750,7 +35750,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -35780,7 +35780,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35802,7 +35802,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -35832,7 +35832,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35854,7 +35854,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -35884,7 +35884,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35906,7 +35906,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -35936,7 +35936,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -35958,7 +35958,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -35988,7 +35988,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36010,7 +36010,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -36040,7 +36040,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36062,7 +36062,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -36092,7 +36092,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36114,7 +36114,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -36144,7 +36144,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36166,7 +36166,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -36196,7 +36196,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36218,7 +36218,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -36248,7 +36248,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36270,7 +36270,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -36300,7 +36300,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36322,7 +36322,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -36352,7 +36352,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36374,7 +36374,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -36404,7 +36404,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36426,7 +36426,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -36456,7 +36456,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36478,7 +36478,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -36508,7 +36508,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36534,7 +36534,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "cronet_test",
@@ -36564,7 +36564,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36593,7 +36593,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -36623,7 +36623,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36639,13 +36639,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "absl_hardening_tests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "absl_hardening_tests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://third_party/abseil-cpp:absl_hardening_tests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "base_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "base_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://base:base_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -36675,7 +36779,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36697,7 +36801,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -36727,7 +36831,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36749,7 +36853,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -36779,7 +36883,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36795,13 +36899,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "base_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "base_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://base:base_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "base_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "base_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://base:base_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -36831,7 +37039,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36847,13 +37055,65 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "base_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "base_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://base:base_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -36883,7 +37143,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36899,13 +37159,65 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "boringssl_crypto_tests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "boringssl_crypto_tests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://third_party/boringssl:boringssl_crypto_tests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -36935,7 +37247,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -36951,13 +37263,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "boringssl_ssl_tests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "boringssl_ssl_tests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://third_party/boringssl:boringssl_ssl_tests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "components_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "components_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://components:components_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -36987,7 +37403,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37009,7 +37425,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -37039,7 +37455,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37061,7 +37477,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -37091,7 +37507,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37107,13 +37523,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "components_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "components_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://components:components_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "components_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "components_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://components:components_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -37143,7 +37663,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37159,13 +37679,65 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "components_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "components_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://components:components_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -37195,7 +37767,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37211,13 +37783,65 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "crashpad_tests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "crashpad_tests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://third_party/crashpad/crashpad:crashpad_tests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -37247,7 +37871,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37263,13 +37887,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "crypto_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "crypto_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://crypto:crypto_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "gfx_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "gfx_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/gfx:gfx_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -37299,7 +38027,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37321,7 +38049,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -37351,7 +38079,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37373,7 +38101,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -37403,7 +38131,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37419,13 +38147,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "gfx_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "gfx_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/gfx:gfx_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "gfx_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "gfx_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/gfx:gfx_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -37455,7 +38287,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37471,13 +38303,65 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "gfx_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "gfx_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/gfx:gfx_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -37507,7 +38391,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37523,13 +38407,118 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "google_apis_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "google_apis_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://google_apis:google_apis_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_bookmarks_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_bookmarks_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_bookmarks_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -37560,7 +38549,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37582,7 +38571,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -37613,7 +38602,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37629,13 +38618,66 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_bookmarks_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_bookmarks_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_bookmarks_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -37666,7 +38708,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37682,13 +38724,120 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_bookmarks_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_bookmarks_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_bookmarks_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_integration_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_integration_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 8
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_integration_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -37719,7 +38868,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37742,7 +38891,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -37773,7 +38922,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37796,7 +38945,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -37827,7 +38976,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37844,13 +38993,175 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_integration_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_integration_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 8
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_integration_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_integration_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_integration_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 8
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_integration_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_settings_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_settings_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_settings_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -37881,7 +39192,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37904,7 +39215,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -37935,7 +39246,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -37952,13 +39263,67 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_settings_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_settings_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_settings_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -37989,7 +39354,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38006,13 +39371,121 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_settings_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_settings_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_settings_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_signin_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_signin_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 10
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_signin_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -38043,7 +39516,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38066,7 +39539,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -38097,7 +39570,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38120,7 +39593,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -38151,7 +39624,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38168,13 +39641,174 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_signin_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_signin_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 10
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_signin_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_signin_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_signin_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 10
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_signin_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_smoke_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_smoke_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_smoke_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -38205,7 +39839,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38227,7 +39861,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -38258,7 +39892,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38274,13 +39908,66 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_smoke_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_smoke_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_smoke_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -38311,7 +39998,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38327,13 +40014,120 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_smoke_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_smoke_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_smoke_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_ui_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_ui_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 12
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_ui_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -38364,7 +40158,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38387,7 +40181,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -38418,7 +40212,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38441,7 +40235,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -38472,7 +40266,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38489,13 +40283,173 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_ui_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_ui_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 12
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_ui_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_ui_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_ui_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 12
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_ui_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_chrome_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test:ios_chrome_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -38525,7 +40479,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38547,7 +40501,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -38577,7 +40531,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38599,7 +40553,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -38629,7 +40583,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38645,13 +40599,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_chrome_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test:ios_chrome_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_chrome_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test:ios_chrome_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -38681,7 +40739,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38697,13 +40755,118 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_chrome_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test:ios_chrome_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_web_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_web_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_web_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -38734,7 +40897,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38756,7 +40919,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -38787,7 +40950,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38803,13 +40966,66 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_web_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_web_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_web_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -38840,7 +41056,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38856,13 +41072,66 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_web_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_web_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_web_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -38892,7 +41161,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38908,13 +41177,65 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_components_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_components_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/components:ios_components_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -38944,7 +41265,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -38961,13 +41282,66 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_net_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_net_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test_id_prefix": "ninja://ios/net:ios_net_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -38997,7 +41371,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39013,13 +41387,118 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_remoting_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_remoting_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://remoting/ios:ios_remoting_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_showcase_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_showcase_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/showcase:ios_showcase_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -39050,7 +41529,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39072,7 +41551,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -39103,7 +41582,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39119,13 +41598,66 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_showcase_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_showcase_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/showcase:ios_showcase_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -39156,7 +41688,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39172,13 +41704,66 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_showcase_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_showcase_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/showcase:ios_showcase_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -39208,7 +41793,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39224,13 +41809,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_testing_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_testing_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/testing:ios_testing_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_inttests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_inttests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_inttests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -39260,7 +41949,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39282,7 +41971,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -39312,7 +42001,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39334,7 +42023,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -39364,7 +42053,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39380,13 +42069,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_inttests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_inttests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_inttests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_inttests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_inttests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_inttests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -39416,7 +42209,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39432,13 +42225,118 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_inttests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_inttests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_inttests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_web_shell_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_shell_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web/shell/test:ios_web_shell_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -39469,7 +42367,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39491,7 +42389,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -39522,7 +42420,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39544,7 +42442,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -39575,7 +42473,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39591,13 +42489,171 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_web_shell_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_shell_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web/shell/test:ios_web_shell_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_web_shell_eg2tests_module",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_shell_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web/shell/test:ios_web_shell_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -39627,7 +42683,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39649,7 +42705,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -39679,7 +42735,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39701,7 +42757,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -39731,7 +42787,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39747,13 +42803,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -39783,7 +42943,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39799,13 +42959,117 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_inttests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_inttests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_inttests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -39835,7 +43099,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39857,7 +43121,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -39887,7 +43151,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39909,7 +43173,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -39939,7 +43203,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -39955,13 +43219,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_inttests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_inttests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_inttests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_inttests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_inttests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_inttests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -39991,7 +43359,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40007,13 +43375,117 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_inttests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_inttests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_inttests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -40043,7 +43515,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40065,7 +43537,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -40095,7 +43567,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40117,7 +43589,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -40147,7 +43619,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40163,13 +43635,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -40199,7 +43775,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40215,13 +43791,65 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -40251,7 +43879,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40267,13 +43895,65 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "net_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "net_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://net:net_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -40303,7 +43983,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40319,13 +43999,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "services_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "services_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://services:services_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "skia_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "skia_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://skia:skia_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -40355,7 +44139,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40377,7 +44161,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -40407,7 +44191,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40429,7 +44213,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -40459,7 +44243,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40475,13 +44259,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "skia_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "skia_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://skia:skia_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "skia_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "skia_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://skia:skia_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -40511,7 +44399,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40527,13 +44415,65 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "skia_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "skia_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://skia:skia_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -40563,7 +44503,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40579,13 +44519,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "sql_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "sql_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://sql:sql_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ui_base_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ui_base_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/base:ui_base_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -40615,7 +44659,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40637,7 +44681,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -40667,7 +44711,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40689,7 +44733,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -40719,7 +44763,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40735,13 +44779,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ui_base_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ui_base_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/base:ui_base_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ui_base_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ui_base_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/base:ui_base_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -40771,7 +44919,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40787,13 +44935,65 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ui_base_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ui_base_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/base:ui_base_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -40823,7 +45023,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40835,6 +45035,58 @@
         },
         "test_id_prefix": "ninja://url:url_unittests/",
         "variant_id": "iPhone 6s 15.2"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "url_unittests",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "url_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://url:url_unittests/",
+        "variant_id": "iPhone 8 16.0"
       }
     ]
   },
@@ -40851,7 +45103,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -40882,7 +45134,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40898,6 +45150,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "absl_hardening_tests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "absl_hardening_tests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://third_party/abseil-cpp:absl_hardening_tests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "base_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "base_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://base:base_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -40906,7 +45268,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -40937,7 +45299,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -40961,7 +45323,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -40992,7 +45354,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41016,7 +45378,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -41047,7 +45409,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41063,6 +45425,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "base_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "base_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://base:base_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "base_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "base_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://base:base_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
@@ -41071,7 +45543,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -41102,7 +45574,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41118,6 +45590,61 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "base_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "base_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://base:base_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
@@ -41126,7 +45653,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -41157,7 +45684,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41173,6 +45700,61 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "boringssl_crypto_tests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "boringssl_crypto_tests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://third_party/boringssl:boringssl_crypto_tests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
@@ -41181,7 +45763,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -41212,7 +45794,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41228,6 +45810,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "boringssl_ssl_tests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "boringssl_ssl_tests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://third_party/boringssl:boringssl_ssl_tests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "components_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "components_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://components:components_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -41236,7 +45928,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -41267,7 +45959,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41291,7 +45983,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -41322,7 +46014,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41346,7 +46038,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -41377,7 +46069,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41393,6 +46085,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "components_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "components_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://components:components_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "components_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "components_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://components:components_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
@@ -41401,7 +46203,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -41432,7 +46234,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41448,6 +46250,61 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "components_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "components_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://components:components_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
@@ -41456,7 +46313,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -41487,7 +46344,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41503,6 +46360,61 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "crashpad_tests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "crashpad_tests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://third_party/crashpad/crashpad:crashpad_tests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
@@ -41511,7 +46423,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -41542,7 +46454,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41558,6 +46470,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "crypto_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "crypto_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://crypto:crypto_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "gfx_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "gfx_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/gfx:gfx_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -41566,7 +46588,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -41597,7 +46619,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41621,7 +46643,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -41652,7 +46674,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41676,7 +46698,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -41707,7 +46729,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41723,6 +46745,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "gfx_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "gfx_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/gfx:gfx_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "gfx_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "gfx_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/gfx:gfx_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
@@ -41731,7 +46863,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -41762,7 +46894,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41778,6 +46910,61 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "gfx_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "gfx_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/gfx:gfx_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
@@ -41786,7 +46973,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -41817,7 +47004,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41833,6 +47020,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "google_apis_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "google_apis_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://google_apis:google_apis_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_bookmarks_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_bookmarks_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_bookmarks_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -41841,7 +47139,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -41873,7 +47171,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41897,7 +47195,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -41929,7 +47227,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -41945,6 +47243,62 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_bookmarks_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_bookmarks_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_bookmarks_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
@@ -41953,7 +47307,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -41985,7 +47339,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42001,6 +47355,119 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_bookmarks_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_bookmarks_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_bookmarks_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_integration_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_integration_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 8
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_integration_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -42009,7 +47476,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42041,7 +47508,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42066,7 +47533,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42098,7 +47565,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42123,7 +47590,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42155,7 +47622,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42172,6 +47639,177 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_integration_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_integration_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 8
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_integration_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_integration_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_integration_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 8
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_integration_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_settings_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_settings_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_settings_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -42180,7 +47818,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42212,7 +47850,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42237,7 +47875,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42269,7 +47907,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42286,6 +47924,63 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_settings_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_settings_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_settings_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
@@ -42294,7 +47989,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42326,7 +48021,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42343,6 +48038,120 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_settings_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_settings_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_settings_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_signin_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_signin_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 10
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_signin_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -42351,7 +48160,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42383,7 +48192,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42408,7 +48217,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42440,7 +48249,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42465,7 +48274,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42497,7 +48306,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42514,6 +48323,176 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_signin_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_signin_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 10
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_signin_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_signin_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_signin_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 10
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_signin_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_smoke_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_smoke_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_smoke_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -42522,7 +48501,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42554,7 +48533,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42578,7 +48557,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42610,7 +48589,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42626,6 +48605,62 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_smoke_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_smoke_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_smoke_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
@@ -42634,7 +48669,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42666,7 +48701,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42682,6 +48717,119 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_smoke_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_smoke_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_smoke_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_ui_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_ui_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 12
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_ui_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -42690,7 +48838,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42722,7 +48870,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42747,7 +48895,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42779,7 +48927,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42804,7 +48952,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -42836,7 +48984,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42853,6 +49001,175 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_ui_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_ui_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 12
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_ui_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_ui_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_ui_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 12
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_ui_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_chrome_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test:ios_chrome_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -42861,7 +49178,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -42892,7 +49209,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42916,7 +49233,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -42947,7 +49264,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -42971,7 +49288,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -43002,7 +49319,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43018,6 +49335,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_chrome_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test:ios_chrome_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_chrome_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test:ios_chrome_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
@@ -43026,7 +49453,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -43057,7 +49484,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43073,6 +49500,117 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_chrome_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test:ios_chrome_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_web_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_web_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_web_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -43081,7 +49619,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -43113,7 +49651,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43137,7 +49675,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -43169,7 +49707,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43185,6 +49723,62 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_web_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_web_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_web_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
@@ -43193,7 +49787,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -43225,7 +49819,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43241,6 +49835,62 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_web_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_web_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_web_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
@@ -43249,7 +49899,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -43280,7 +49930,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43296,6 +49946,61 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_components_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_components_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/components:ios_components_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
@@ -43304,7 +50009,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -43335,7 +50040,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43352,6 +50057,62 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_net_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_net_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test_id_prefix": "ninja://ios/net:ios_net_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
@@ -43360,7 +50121,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -43391,7 +50152,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43407,6 +50168,117 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_remoting_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_remoting_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://remoting/ios:ios_remoting_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_showcase_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_showcase_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/showcase:ios_showcase_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -43415,7 +50287,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -43447,7 +50319,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43471,7 +50343,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -43503,7 +50375,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43519,6 +50391,62 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_showcase_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_showcase_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/showcase:ios_showcase_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
@@ -43527,7 +50455,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -43559,7 +50487,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43575,6 +50503,62 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_showcase_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_showcase_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/showcase:ios_showcase_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
@@ -43583,7 +50567,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -43614,7 +50598,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43630,6 +50614,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_testing_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_testing_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/testing:ios_testing_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_inttests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_inttests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_inttests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -43638,7 +50732,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -43669,7 +50763,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43693,7 +50787,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -43724,7 +50818,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43748,7 +50842,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -43779,7 +50873,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43795,6 +50889,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_inttests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_inttests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_inttests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_inttests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_inttests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_inttests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
@@ -43803,7 +51007,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -43834,7 +51038,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43850,6 +51054,117 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_inttests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_inttests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_inttests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_web_shell_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_shell_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web/shell/test:ios_web_shell_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -43858,7 +51173,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -43890,7 +51205,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43914,7 +51229,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -43946,7 +51261,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -43970,7 +51285,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -44002,7 +51317,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44018,6 +51333,173 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_web_shell_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_shell_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web/shell/test:ios_web_shell_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_web_shell_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_shell_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web/shell/test:ios_web_shell_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -44026,7 +51508,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -44057,7 +51539,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44081,7 +51563,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -44112,7 +51594,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44136,7 +51618,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -44167,7 +51649,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44183,6 +51665,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
@@ -44191,7 +51783,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -44222,7 +51814,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44238,6 +51830,116 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web:ios_web_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_inttests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_inttests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_inttests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -44246,7 +51948,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -44277,7 +51979,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44301,7 +52003,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -44332,7 +52034,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44356,7 +52058,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -44387,7 +52089,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44403,6 +52105,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_inttests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_inttests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_inttests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_inttests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_inttests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_inttests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
@@ -44411,7 +52223,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -44442,7 +52254,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44458,6 +52270,116 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_inttests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_inttests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_inttests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -44466,7 +52388,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -44497,7 +52419,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44521,7 +52443,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -44552,7 +52474,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44576,7 +52498,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -44607,7 +52529,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44623,6 +52545,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
@@ -44631,7 +52663,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -44662,7 +52694,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44678,6 +52710,61 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ios_web_view_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_view_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web_view:ios_web_view_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
@@ -44686,7 +52773,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -44717,7 +52804,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44733,6 +52820,61 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "net_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "net_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://net:net_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
@@ -44741,7 +52883,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -44772,7 +52914,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44788,6 +52930,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "services_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "services_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://services:services_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "skia_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "skia_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://skia:skia_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -44796,7 +53048,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -44827,7 +53079,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44851,7 +53103,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -44882,7 +53134,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44906,7 +53158,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -44937,7 +53189,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -44953,6 +53205,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "skia_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "skia_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://skia:skia_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "skia_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "skia_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://skia:skia_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
@@ -44961,7 +53323,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -44992,7 +53354,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45008,6 +53370,61 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "skia_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "skia_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://skia:skia_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
@@ -45016,7 +53433,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -45047,7 +53464,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45063,6 +53480,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "sql_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "sql_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://sql:sql_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ui_base_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ui_base_unittests iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/base:ui_base_unittests/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
@@ -45071,7 +53598,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -45102,7 +53629,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45126,7 +53653,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -45157,7 +53684,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45181,7 +53708,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -45212,7 +53739,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45228,6 +53755,116 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ui_base_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ui_base_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/base:ui_base_unittests/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8 Plus",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ui_base_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ui_base_unittests iPhone 8 Plus 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/base:ui_base_unittests/",
+        "variant_id": "iPhone 8 Plus 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone SE (1st generation)",
           "--version",
           "15.2",
@@ -45236,7 +53873,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -45267,7 +53904,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45283,6 +53920,61 @@
       {
         "args": [
           "--platform",
+          "iPhone SE (3rd generation)",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "ui_base_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ui_base_unittests iPhone SE (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ui/base:ui_base_unittests/",
+        "variant_id": "iPhone SE (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone 6s",
           "--version",
           "15.2",
@@ -45291,7 +53983,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -45322,7 +54014,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45334,6 +54026,61 @@
         },
         "test_id_prefix": "ninja://url:url_unittests/",
         "variant_id": "iPhone 6s 15.2"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--args-json",
+          "{\"test_args\": [\"--write-compiled-tests-json-to-writable-path\"]}",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest"
+        ],
+        "isolate_name": "url_unittests",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "url_unittests iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://url:url_unittests/",
+        "variant_id": "iPhone 8 16.0"
       }
     ]
   },
@@ -45348,7 +54095,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "cronet_test",
@@ -45378,7 +54125,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45409,7 +54156,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -45439,7 +54186,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45461,7 +54208,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -45491,7 +54238,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45513,7 +54260,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -45543,7 +54290,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45565,7 +54312,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -45595,7 +54342,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45617,7 +54364,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -45647,7 +54394,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45669,7 +54416,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -45699,7 +54446,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45721,7 +54468,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -45751,7 +54498,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45773,7 +54520,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -45803,7 +54550,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45825,7 +54572,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -45855,7 +54602,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45877,7 +54624,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -45908,7 +54655,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45930,7 +54677,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -45961,7 +54708,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -45984,7 +54731,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -46015,7 +54762,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46038,7 +54785,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -46069,7 +54816,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46092,7 +54839,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -46123,7 +54870,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46145,7 +54892,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -46176,7 +54923,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46199,7 +54946,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -46229,7 +54976,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46251,7 +54998,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -46282,7 +55029,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46304,7 +55051,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -46334,7 +55081,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46356,7 +55103,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -46386,7 +55133,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46409,7 +55156,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -46439,7 +55186,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46461,7 +55208,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -46492,7 +55239,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46514,7 +55261,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -46544,7 +55291,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46566,7 +55313,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -46596,7 +55343,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46618,7 +55365,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -46649,7 +55396,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46671,7 +55418,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -46701,7 +55448,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46723,7 +55470,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -46753,7 +55500,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46775,7 +55522,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -46805,7 +55552,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46827,7 +55574,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -46857,7 +55604,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46879,7 +55626,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -46909,7 +55656,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46931,7 +55678,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -46961,7 +55708,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -46983,7 +55730,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -47013,7 +55760,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47035,7 +55782,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -47065,7 +55812,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47087,7 +55834,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -47117,7 +55864,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47145,7 +55892,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -47175,7 +55922,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47199,7 +55946,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -47229,7 +55976,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47253,7 +56000,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -47283,7 +56030,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47307,7 +56054,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -47337,7 +56084,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47361,7 +56108,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -47391,7 +56138,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47415,7 +56162,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -47445,7 +56192,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47469,7 +56216,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -47499,7 +56246,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47523,7 +56270,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -47553,7 +56300,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47577,7 +56324,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -47607,7 +56354,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47631,7 +56378,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -47661,7 +56408,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47685,7 +56432,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -47715,7 +56462,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47739,7 +56486,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -47769,7 +56516,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47793,7 +56540,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -47823,7 +56570,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47847,7 +56594,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -47877,7 +56624,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47901,7 +56648,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -47931,7 +56678,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -47955,7 +56702,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -47985,7 +56732,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48009,7 +56756,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -48039,7 +56786,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48063,7 +56810,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -48093,7 +56840,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48117,7 +56864,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48148,7 +56895,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48172,7 +56919,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48203,7 +56950,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48227,7 +56974,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48258,7 +57005,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48283,7 +57030,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48314,7 +57061,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48339,7 +57086,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48370,7 +57117,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48395,7 +57142,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48426,7 +57173,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48451,7 +57198,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48482,7 +57229,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48507,7 +57254,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48538,7 +57285,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48563,7 +57310,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48594,7 +57341,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48618,7 +57365,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48649,7 +57396,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48673,7 +57420,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48704,7 +57451,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48729,7 +57476,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48760,7 +57507,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48785,7 +57532,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -48815,7 +57562,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48839,7 +57586,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -48869,7 +57616,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48893,7 +57640,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48924,7 +57671,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -48948,7 +57695,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -48979,7 +57726,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49003,7 +57750,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -49033,7 +57780,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49057,7 +57804,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -49087,7 +57834,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49111,7 +57858,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -49141,7 +57888,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49166,7 +57913,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -49196,7 +57943,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49221,7 +57968,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -49251,7 +57998,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49275,7 +58022,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -49305,7 +58052,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49329,7 +58076,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -49360,7 +58107,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49384,7 +58131,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -49415,7 +58162,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49439,7 +58186,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -49469,7 +58216,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49493,7 +58240,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -49523,7 +58270,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49547,7 +58294,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -49577,7 +58324,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49601,7 +58348,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -49631,7 +58378,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49655,7 +58402,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -49686,7 +58433,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49710,7 +58457,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -49741,7 +58488,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49765,7 +58512,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -49795,7 +58542,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49819,7 +58566,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -49849,7 +58596,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49873,7 +58620,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -49903,7 +58650,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49927,7 +58674,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -49957,7 +58704,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -49981,7 +58728,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -50011,7 +58758,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50035,7 +58782,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -50065,7 +58812,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50089,7 +58836,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -50119,7 +58866,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50143,7 +58890,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -50173,7 +58920,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50197,7 +58944,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -50227,7 +58974,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50251,7 +58998,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -50281,7 +59028,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50305,7 +59052,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -50335,7 +59082,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50359,7 +59106,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -50389,7 +59136,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50413,7 +59160,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -50443,7 +59190,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50467,7 +59214,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -50497,7 +59244,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50521,7 +59268,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -50551,7 +59298,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50575,7 +59322,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -50605,7 +59352,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50629,7 +59376,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -50659,7 +59406,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50683,7 +59430,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -50713,7 +59460,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50742,7 +59489,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -50772,7 +59519,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50794,7 +59541,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -50824,7 +59571,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50846,7 +59593,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -50876,7 +59623,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50898,7 +59645,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -50928,7 +59675,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -50950,7 +59697,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -50980,7 +59727,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51002,7 +59749,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -51032,7 +59779,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51054,7 +59801,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -51084,7 +59831,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51106,7 +59853,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -51136,7 +59883,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51158,7 +59905,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -51188,7 +59935,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51210,7 +59957,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -51240,7 +59987,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51262,7 +60009,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -51292,7 +60039,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51314,7 +60061,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -51344,7 +60091,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51366,7 +60113,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -51396,7 +60143,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51418,7 +60165,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -51448,7 +60195,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51470,7 +60217,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -51500,7 +60247,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51522,7 +60269,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -51552,7 +60299,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51574,7 +60321,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -51604,7 +60351,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51626,7 +60373,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -51656,7 +60403,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51678,7 +60425,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -51708,7 +60455,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51730,7 +60477,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -51760,7 +60507,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51782,7 +60529,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -51812,7 +60559,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51834,7 +60581,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -51864,7 +60611,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51886,7 +60633,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -51916,7 +60663,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51938,7 +60685,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -51968,7 +60715,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -51990,7 +60737,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -52020,7 +60767,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52042,7 +60789,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -52072,7 +60819,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52094,7 +60841,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -52124,7 +60871,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52146,7 +60893,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -52176,7 +60923,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52198,7 +60945,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -52228,7 +60975,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52250,7 +60997,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -52280,7 +61027,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52302,7 +61049,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -52332,7 +61079,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52354,7 +61101,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -52384,7 +61131,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52406,7 +61153,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -52436,7 +61183,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52458,7 +61205,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -52488,7 +61235,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52510,7 +61257,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -52540,7 +61287,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52562,7 +61309,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -52592,7 +61339,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52614,7 +61361,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -52645,7 +61392,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52667,7 +61414,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -52698,7 +61445,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52720,7 +61467,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -52751,7 +61498,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52773,7 +61520,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -52804,7 +61551,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52826,7 +61573,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -52857,7 +61604,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52879,7 +61626,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -52910,7 +61657,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52932,7 +61679,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -52963,7 +61710,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -52986,7 +61733,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53017,7 +61764,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53040,7 +61787,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53071,7 +61818,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53094,7 +61841,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53125,7 +61872,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53148,7 +61895,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53179,7 +61926,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53202,7 +61949,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53233,7 +61980,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53256,7 +62003,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53287,7 +62034,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53310,7 +62057,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53341,7 +62088,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53364,7 +62111,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53395,7 +62142,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53418,7 +62165,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53449,7 +62196,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53472,7 +62219,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53503,7 +62250,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53526,7 +62273,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53557,7 +62304,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53580,7 +62327,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53611,7 +62358,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53634,7 +62381,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53665,7 +62412,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53688,7 +62435,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53719,7 +62466,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53742,7 +62489,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53773,7 +62520,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53796,7 +62543,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53827,7 +62574,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53850,7 +62597,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53881,7 +62628,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53904,7 +62651,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53935,7 +62682,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -53957,7 +62704,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -53988,7 +62735,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54010,7 +62757,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -54041,7 +62788,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54063,7 +62810,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -54094,7 +62841,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54116,7 +62863,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -54147,7 +62894,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54169,7 +62916,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -54200,7 +62947,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54222,7 +62969,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -54253,7 +63000,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54276,7 +63023,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -54307,7 +63054,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54330,7 +63077,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -54361,7 +63108,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54384,7 +63131,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -54415,7 +63162,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54438,7 +63185,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -54469,7 +63216,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54492,7 +63239,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -54523,7 +63270,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54546,7 +63293,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -54576,7 +63323,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54598,7 +63345,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -54628,7 +63375,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54650,7 +63397,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -54680,7 +63427,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54702,7 +63449,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -54732,7 +63479,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54754,7 +63501,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -54784,7 +63531,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54806,7 +63553,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -54836,7 +63583,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54858,7 +63605,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -54888,7 +63635,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54910,7 +63657,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -54940,7 +63687,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -54962,7 +63709,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -54993,7 +63740,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55015,7 +63762,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -55046,7 +63793,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55068,7 +63815,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -55099,7 +63846,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55121,7 +63868,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -55152,7 +63899,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55174,7 +63921,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -55205,7 +63952,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55227,7 +63974,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -55258,7 +64005,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55280,7 +64027,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -55310,7 +64057,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55332,7 +64079,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -55362,7 +64109,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55384,7 +64131,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -55414,7 +64161,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55437,7 +64184,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -55467,7 +64214,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55490,7 +64237,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -55520,7 +64267,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55542,7 +64289,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -55572,7 +64319,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55594,7 +64341,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -55625,7 +64372,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55647,7 +64394,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -55678,7 +64425,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55700,7 +64447,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -55731,7 +64478,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55753,7 +64500,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -55784,7 +64531,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55806,7 +64553,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -55837,7 +64584,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55859,7 +64606,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -55890,7 +64637,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55912,7 +64659,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -55943,7 +64690,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -55965,7 +64712,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -55996,7 +64743,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56018,7 +64765,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -56048,7 +64795,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56070,7 +64817,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -56100,7 +64847,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56122,7 +64869,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -56152,7 +64899,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56174,7 +64921,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -56204,7 +64951,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56226,7 +64973,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -56256,7 +65003,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56278,7 +65025,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -56308,7 +65055,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56330,7 +65077,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -56360,7 +65107,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56382,7 +65129,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -56412,7 +65159,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56434,7 +65181,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -56464,7 +65211,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56486,7 +65233,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -56516,7 +65263,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56538,7 +65285,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -56569,7 +65316,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56591,7 +65338,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -56622,7 +65369,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56644,7 +65391,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -56675,7 +65422,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56697,7 +65444,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -56728,7 +65475,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56750,7 +65497,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -56781,7 +65528,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56803,7 +65550,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -56834,7 +65581,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56856,7 +65603,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -56886,7 +65633,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56908,7 +65655,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -56938,7 +65685,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -56960,7 +65707,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -56990,7 +65737,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57012,7 +65759,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -57042,7 +65789,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57064,7 +65811,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -57094,7 +65841,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57116,7 +65863,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -57146,7 +65893,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57168,7 +65915,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -57198,7 +65945,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57220,7 +65967,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -57250,7 +65997,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57272,7 +66019,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -57302,7 +66049,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57324,7 +66071,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -57354,7 +66101,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57376,7 +66123,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -57406,7 +66153,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57428,7 +66175,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -57458,7 +66205,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57480,7 +66227,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -57510,7 +66257,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57532,7 +66279,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -57562,7 +66309,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57584,7 +66331,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -57614,7 +66361,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57636,7 +66383,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -57666,7 +66413,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57688,7 +66435,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -57718,7 +66465,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57740,7 +66487,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -57770,7 +66517,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57792,7 +66539,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -57822,7 +66569,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57844,7 +66591,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -57874,7 +66621,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57896,7 +66643,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -57926,7 +66673,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -57948,7 +66695,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -57978,7 +66725,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58000,7 +66747,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -58030,7 +66777,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58052,7 +66799,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -58082,7 +66829,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58104,7 +66851,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -58134,7 +66881,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58156,7 +66903,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -58186,7 +66933,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58208,7 +66955,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -58238,7 +66985,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58260,7 +67007,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -58290,7 +67037,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58312,7 +67059,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -58342,7 +67089,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58364,7 +67111,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -58394,7 +67141,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58416,7 +67163,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -58446,7 +67193,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58468,7 +67215,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -58498,7 +67245,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58520,7 +67267,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -58550,7 +67297,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58572,7 +67319,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -58602,7 +67349,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58624,7 +67371,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -58654,7 +67401,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58676,7 +67423,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -58706,7 +67453,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58728,7 +67475,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -58758,7 +67505,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58780,7 +67527,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -58810,7 +67557,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58832,7 +67579,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -58862,7 +67609,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58884,7 +67631,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -58914,7 +67661,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58936,7 +67683,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -58966,7 +67713,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -58988,7 +67735,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -59018,7 +67765,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59040,7 +67787,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -59070,7 +67817,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59092,7 +67839,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -59122,7 +67869,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59144,7 +67891,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -59174,7 +67921,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59196,7 +67943,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -59226,7 +67973,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59248,7 +67995,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -59278,7 +68025,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59300,7 +68047,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -59330,7 +68077,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59364,7 +68111,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -59394,7 +68141,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59416,7 +68163,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -59446,7 +68193,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59468,7 +68215,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -59498,7 +68245,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59520,7 +68267,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -59550,7 +68297,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59572,7 +68319,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -59602,7 +68349,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59624,7 +68371,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -59654,7 +68401,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59676,7 +68423,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -59706,7 +68453,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59728,7 +68475,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -59758,7 +68505,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59780,7 +68527,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -59810,7 +68557,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59832,7 +68579,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -59862,7 +68609,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59884,7 +68631,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -59914,7 +68661,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59936,7 +68683,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -59966,7 +68713,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -59988,7 +68735,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -60018,7 +68765,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60040,7 +68787,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -60070,7 +68817,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60092,7 +68839,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -60122,7 +68869,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60144,7 +68891,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -60174,7 +68921,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60196,7 +68943,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -60226,7 +68973,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60248,7 +68995,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -60278,7 +69025,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60300,7 +69047,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -60330,7 +69077,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60352,7 +69099,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -60382,7 +69129,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60404,7 +69151,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -60434,7 +69181,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60456,7 +69203,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -60486,7 +69233,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60508,7 +69255,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -60538,7 +69285,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60560,7 +69307,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -60590,7 +69337,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60612,7 +69359,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -60642,7 +69389,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60664,7 +69411,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -60694,7 +69441,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60716,7 +69463,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -60746,7 +69493,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60768,7 +69515,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -60798,7 +69545,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60820,7 +69567,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -60850,7 +69597,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60872,7 +69619,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -60902,7 +69649,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60924,7 +69671,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -60954,7 +69701,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -60976,7 +69723,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -61006,7 +69753,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61028,7 +69775,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -61058,7 +69805,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61080,7 +69827,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -61110,7 +69857,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61132,7 +69879,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -61162,7 +69909,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61184,7 +69931,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -61214,7 +69961,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61236,7 +69983,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61267,7 +70014,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61289,7 +70036,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61320,7 +70067,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61342,7 +70089,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61373,7 +70120,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61395,7 +70142,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61426,7 +70173,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61448,7 +70195,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61479,7 +70226,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61501,7 +70248,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61532,7 +70279,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61554,7 +70301,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61585,7 +70332,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61608,7 +70355,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61639,7 +70386,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61662,7 +70409,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61693,7 +70440,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61716,7 +70463,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61747,7 +70494,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61770,7 +70517,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61801,7 +70548,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61824,7 +70571,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61855,7 +70602,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61878,7 +70625,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61909,7 +70656,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61932,7 +70679,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -61963,7 +70710,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -61986,7 +70733,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62017,7 +70764,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62040,7 +70787,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62071,7 +70818,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62094,7 +70841,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62125,7 +70872,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62148,7 +70895,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62179,7 +70926,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62202,7 +70949,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62233,7 +70980,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62256,7 +71003,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62287,7 +71034,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62310,7 +71057,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62341,7 +71088,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62364,7 +71111,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62395,7 +71142,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62418,7 +71165,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62449,7 +71196,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62472,7 +71219,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62503,7 +71250,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62526,7 +71273,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62557,7 +71304,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62579,7 +71326,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62610,7 +71357,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62632,7 +71379,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62663,7 +71410,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62685,7 +71432,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62716,7 +71463,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62738,7 +71485,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62769,7 +71516,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62791,7 +71538,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62822,7 +71569,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62844,7 +71591,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62875,7 +71622,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62898,7 +71645,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62929,7 +71676,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -62952,7 +71699,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -62983,7 +71730,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63006,7 +71753,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -63037,7 +71784,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63060,7 +71807,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -63091,7 +71838,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63114,7 +71861,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -63145,7 +71892,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63168,7 +71915,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -63198,7 +71945,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63220,7 +71967,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -63250,7 +71997,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63272,7 +72019,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -63302,7 +72049,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63324,7 +72071,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -63354,7 +72101,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63376,7 +72123,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -63406,7 +72153,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63428,7 +72175,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -63458,7 +72205,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63480,7 +72227,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -63510,7 +72257,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63532,7 +72279,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -63562,7 +72309,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63584,7 +72331,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -63615,7 +72362,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63637,7 +72384,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -63668,7 +72415,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63690,7 +72437,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -63721,7 +72468,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63743,7 +72490,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -63774,7 +72521,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63796,7 +72543,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -63827,7 +72574,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63849,7 +72596,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -63880,7 +72627,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63902,7 +72649,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -63932,7 +72679,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -63954,7 +72701,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -63984,7 +72731,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64006,7 +72753,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -64036,7 +72783,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64059,7 +72806,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -64089,7 +72836,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64112,7 +72859,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -64142,7 +72889,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64164,7 +72911,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -64194,7 +72941,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64216,7 +72963,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -64247,7 +72994,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64269,7 +73016,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -64300,7 +73047,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64322,7 +73069,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -64353,7 +73100,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64375,7 +73122,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -64406,7 +73153,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64428,7 +73175,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -64459,7 +73206,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64481,7 +73228,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -64512,7 +73259,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64534,7 +73281,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -64564,7 +73311,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64586,7 +73333,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -64616,7 +73363,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64638,7 +73385,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -64668,7 +73415,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64690,7 +73437,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -64720,7 +73467,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64742,7 +73489,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -64772,7 +73519,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64794,7 +73541,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -64824,7 +73571,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64846,7 +73593,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -64876,7 +73623,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64898,7 +73645,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -64928,7 +73675,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -64950,7 +73697,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -64980,7 +73727,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65002,7 +73749,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -65032,7 +73779,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65054,7 +73801,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -65085,7 +73832,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65107,7 +73854,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -65138,7 +73885,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65160,7 +73907,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -65191,7 +73938,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65213,7 +73960,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -65244,7 +73991,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65266,7 +74013,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -65297,7 +74044,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65319,7 +74066,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -65350,7 +74097,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65372,7 +74119,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -65402,7 +74149,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65424,7 +74171,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -65454,7 +74201,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65476,7 +74223,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -65506,7 +74253,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65528,7 +74275,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -65558,7 +74305,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65580,7 +74327,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -65610,7 +74357,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65632,7 +74379,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -65662,7 +74409,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65684,7 +74431,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -65714,7 +74461,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65736,7 +74483,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -65766,7 +74513,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65788,7 +74535,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -65818,7 +74565,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65840,7 +74587,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -65870,7 +74617,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65892,7 +74639,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -65922,7 +74669,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65944,7 +74691,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -65974,7 +74721,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -65996,7 +74743,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -66026,7 +74773,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66048,7 +74795,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -66078,7 +74825,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66100,7 +74847,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -66130,7 +74877,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66152,7 +74899,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -66182,7 +74929,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66204,7 +74951,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -66234,7 +74981,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66256,7 +75003,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -66286,7 +75033,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66308,7 +75055,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -66338,7 +75085,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66360,7 +75107,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -66390,7 +75137,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66412,7 +75159,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -66442,7 +75189,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66464,7 +75211,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -66494,7 +75241,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66516,7 +75263,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -66546,7 +75293,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66568,7 +75315,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -66598,7 +75345,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66620,7 +75367,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -66650,7 +75397,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66672,7 +75419,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -66702,7 +75449,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66724,7 +75471,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -66754,7 +75501,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66776,7 +75523,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -66806,7 +75553,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66828,7 +75575,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -66858,7 +75605,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66880,7 +75627,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -66910,7 +75657,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66932,7 +75679,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -66962,7 +75709,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -66984,7 +75731,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -67014,7 +75761,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67036,7 +75783,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -67066,7 +75813,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67088,7 +75835,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -67118,7 +75865,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67140,7 +75887,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -67170,7 +75917,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67192,7 +75939,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -67222,7 +75969,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67244,7 +75991,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -67274,7 +76021,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67296,7 +76043,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -67326,7 +76073,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67348,7 +76095,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -67378,7 +76125,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67400,7 +76147,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -67430,7 +76177,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67452,7 +76199,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -67482,7 +76229,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67504,7 +76251,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -67534,7 +76281,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67556,7 +76303,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -67586,7 +76333,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67608,7 +76355,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -67638,7 +76385,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67660,7 +76407,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -67690,7 +76437,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67712,7 +76459,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -67742,7 +76489,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67764,7 +76511,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -67794,7 +76541,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -67816,7 +76563,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13f17a",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -67846,7 +76593,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13f17a",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
diff --git a/testing/buildbot/chromium.mac.json b/testing/buildbot/chromium.mac.json
index 33700cd..0657eea 100644
--- a/testing/buildbot/chromium.mac.json
+++ b/testing/buildbot/chromium.mac.json
@@ -10979,7 +10979,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -11010,7 +11010,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11032,7 +11032,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -11063,7 +11063,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11085,7 +11085,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -11116,7 +11116,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11138,7 +11138,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -11169,7 +11169,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11191,7 +11191,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -11222,7 +11222,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11244,7 +11244,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -11275,7 +11275,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11297,7 +11297,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -11328,7 +11328,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11350,7 +11350,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -11381,7 +11381,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11403,7 +11403,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -11434,7 +11434,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11456,7 +11456,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -11487,7 +11487,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11509,7 +11509,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -11540,7 +11540,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11562,7 +11562,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -11593,7 +11593,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11615,7 +11615,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -11646,7 +11646,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11668,7 +11668,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -11699,7 +11699,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11721,7 +11721,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -11752,7 +11752,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11774,7 +11774,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -11805,7 +11805,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11827,7 +11827,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -11858,7 +11858,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11880,7 +11880,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -11911,7 +11911,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11933,7 +11933,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -11965,7 +11965,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -11988,7 +11988,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -12020,7 +12020,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12043,7 +12043,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -12075,7 +12075,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12098,7 +12098,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -12129,7 +12129,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12151,7 +12151,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -12182,7 +12182,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12204,7 +12204,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -12235,7 +12235,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12257,7 +12257,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -12288,7 +12288,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12310,7 +12310,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -12341,7 +12341,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12363,7 +12363,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -12394,7 +12394,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12417,7 +12417,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -12448,7 +12448,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12470,7 +12470,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -12501,7 +12501,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12523,7 +12523,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -12554,7 +12554,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12576,7 +12576,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -12607,7 +12607,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12629,7 +12629,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -12660,7 +12660,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12682,7 +12682,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -12713,7 +12713,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12735,7 +12735,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -12767,7 +12767,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12789,7 +12789,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -12820,7 +12820,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12842,7 +12842,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -12873,7 +12873,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12895,7 +12895,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -12926,7 +12926,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -12948,7 +12948,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -12979,7 +12979,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13001,7 +13001,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -13032,7 +13032,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13054,7 +13054,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -13085,7 +13085,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13107,7 +13107,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -13138,7 +13138,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13160,7 +13160,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -13191,7 +13191,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13213,7 +13213,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -13244,7 +13244,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13266,7 +13266,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -13297,7 +13297,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13319,7 +13319,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -13350,7 +13350,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13372,7 +13372,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -13403,7 +13403,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13425,7 +13425,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -13456,7 +13456,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13478,7 +13478,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -13509,7 +13509,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13531,7 +13531,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -13562,7 +13562,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13584,7 +13584,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -13615,7 +13615,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13637,7 +13637,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -13668,7 +13668,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13690,7 +13690,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -13721,7 +13721,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13743,7 +13743,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -13774,7 +13774,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13796,7 +13796,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -13827,7 +13827,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13849,7 +13849,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -13880,7 +13880,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13902,7 +13902,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -13933,7 +13933,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -13955,7 +13955,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -13986,7 +13986,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14008,7 +14008,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -14039,7 +14039,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14062,13 +14062,67 @@
       {
         "args": [
           "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_bookmarks_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_bookmarks_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_bookmarks_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14100,7 +14154,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14122,7 +14176,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14154,7 +14208,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14170,13 +14224,67 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_bookmarks_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_bookmarks_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_bookmarks_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14208,7 +14316,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14224,13 +14332,122 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_bookmarks_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_bookmarks_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_bookmarks_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_integration_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_integration_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 8
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_integration_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14262,7 +14479,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14285,7 +14502,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14317,7 +14534,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14334,13 +14551,123 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_integration_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_integration_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 8
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_integration_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_settings_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_settings_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_settings_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14372,7 +14699,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14395,7 +14722,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14427,7 +14754,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14444,13 +14771,68 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_settings_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_settings_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_settings_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14482,7 +14864,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14499,13 +14881,123 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_settings_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_settings_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_settings_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_signin_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_signin_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 10
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_signin_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14537,7 +15029,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14560,7 +15052,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14592,7 +15084,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14609,13 +15101,122 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_signin_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_signin_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 10
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_signin_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_smoke_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_smoke_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_smoke_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14647,7 +15248,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14669,7 +15270,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14701,7 +15302,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14717,13 +15318,67 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_smoke_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_smoke_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_smoke_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14755,7 +15410,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14771,13 +15426,122 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_smoke_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_smoke_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_smoke_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_ui_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_ui_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 12
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_ui_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14809,7 +15573,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14832,7 +15596,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14864,7 +15628,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14881,13 +15645,122 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_ui_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_ui_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 12
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_ui_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_web_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_web_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_web_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14919,7 +15792,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14941,7 +15814,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -14973,7 +15846,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -14989,13 +15862,67 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_web_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_web_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_web_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -15027,7 +15954,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15043,13 +15970,121 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_chrome_web_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_chrome_web_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/chrome/test/earl_grey2:ios_chrome_web_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_showcase_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_showcase_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/showcase:ios_showcase_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -15081,7 +16116,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15103,7 +16138,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -15135,7 +16170,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15151,13 +16186,67 @@
       {
         "args": [
           "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_showcase_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_showcase_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/showcase:ios_showcase_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPhone X",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -15189,7 +16278,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15205,13 +16294,121 @@
       {
         "args": [
           "--platform",
+          "iPhone X",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_showcase_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_showcase_eg2tests_module iPhone X 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/showcase:ios_showcase_eg2tests_module/",
+        "variant_id": "iPhone X 16.0"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPad Air (3rd generation)",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_web_shell_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_shell_eg2tests_module iPad Air (3rd generation) 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web/shell/test:ios_web_shell_eg2tests_module/",
+        "variant_id": "iPad Air (3rd generation) 16.0"
+      },
+      {
+        "args": [
+          "--platform",
           "iPad Air 2",
           "--version",
           "15.2",
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -15243,7 +16440,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15265,7 +16462,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -15297,7 +16494,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15309,6 +16506,60 @@
         },
         "test_id_prefix": "ninja://ios/web/shell/test:ios_web_shell_eg2tests_module/",
         "variant_id": "iPhone 7 15.2"
+      },
+      {
+        "args": [
+          "--platform",
+          "iPhone 8",
+          "--version",
+          "16.0",
+          "--out-dir",
+          "${ISOLATED_OUTDIR}",
+          "--xcode-build-version",
+          "14a5284g",
+          "--xctest",
+          "--xcode-parallelization"
+        ],
+        "isolate_name": "ios_web_shell_eg2tests_module",
+        "isolate_profile_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "ios_web_shell_eg2tests_module iPhone 8 16.0",
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/mac_toolchain/${platform}",
+              "location": ".",
+              "revision": "git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "os": "Mac-12"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "xcode_ios_14a5284g",
+              "path": "Xcode.app"
+            },
+            {
+              "name": "runtime_ios_16_0",
+              "path": "Runtime-ios-16.0"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test_id_prefix": "ninja://ios/web/shell/test:ios_web_shell_eg2tests_module/",
+        "variant_id": "iPhone 8 16.0"
       }
     ]
   },
@@ -15326,7 +16577,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -15356,7 +16607,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15378,7 +16629,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -15408,7 +16659,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15430,7 +16681,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -15460,7 +16711,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15482,7 +16733,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -15512,7 +16763,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15534,7 +16785,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -15564,7 +16815,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15586,7 +16837,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -15616,7 +16867,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15638,7 +16889,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -15668,7 +16919,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15690,7 +16941,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -15720,7 +16971,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15742,7 +16993,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -15772,7 +17023,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15794,7 +17045,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -15824,7 +17075,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15846,7 +17097,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -15876,7 +17127,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15898,7 +17149,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -15928,7 +17179,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -15950,7 +17201,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -15980,7 +17231,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16002,7 +17253,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -16032,7 +17283,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16054,7 +17305,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -16084,7 +17335,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16106,7 +17357,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -16136,7 +17387,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16158,7 +17409,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -16188,7 +17439,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16210,7 +17461,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -16240,7 +17491,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16262,7 +17513,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16293,7 +17544,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16315,7 +17566,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16346,7 +17597,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16368,7 +17619,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16399,7 +17650,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16421,7 +17672,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16452,7 +17703,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16474,7 +17725,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16505,7 +17756,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16528,7 +17779,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16559,7 +17810,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16582,7 +17833,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16613,7 +17864,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16636,7 +17887,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16667,7 +17918,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16690,7 +17941,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16721,7 +17972,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16744,7 +17995,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16775,7 +18026,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16798,7 +18049,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16829,7 +18080,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16852,7 +18103,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16883,7 +18134,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16906,7 +18157,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16937,7 +18188,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -16960,7 +18211,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -16991,7 +18242,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17014,7 +18265,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17045,7 +18296,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17068,7 +18319,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17099,7 +18350,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17122,7 +18373,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17153,7 +18404,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17176,7 +18427,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17207,7 +18458,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17230,7 +18481,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17261,7 +18512,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17283,7 +18534,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17314,7 +18565,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17336,7 +18587,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17367,7 +18618,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17389,7 +18640,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17420,7 +18671,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17442,7 +18693,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17473,7 +18724,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17496,7 +18747,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17527,7 +18778,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17550,7 +18801,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17581,7 +18832,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17604,7 +18855,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17635,7 +18886,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17658,7 +18909,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17689,7 +18940,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17712,7 +18963,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -17742,7 +18993,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17764,7 +19015,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -17794,7 +19045,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17816,7 +19067,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -17846,7 +19097,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17868,7 +19119,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -17898,7 +19149,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17920,7 +19171,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -17951,7 +19202,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17973,7 +19224,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -18004,7 +19255,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18026,7 +19277,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -18057,7 +19308,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18079,7 +19330,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -18110,7 +19361,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18132,7 +19383,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -18162,7 +19413,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18184,7 +19435,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -18215,7 +19466,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18237,7 +19488,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -18268,7 +19519,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18290,7 +19541,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -18320,7 +19571,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18343,7 +19594,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -18373,7 +19624,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18395,7 +19646,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -18426,7 +19677,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18448,7 +19699,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -18479,7 +19730,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18501,7 +19752,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -18532,7 +19783,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18554,7 +19805,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -18585,7 +19836,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18607,7 +19858,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -18637,7 +19888,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18659,7 +19910,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -18689,7 +19940,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18711,7 +19962,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -18741,7 +19992,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18763,7 +20014,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -18793,7 +20044,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18815,7 +20066,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -18845,7 +20096,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18867,7 +20118,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -18898,7 +20149,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18920,7 +20171,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -18951,7 +20202,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18973,7 +20224,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -19004,7 +20255,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19026,7 +20277,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -19057,7 +20308,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19079,7 +20330,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest",
           "--xcode-parallelization"
         ],
@@ -19110,7 +20361,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19132,7 +20383,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -19162,7 +20413,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19184,7 +20435,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -19214,7 +20465,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19236,7 +20487,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -19266,7 +20517,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19288,7 +20539,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -19318,7 +20569,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19340,7 +20591,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -19370,7 +20621,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19392,7 +20643,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -19422,7 +20673,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19444,7 +20695,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -19474,7 +20725,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19496,7 +20747,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -19526,7 +20777,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19548,7 +20799,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -19578,7 +20829,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19600,7 +20851,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -19630,7 +20881,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19652,7 +20903,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -19682,7 +20933,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19704,7 +20955,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -19734,7 +20985,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19756,7 +21007,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -19786,7 +21037,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19808,7 +21059,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -19838,7 +21089,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19860,7 +21111,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -19890,7 +21141,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19912,7 +21163,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -19942,7 +21193,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19964,7 +21215,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -19994,7 +21245,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -20016,7 +21267,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -20046,7 +21297,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -20068,7 +21319,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -20098,7 +21349,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -20120,7 +21371,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -20150,7 +21401,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -20172,7 +21423,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -20202,7 +21453,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -20224,7 +21475,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -20254,7 +21505,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -20276,7 +21527,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -20306,7 +21557,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -20328,7 +21579,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -20358,7 +21609,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json
index d3f45c9..67bd86d9 100644
--- a/testing/buildbot/chromium.memory.json
+++ b/testing/buildbot/chromium.memory.json
@@ -17530,7 +17530,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -17560,7 +17560,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17582,7 +17582,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "absl_hardening_tests",
@@ -17612,7 +17612,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17634,7 +17634,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -17664,7 +17664,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17686,7 +17686,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "base_unittests",
@@ -17716,7 +17716,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17738,7 +17738,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -17768,7 +17768,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17790,7 +17790,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_crypto_tests",
@@ -17820,7 +17820,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17842,7 +17842,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -17872,7 +17872,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17894,7 +17894,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "boringssl_ssl_tests",
@@ -17924,7 +17924,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17946,7 +17946,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -17976,7 +17976,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -17998,7 +17998,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "components_unittests",
@@ -18028,7 +18028,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18050,7 +18050,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -18080,7 +18080,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18102,7 +18102,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crashpad_tests",
@@ -18132,7 +18132,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18154,7 +18154,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -18184,7 +18184,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18206,7 +18206,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "crypto_unittests",
@@ -18236,7 +18236,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18258,7 +18258,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -18288,7 +18288,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18310,7 +18310,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "gfx_unittests",
@@ -18340,7 +18340,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18362,7 +18362,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -18392,7 +18392,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18414,7 +18414,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "google_apis_unittests",
@@ -18444,7 +18444,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18466,7 +18466,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -18496,7 +18496,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18518,7 +18518,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_chrome_unittests",
@@ -18548,7 +18548,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18570,7 +18570,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -18600,7 +18600,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18622,7 +18622,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_components_unittests",
@@ -18652,7 +18652,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18674,7 +18674,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -18704,7 +18704,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18727,7 +18727,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_net_unittests",
@@ -18757,7 +18757,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18780,7 +18780,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -18810,7 +18810,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18832,7 +18832,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -18862,7 +18862,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18884,7 +18884,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -18914,7 +18914,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18936,7 +18936,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_testing_unittests",
@@ -18966,7 +18966,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -18988,7 +18988,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -19018,7 +19018,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19040,7 +19040,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_inttests",
@@ -19070,7 +19070,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19092,7 +19092,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -19122,7 +19122,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19144,7 +19144,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_unittests",
@@ -19174,7 +19174,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19196,7 +19196,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -19226,7 +19226,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19248,7 +19248,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_inttests",
@@ -19278,7 +19278,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19300,7 +19300,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -19330,7 +19330,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19352,7 +19352,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_web_view_unittests",
@@ -19382,7 +19382,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19404,7 +19404,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -19434,7 +19434,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19456,7 +19456,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "net_unittests",
@@ -19486,7 +19486,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19508,7 +19508,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -19538,7 +19538,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19560,7 +19560,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "services_unittests",
@@ -19590,7 +19590,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19612,7 +19612,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -19642,7 +19642,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19664,7 +19664,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "skia_unittests",
@@ -19694,7 +19694,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19716,7 +19716,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -19746,7 +19746,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19768,7 +19768,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "sql_unittests",
@@ -19798,7 +19798,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19820,7 +19820,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -19850,7 +19850,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19872,7 +19872,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ui_base_unittests",
@@ -19902,7 +19902,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19924,7 +19924,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -19954,7 +19954,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -19976,7 +19976,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "url_unittests",
@@ -20006,7 +20006,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
diff --git a/testing/buildbot/chromium.webrtc.fyi.json b/testing/buildbot/chromium.webrtc.fyi.json
index f4ca913..03b09bc 100644
--- a/testing/buildbot/chromium.webrtc.fyi.json
+++ b/testing/buildbot/chromium.webrtc.fyi.json
@@ -571,7 +571,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -601,7 +601,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
@@ -623,7 +623,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "13c100",
+          "14a5284g",
           "--xctest"
         ],
         "isolate_name": "ios_remoting_unittests",
@@ -653,7 +653,7 @@
           ],
           "named_caches": [
             {
-              "name": "xcode_ios_13c100",
+              "name": "xcode_ios_14a5284g",
               "path": "Xcode.app"
             },
             {
diff --git a/testing/buildbot/generate_buildbot_json.py b/testing/buildbot/generate_buildbot_json.py
index ba7d19a..cff54c5 100755
--- a/testing/buildbot/generate_buildbot_json.py
+++ b/testing/buildbot/generate_buildbot_json.py
@@ -80,9 +80,10 @@
 
 
 class GPUTelemetryTestGenerator(BaseGenerator):
-  def __init__(self, bb_gen, is_android_webview=False):
+  def __init__(self, bb_gen, is_android_webview=False, is_cast_streaming=False):
     super(GPUTelemetryTestGenerator, self).__init__(bb_gen)
     self._is_android_webview = is_android_webview
+    self._is_cast_streaming = is_cast_streaming
 
   def generate(self, waterfall, tester_name, tester_config, input_tests):
     isolated_scripts = []
@@ -96,7 +97,8 @@
         test = self.bb_gen.generate_gpu_telemetry_test(waterfall, tester_name,
                                                        tester_config, test_name,
                                                        config,
-                                                       self._is_android_webview)
+                                                       self._is_android_webview,
+                                                       self._is_cast_streaming)
         if test:
           isolated_scripts.append(test)
 
@@ -944,7 +946,8 @@
     return [string.Template(arg).safe_substitute(substitutions) for arg in args]
 
   def generate_gpu_telemetry_test(self, waterfall, tester_name, tester_config,
-                                  test_name, test_config, is_android_webview):
+                                  test_name, test_config, is_android_webview,
+                                  is_cast_streaming):
     # These are all just specializations of isolated script tests with
     # a bunch of boilerplate command line arguments added.
 
@@ -1003,8 +1006,13 @@
     # queue.
     result['should_retry_with_patch'] = False
 
-    browser = ('android-webview-instrumentation'
-               if is_android_webview else tester_config['browser_config'])
+    browser = ''
+    if is_cast_streaming:
+      browser = 'cast-streaming-shell'
+    elif is_android_webview:
+      browser = 'android-webview-instrumentation'
+    else:
+      browser = tester_config['browser_config']
 
     # Most platforms require --enable-logging=stderr to get useful browser logs.
     # However, this actively messes with logging on CrOS (because Chrome's
@@ -1043,19 +1051,21 @@
   def get_test_generator_map(self):
     return {
         'android_webview_gpu_telemetry_tests':
-            GPUTelemetryTestGenerator(self, is_android_webview=True),
+        GPUTelemetryTestGenerator(self, is_android_webview=True),
+        'cast_streaming_tests':
+        GPUTelemetryTestGenerator(self, is_cast_streaming=True),
         'gpu_telemetry_tests':
-            GPUTelemetryTestGenerator(self),
+        GPUTelemetryTestGenerator(self),
         'gtest_tests':
-            GTestGenerator(self),
+        GTestGenerator(self),
         'isolated_scripts':
-            IsolatedScriptTestGenerator(self),
+        IsolatedScriptTestGenerator(self),
         'junit_tests':
-            JUnitGenerator(self),
+        JUnitGenerator(self),
         'scripts':
-            ScriptGenerator(self),
+        ScriptGenerator(self),
         'skylab_tests':
-            SkylabGenerator(self),
+        SkylabGenerator(self),
     }
 
   def get_test_type_remapper(self):
diff --git a/testing/buildbot/generate_buildbot_json_unittest.py b/testing/buildbot/generate_buildbot_json_unittest.py
index af0195d..46ff340 100755
--- a/testing/buildbot/generate_buildbot_json_unittest.py
+++ b/testing/buildbot/generate_buildbot_json_unittest.py
@@ -435,6 +435,32 @@
 ]
 """
 
+FOO_GPU_TELEMETRY_TEST_WATERFALL_CAST_STREAMING = """\
+[
+  {
+    'project': 'chromium',
+    'bucket': 'ci',
+    'name': 'chromium.test',
+    'machines': {
+      'Fake Tester': {
+        'os_type': 'fuchsia',
+        'browser_config': 'not-a-real-browser',
+        'swarming': {
+          'dimension_sets': [
+            {
+              'kvm': '1',
+            },
+          ],
+        },
+        'test_suites': {
+          'cast_streaming_tests': 'composition_tests',
+        },
+      },
+    },
+  },
+]
+"""
+
 NVIDIA_GPU_TELEMETRY_TEST_WATERFALL = """\
 [
   {
@@ -1812,6 +1838,44 @@
 }
 """
 
+GPU_TELEMETRY_TEST_OUTPUT_CAST_STREAMING = """\
+{
+  "AAAAA1 AUTOGENERATED FILE DO NOT EDIT": {},
+  "AAAAA2 See generate_buildbot_json.py to make changes": {},
+  "Fake Tester": {
+    "cast_streaming_tests": [
+      {
+        "args": [
+          "foo",
+          "--show-stdout",
+          "--browser=cast-streaming-shell",
+          "--passthrough",
+          "-v",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
+        ],
+        "isolate_name": "telemetry_gpu_integration_test_fuchsia",
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
+        },
+        "name": "foo_tests",
+        "should_retry_with_patch": false,
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "kvm": "1"
+            }
+          ],
+          "idempotent": false
+        },
+        "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test_fuchsia/"
+      }
+    ]
+  }
+}
+"""
+
 NVIDIA_GPU_TELEMETRY_TEST_OUTPUT = """\
 {
   "AAAAA1 AUTOGENERATED FILE DO NOT EDIT": {},
@@ -2505,6 +2569,15 @@
 }
 """
 
+GPU_TELEMETRY_GN_ISOLATE_MAP_CAST_STREAMING = """\
+{
+  'telemetry_gpu_integration_test_fuchsia': {
+    'label': '//chrome/test:telemetry_gpu_integration_test_fuchsia',
+    'type': 'script',
+      }
+}
+"""
+
 GN_ISOLATE_MAP_KEY_LABEL_MISMATCH="""\
 {
   'foo_test': {
@@ -2891,6 +2964,20 @@
     fbb.check_output_file_consistency(verbose=True)
     self.assertFalse(fbb.printed_lines)
 
+  def test_gpu_telemetry_tests_cast_streaming(self):
+    fbb = FakeBBGen(self.args,
+                    FOO_GPU_TELEMETRY_TEST_WATERFALL_CAST_STREAMING,
+                    COMPOSITION_SUITE_WITH_NAME_NOT_ENDING_IN_TEST,
+                    LUCI_MILO_CFG,
+                    exceptions=NO_BAR_TEST_EXCEPTIONS,
+                    gn_isolate_map=GPU_TELEMETRY_GN_ISOLATE_MAP_CAST_STREAMING)
+    self.create_testing_buildbot_json_file(
+        'chromium.test.json', GPU_TELEMETRY_TEST_OUTPUT_CAST_STREAMING)
+    self.create_testing_buildbot_json_file(
+        'chromium.ci.json', GPU_TELEMETRY_TEST_OUTPUT_CAST_STREAMING)
+    fbb.check_output_file_consistency(verbose=True)
+    self.assertFalse(fbb.printed_lines)
+
   def test_nvidia_gpu_telemetry_tests(self):
     fbb = FakeBBGen(self.args,
                     NVIDIA_GPU_TELEMETRY_TEST_WATERFALL,
diff --git a/testing/buildbot/internal.chromeos.fyi.json b/testing/buildbot/internal.chromeos.fyi.json
index 800e57d..750e5943 100644
--- a/testing/buildbot/internal.chromeos.fyi.json
+++ b/testing/buildbot/internal.chromeos.fyi.json
@@ -1037,7 +1037,7 @@
       {
         "args": [],
         "cros_board": "octopus",
-        "cros_img": "octopus-release/R106-14997.0.0",
+        "cros_img": "octopus-release/R106-15019.0.0",
         "name": "lacros_fyi_tast_tests OCTOPUS_RELEASE_LKGM",
         "swarming": {},
         "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)",
@@ -1085,7 +1085,7 @@
       {
         "args": [],
         "cros_board": "octopus",
-        "cros_img": "octopus-release/R106-14997.0.0",
+        "cros_img": "octopus-release/R106-15019.0.0",
         "name": "ozone_unittests OCTOPUS_RELEASE_LKGM",
         "swarming": {},
         "test": "ozone_unittests",
@@ -1136,7 +1136,7 @@
       {
         "args": [],
         "cros_board": "strongbad",
-        "cros_img": "strongbad-release/R106-14997.0.0",
+        "cros_img": "strongbad-release/R106-15019.0.0",
         "name": "lacros_all_tast_tests STRONGBAD_RELEASE_LKGM",
         "swarming": {},
         "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)",
@@ -1184,7 +1184,7 @@
       {
         "args": [],
         "cros_board": "strongbad",
-        "cros_img": "strongbad-release/R106-14997.0.0",
+        "cros_img": "strongbad-release/R106-15019.0.0",
         "name": "ozone_unittests STRONGBAD_RELEASE_LKGM",
         "swarming": {},
         "test": "ozone_unittests",
@@ -1228,7 +1228,7 @@
       {
         "args": [],
         "cros_board": "strongbad",
-        "cros_img": "strongbad-release/R106-14997.0.0",
+        "cros_img": "strongbad-release/R106-15019.0.0",
         "name": "viz_unittests STRONGBAD_RELEASE_LKGM",
         "swarming": {},
         "test": "viz_unittests",
diff --git a/testing/buildbot/mixins.pyl b/testing/buildbot/mixins.pyl
index bd763c9..bca36683 100644
--- a/testing/buildbot/mixins.pyl
+++ b/testing/buildbot/mixins.pyl
@@ -1355,40 +1355,6 @@
 
     },
   },
-  # Xcode 13 used on beta bots.
-  'xcode_13_beta_bots': {
-    '$mixin_append': {
-      'args': [
-        '--xcode-build-version',
-        '13f17a'
-      ],
-    },
-    'swarming': {
-      'named_caches': [
-        {
-          'name': 'xcode_ios_13f17a',
-          'path': 'Xcode.app',
-        },
-      ],
-    },
-  },
-  # Default Xcode 13 on main.
-  'xcode_13_main': {
-    '$mixin_append': {
-      'args': [
-        '--xcode-build-version',
-        '13c100'
-      ],
-    },
-    'swarming': {
-      'named_caches': [
-        {
-          'name': 'xcode_ios_13c100',
-          'path': 'Xcode.app',
-        },
-      ],
-    },
-  },
   # Default Xcode 14 beta.
   'xcode_14_beta': {
     '$mixin_append': {
@@ -1406,6 +1372,23 @@
       ],
     },
   },
+  # Xcode 14 on iOS main.
+  'xcode_14_main': {
+    '$mixin_append': {
+      'args': [
+        '--xcode-build-version',
+        '14a5284g'
+      ],
+    },
+    'swarming': {
+      'named_caches': [
+        {
+          'name': 'xcode_ios_14a5284g',
+          'path': 'Xcode.app',
+        },
+      ],
+    },
+  },
   'xcode_14_readline_timeout': {
     '$mixin_append': {
       'args': [
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl
index ad6a99c..413f60bd 100644
--- a/testing/buildbot/test_suites.pyl
+++ b/testing/buildbot/test_suites.pyl
@@ -2413,6 +2413,41 @@
       },
     },
 
+    # Test suites to run the CTS with validation layers only on CI for
+    # configurations where capacity is constrained.
+    'gpu_dawn_telemetry_cts_tests_with_ci_only_validation': {
+      'webgpu_cts_with_validation': {
+        'ci_only': True,
+        'args': [
+          '--enable-dawn-backend-validation',
+        ],
+        'mixins': [
+          'has_native_resultdb_integration',
+          'webgpu_telemetry_cts',
+        ],
+        'swarming': {
+          'shards': 14,
+        },
+        'telemetry_test_name': 'webgpu_cts',
+      },
+      'webgpu_swiftshader_web_platform_cts_with_validation': {
+        'ci_only': True,
+        'args': [
+          '--use-webgpu-adapter=swiftshader',
+          '--test-filter=*web_platform*',
+          '--enable-dawn-backend-validation',
+        ],
+        'mixins': [
+          'has_native_resultdb_integration',
+          'webgpu_telemetry_cts',
+        ],
+        'swarming': {
+          'shards': 2,
+        },
+        'telemetry_test_name': 'webgpu_cts',
+      },
+    },
+
     'gpu_dawn_telemetry_cts_tests_with_validation': {
       'webgpu_cts_with_validation': {
         'args': [
@@ -5806,6 +5841,14 @@
       'gpu_dawn_telemetry_cts_tests',
     ],
 
+    # TODO(crbug.com/1321877): Instead of having CI-only test suites, we should
+    # split CI and CQ configurations so we can make manual trybots that mirror the
+    # CI bots as well.
+    'gpu_dawn_telemetry_cts_regular_and_ci_only_validation': [
+      'gpu_dawn_telemetry_cts_tests',
+      'gpu_dawn_telemetry_cts_tests_with_ci_only_validation',
+    ],
+
     'gpu_dawn_telemetry_cts_regular_and_validation': [
       'gpu_dawn_telemetry_cts_tests',
       'gpu_dawn_telemetry_cts_tests_with_validation',
@@ -6562,6 +6605,7 @@
       'ios_common_tests': {
         'variants': [
           'SIM_IPHONE_6S_15_2',
+          'SIM_IPHONE_8_16_0',
         ],
       },
       'ios_eg2_cq_tests': {
@@ -6570,6 +6614,9 @@
           'SIM_IPHONE_6S_15_2',
           'SIM_IPHONE_7_15_2',
           'SIM_IPAD_AIR_2_15_2',
+          'SIM_IPHONE_8_16_0',
+          'SIM_IPHONE_X_16_0',
+          'SIM_IPAD_AIR_3RD_GEN_16_0',
         ],
       },
       'ios_eg2_tests': {
@@ -6578,6 +6625,9 @@
           'SIM_IPHONE_7_15_2',
           'SIM_IPAD_AIR_2_15_2',
           'SIM_IPHONE_X_15_2',
+          'SIM_IPHONE_8_16_0',
+          'SIM_IPAD_AIR_3RD_GEN_16_0',
+          'SIM_IPHONE_X_16_0',
         ],
       },
       'ios_screen_size_dependent_tests': {
@@ -6586,6 +6636,10 @@
           'SIM_IPHONE_6S_15_2',
           'SIM_IPHONE_SE_1ST_GEN_15_2',
           'SIM_IPAD_AIR_2_15_2',
+          'SIM_IPHONE_8_PLUS_16_0',
+          'SIM_IPHONE_8_16_0',
+          'SIM_IPHONE_SE_3RD_GEN_16_0',
+          'SIM_IPAD_AIR_3RD_GEN_16_0',
         ],
       },
     },
@@ -6642,6 +6696,9 @@
           'SIM_IPHONE_7_15_2',
           'SIM_IPAD_AIR_2_15_2',
           'SIM_IPHONE_X_15_2',
+          'SIM_IPHONE_8_16_0',
+          'SIM_IPHONE_X_16_0',
+          'SIM_IPAD_AIR_3RD_GEN_16_0',
         ]
       },
       'ios_eg2_cq_tests': {
@@ -6649,6 +6706,8 @@
         'variants': [
           'SIM_IPHONE_7_15_2',
           'SIM_IPAD_AIR_2_15_2',
+          'SIM_IPHONE_8_16_0',
+          'SIM_IPAD_AIR_3RD_GEN_16_0',
         ]
       }
     },
@@ -6863,8 +6922,7 @@
     'lacros_skylab_arm64': {
       'lacros_skylab_arm64_tests': {
         'variants': [
-          'CROS_CHERRY64_RELEASE_LKGM',
-          'CROS_JACUZZI64_RELEASE_LKGM',
+          'CROS_HEROBRINE_RELEASE_LKGM',
         ]
       },
     },
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl
index 9130d900..29c27ca28 100644
--- a/testing/buildbot/variants.pyl
+++ b/testing/buildbot/variants.pyl
@@ -890,8 +890,8 @@
   'CROS_ATLAS_RELEASE_LKGM': {
     'skylab': {
       'cros_board': 'atlas',
-      'cros_chrome_version': '105.0.5190.0',
-      'cros_img': 'atlas-release/R106-14997.0.0',
+      'cros_chrome_version': '106.0.5211.0',
+      'cros_img': 'atlas-release/R106-15019.0.0',
     },
     'enabled': True,
     'identifier': 'ATLAS_RELEASE_LKGM',
@@ -923,20 +923,11 @@
     'enabled': True,
     'identifier': 'ATLAS_RELEASE_STABLE',
   },
-  'CROS_CHERRY64_RELEASE_LKGM': {
-    'skylab': {
-      'cros_board': 'cherry',
-      'cros_chrome_version': '105.0.5190.0',
-      'cros_img': 'cherry64-release/R106-14997.0.0',
-    },
-    'enabled': True,
-    'identifier': 'CHERRY64_RELEASE_LKGM',
-  },
   'CROS_EVE_RELEASE_LKGM': {
     'skylab': {
       'cros_board': 'eve',
-      'cros_chrome_version': '105.0.5190.0',
-      'cros_img': 'eve-release/R106-14997.0.0',
+      'cros_chrome_version': '106.0.5211.0',
+      'cros_img': 'eve-release/R106-15019.0.0',
     },
     'enabled': True,
     'identifier': 'EVE_RELEASE_LKGM',
@@ -980,8 +971,8 @@
   'CROS_HANA_RELEASE_LKGM': {
     'skylab': {
       'cros_board': 'hana',
-      'cros_chrome_version': '105.0.5190.0',
-      'cros_img': 'hana-release/R106-14997.0.0',
+      'cros_chrome_version': '106.0.5211.0',
+      'cros_img': 'hana-release/R106-15019.0.0',
     },
     'enabled': True,
     'identifier': 'HANA_RELEASE_LKGM',
@@ -1013,20 +1004,20 @@
     'enabled': True,
     'identifier': 'HANA_RELEASE_STABLE',
   },
-  'CROS_JACUZZI64_RELEASE_LKGM': {
+  'CROS_HEROBRINE_RELEASE_LKGM': {
     'skylab': {
-      'cros_board': 'jacuzzi',
+      'cros_board': 'herobrine',
       'cros_chrome_version': '105.0.5190.0',
-      'cros_img': 'jacuzzi64-release/R106-14997.0.0',
+      'cros_img': 'herobrine-release/R106-14997.0.0',
     },
     'enabled': True,
-    'identifier': 'JACUZZI64_RELEASE_LKGM',
+    'identifier': 'HEROBRINE_RELEASE_LKGM',
   },
   'CROS_JACUZZI_RELEASE_LKGM': {
     'skylab': {
       'cros_board': 'jacuzzi',
-      'cros_chrome_version': '105.0.5190.0',
-      'cros_img': 'jacuzzi-release/R106-14997.0.0',
+      'cros_chrome_version': '106.0.5211.0',
+      'cros_img': 'jacuzzi-release/R106-15019.0.0',
     },
     'enabled': True,
     'identifier': 'JACUZZI_RELEASE_LKGM',
@@ -1070,8 +1061,8 @@
   'CROS_OCTOPUS_RELEASE_LKGM': {
     'skylab': {
       'cros_board': 'octopus',
-      'cros_chrome_version': '105.0.5190.0',
-      'cros_img': 'octopus-release/R106-14997.0.0',
+      'cros_chrome_version': '106.0.5211.0',
+      'cros_img': 'octopus-release/R106-15019.0.0',
     },
     'enabled': True,
     'identifier': 'OCTOPUS_RELEASE_LKGM',
@@ -1106,8 +1097,8 @@
   'CROS_STRONGBAD_RELEASE_LKGM': {
     'skylab': {
       'cros_board': 'strongbad',
-      'cros_chrome_version': '105.0.5190.0',
-      'cros_img': 'strongbad-release/R106-14997.0.0',
+      'cros_chrome_version': '106.0.5211.0',
+      'cros_img': 'strongbad-release/R106-15019.0.0',
     },
     'enabled': True,
     'identifier': 'STRONGBAD_RELEASE_LKGM',
@@ -1199,4 +1190,4 @@
       'win10_nvidia_gtx_1660_stable',
     ],
   },
-}
\ No newline at end of file
+}
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index ffbec9d..c64729a 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -2120,7 +2120,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -2154,7 +2154,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_beta_bots',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -2187,7 +2187,7 @@
           'linux_intel_uhd_630_stable',
         ],
         'test_suites': {
-          'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular',
+          'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_ci_only_validation',
           'gtest_tests': 'gpu_dawn_integration_gtests_passthrough',
           'isolated_scripts': 'gpu_dawn_isolated_scripts',
         },
@@ -2211,7 +2211,7 @@
           'linux_intel_uhd_630_stable',
         ],
         'test_suites': {
-          'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular',
+          'gpu_telemetry_tests': 'gpu_dawn_telemetry_cts_regular_and_ci_only_validation',
           'gtest_tests': 'gpu_dawn_integration_gtests_passthrough',
           'isolated_scripts': 'gpu_dawn_isolated_scripts',
         },
@@ -2771,7 +2771,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
       },
@@ -3262,7 +3262,7 @@
           'mac_12_arm64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -3280,7 +3280,7 @@
           'mac_12_arm64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -3293,7 +3293,7 @@
           'mac_12_arm64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -3310,7 +3310,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -3325,7 +3325,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -3338,7 +3338,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -3354,7 +3354,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ]
       },
@@ -3364,7 +3364,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -3378,7 +3378,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -3394,7 +3394,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_beta_bots',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -3415,7 +3415,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_beta_bots',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -5138,7 +5138,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -5155,7 +5155,7 @@
           'mac_12_arm64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -5171,7 +5171,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -5363,7 +5363,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
@@ -5519,7 +5519,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
       },
@@ -5533,7 +5533,7 @@
           'mac_11_or_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
       },
@@ -5547,7 +5547,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
       },
@@ -5561,7 +5561,7 @@
           'mac_11_or_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
       },
@@ -6167,7 +6167,7 @@
           'mac_12_x64',
           'mac_toolchain',
           'out_dir_arg',
-          'xcode_13_main',
+          'xcode_14_main',
           'xctest',
         ],
         'test_suites': {
diff --git a/testing/test_env_unittest.py b/testing/test_env_unittest.py
index 8ec6194..c7ff637 100755
--- a/testing/test_env_unittest.py
+++ b/testing/test_env_unittest.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (c) 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.
@@ -20,8 +20,6 @@
 HERE = os.path.dirname(os.path.abspath(__file__))
 TEST_SCRIPT = os.path.join(HERE, 'test_env_user_script.py')
 
-# pylint: disable=super-with-arguments
-
 
 def launch_process_windows(args):
   # The `universal_newlines` option is equivalent to `text` in Python 3.
@@ -53,7 +51,7 @@
 # pylint: enable=inconsistent-return-statements
 
 
-def send_and_wait(proc, sig, sleep_time=0.3):
+def send_and_wait(proc, sig, sleep_time=0.6):
   """Sends a signal to subprocess."""
   time.sleep(sleep_time)  # gives process time to launch.
   os.kill(proc.pid, sig)
@@ -63,7 +61,7 @@
 class SignalingWindowsTest(unittest.TestCase):
 
   def setUp(self):
-    super(SignalingWindowsTest, self).setUp()
+    super().setUp()
     if sys.platform != 'win32':
       self.skipTest('test only runs on Windows')
 
@@ -71,13 +69,17 @@
     proc = launch_process_windows([])
     send_and_wait(proc, signal.CTRL_BREAK_EVENT) # pylint: disable=no-member
     sig = read_subprocess_message(proc, 'Signal :')
+    # This test is flaky because it relies on the child process starting quickly
+    # "enough", which it fails to do sometimes. This is tracked by
+    # https://crbug.com/1335123 and it is hoped that increasing the timeout will
+    # reduce the flakiness.
     self.assertEqual(sig, str(int(signal.SIGBREAK))) # pylint: disable=no-member
 
 
 class SignalingNonWindowsTest(unittest.TestCase):
 
   def setUp(self):
-    super(SignalingNonWindowsTest, self).setUp()
+    super().setUp()
     if sys.platform == 'win32':
       self.skipTest('test does not run on Windows')
 
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index d341ba20..ce2611f 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -2064,6 +2064,21 @@
             ]
         }
     ],
+    "CALayerTreeOptimization": [
+        {
+            "platforms": [
+                "mac"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "CALayerTreeOptimization"
+                    ]
+                }
+            ]
+        }
+    ],
     "CCTNewDownloadTab": [
         {
             "platforms": [
@@ -3210,21 +3225,6 @@
             ]
         }
     ],
-    "CustomTabBrandTransparency": [
-        {
-            "platforms": [
-                "android"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "CCTBrandTransparency"
-                    ]
-                }
-            ]
-        }
-    ],
     "CustomTabSessionRecording": [
         {
             "platforms": [
@@ -8048,6 +8048,12 @@
             "experiments": [
                 {
                     "name": "Enabled",
+                    "params": {
+                        "availability": "any",
+                        "event_trigger": "name:crow_tab_menu_item_iph_triggered;comparator:<3;window:7;storage:7",
+                        "event_used": "name:crow_tab_menu_item_clicked;comparator:any;window:360;storage:360",
+                        "session_rate": "any"
+                    },
                     "enable_features": [
                         "ShareCrowButton"
                     ]
diff --git a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
index d93ac6f..bed25a1 100644
--- a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
+++ b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
@@ -3636,6 +3636,7 @@
   kPersistentQuotaType = 4315,
   kCrossOriginScrollIntoView = 4316,
   kLinkRelCanonical = 4317,
+  kCredentialManagerIsConditionalMediationAvailable = 4318,
 
   // Add new features immediately above this line. Don't change assigned
   // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/public/mojom/webauthn/authenticator.mojom b/third_party/blink/public/mojom/webauthn/authenticator.mojom
index 7dcedbf5..2637472 100644
--- a/third_party/blink/public/mojom/webauthn/authenticator.mojom
+++ b/third_party/blink/public/mojom/webauthn/authenticator.mojom
@@ -587,6 +587,12 @@
   // credential using a user-verifying platform authenticator.
   IsUserVerifyingPlatformAuthenticatorAvailable() => (bool available);
 
+  // Returns true if Conditional Mediation is available. Relying Parties can use
+  // this method to determine whether they can pass "conditional" to the
+  // "mediation" parameter of a webauthn get call and have the browser autofill
+  // webauthn credentials on form inputs.
+  IsConditionalMediationAvailable() => (bool available);
+
   // Cancel an ongoing MakeCredential or GetAssertion request
   // Only one MakeCredential or GetAssertion call at a time is allowed,
   // any future calls are cancelled
diff --git a/third_party/blink/renderer/core/aom/accessible_node.cc b/third_party/blink/renderer/core/aom/accessible_node.cc
index 87861e5..0be1cbdb 100644
--- a/third_party/blink/renderer/core/aom/accessible_node.cc
+++ b/third_party/blink/renderer/core/aom/accessible_node.cc
@@ -952,6 +952,12 @@
     return;
   }
   child->document_ = GetAncestorDocument();
+  if (!child->document_) {
+    exception_state.ThrowDOMException(
+        DOMExceptionCode::kInvalidAccessError,
+        "AccessibleNode must have an ancestor that is attached to a document.");
+    return;
+  }
   child->parent_ = this;
 
   if (!GetExecutionContext()) {
diff --git a/third_party/blink/renderer/core/css/layout_upgrade.cc b/third_party/blink/renderer/core/css/layout_upgrade.cc
index c10da3e..0b635a6 100644
--- a/third_party/blink/renderer/core/css/layout_upgrade.cc
+++ b/third_party/blink/renderer/core/css/layout_upgrade.cc
@@ -45,10 +45,9 @@
   StyleEngine& style_engine = node_.GetDocument().GetStyleEngine();
   if (style_engine.SkippedContainerRecalc())
     return true;
-  if (!style_engine.StyleAffectedByLayout())
-    return false;
 
-  Reasons mask = kDependsOnSizeContainerQueries;
+  Reasons mask =
+      style_engine.StyleAffectedByLayout() ? kDependsOnSizeContainerQueries : 0;
 
   if (GetReasons(node_) & mask)
     return true;
@@ -60,6 +59,10 @@
   if (ComputedStyle::IsNullOrEnsured(node_.GetComputedStyle()))
     mask |= NodeLayoutUpgrade::kInterleavingRoot;
 
+  // Early out if nothing can possibly match.
+  if (!mask)
+    return false;
+
   for (ContainerNode* ancestor = LayoutTreeBuilderTraversal::Parent(node_);
        ancestor; ancestor = LayoutTreeBuilderTraversal::Parent(*ancestor)) {
     if (GetReasons(*ancestor) & mask)
diff --git a/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.cc b/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.cc
index 638a5e9..3bdf040 100644
--- a/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.cc
+++ b/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.cc
@@ -299,6 +299,7 @@
 
 StyleRulePositionFallback* ScopedStyleResolver::PositionFallbackForName(
     const AtomicString& fallback_name) {
+  DCHECK(fallback_name);
   auto iter = position_fallback_rule_map_.find(fallback_name);
   if (iter != position_fallback_rule_map_.end())
     return iter->value;
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
index eb2157e..e11dacb 100644
--- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
@@ -30,6 +30,7 @@
 
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 
+#include "base/containers/adapters.h"
 #include "third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom-blink.h"
 #include "third_party/blink/renderer/core/animation/css/compositor_keyframe_value_factory.h"
 #include "third_party/blink/renderer/core/animation/css/css_animations.h"
@@ -515,12 +516,12 @@
       resolvers.push_back(std::make_pair(slot, resolver));
     }
   }
-  for (auto it = resolvers.rbegin(); it != resolvers.rend(); ++it) {
-    ElementRuleCollector::SlottedRulesScope scope(collector, *(*it).first);
+  for (const auto& [slot, resolver] : base::Reversed(resolvers)) {
+    ElementRuleCollector::SlottedRulesScope scope(collector, *slot);
     collector.ClearMatchedRules();
-    (*it).second->CollectMatchingSlottedRules(collector);
+    resolver->CollectMatchingSlottedRules(collector);
     collector.SortAndTransferMatchedRules();
-    collector.FinishAddingAuthorRulesForTreeScope((*it).first->GetTreeScope());
+    collector.FinishAddingAuthorRulesForTreeScope(slot->GetTreeScope());
   }
 }
 
@@ -2512,6 +2513,7 @@
     unsigned index) {
   const ComputedStyle& base_style = element.ComputedStyleRef();
   // TODO(crbug.com/1309178): Support tree-scoped fallback name lookup.
+  DCHECK(base_style.PositionFallback());
   StyleRulePositionFallback* position_fallback_rule =
       GetDocument().GetScopedStyleResolver()->PositionFallbackForName(
           base_style.PositionFallback());
diff --git a/third_party/blink/renderer/core/css/style_engine_test.cc b/third_party/blink/renderer/core/css/style_engine_test.cc
index 319a928..79e6a82 100644
--- a/third_party/blink/renderer/core/css/style_engine_test.cc
+++ b/third_party/blink/renderer/core/css/style_engine_test.cc
@@ -4142,6 +4142,61 @@
   EXPECT_EQ(2, a->ComputedStyleRef().ZIndex());
 }
 
+// https://crbug.com/1343570
+TEST_F(StyleEngineContainerQueryTest,
+       UpdateStyleAndLayoutTreeWithUpgradeInDisplayNone) {
+  GetDocument().documentElement()->setInnerHTML(R"HTML(
+    <style>
+      #container {
+        container-type: inline-size;
+      }
+      #container.toggle {
+        --x:1;
+      }
+      #a {
+        display: none;
+      }
+      /* Intentionally no @container rule. */
+    </style>
+    <main id=container>
+      <div id=a></div>
+    </main>
+  )HTML");
+  UpdateAllLifecyclePhases();
+  EXPECT_FALSE(GetDocument().View()->NeedsLayout());
+  EXPECT_FALSE(GetStyleEngine().StyleAffectedByLayout());
+
+  Element* container = GetDocument().getElementById("container");
+  Element* a = GetDocument().getElementById("a");
+  ASSERT_TRUE(container);
+  ASSERT_TRUE(a);
+
+  EXPECT_FALSE(GetDocument().View()->NeedsLayout());
+  EXPECT_FALSE(GetDocument().NeedsLayoutTreeUpdateForNode(*a));
+  EXPECT_FALSE(GetStyleEngine().StyleAffectedByLayout());
+
+  // Mutate DOM to invalidate style recalc.
+  container->classList().Add("toggle");
+  EXPECT_EQ(Document::StyleAndLayoutTreeUpdate::kAnalyzed,
+            GetDocument().CalculateStyleAndLayoutTreeUpdate());
+
+  // Pretend something needs layout.
+  GetDocument().View()->SetNeedsLayout();
+  EXPECT_TRUE(GetDocument().View()->NeedsLayout());
+  EXPECT_TRUE(GetDocument().NeedsLayoutTreeUpdateForNode(*a));
+
+  // Even though style doesn't depend on layout in this case, we still need to
+  // do a layout upgrade for elements that are 1) in display:none, and 2)
+  // inside a container query container.
+  //
+  // See implementation of `NodeLayoutUpgrade::ShouldUpgrade` for more
+  // information.
+  GetDocument().UpdateStyleAndLayoutTreeForNode(a);
+  EXPECT_FALSE(GetStyleEngine().StyleAffectedByLayout());
+  EXPECT_FALSE(GetDocument().View()->NeedsLayout());
+  EXPECT_FALSE(GetDocument().NeedsLayoutTreeUpdateForNode(*a));
+}
+
 TEST_F(StyleEngineTest, ContainerRelativeUnitsRuntimeFlag) {
   String css = R"CSS(
     top: 1cqw;
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
index 07cb67e..a3d9a85 100644
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -33,6 +33,7 @@
 #include <utility>
 
 #include "base/auto_reset.h"
+#include "base/containers/adapters.h"
 #include "base/containers/contains.h"
 #include "base/debug/dump_without_crashing.h"
 #include "base/metrics/histogram_functions.h"
@@ -60,6 +61,7 @@
 #include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h"
 #include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h"
 #include "third_party/blink/public/mojom/css/preferred_color_scheme.mojom-blink-forward.h"
+#include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
 #include "third_party/blink/public/mojom/input/focus_type.mojom-blink.h"
 #include "third_party/blink/public/mojom/page_state/page_state.mojom-blink.h"
 #include "third_party/blink/public/platform/platform.h"
@@ -7298,9 +7300,8 @@
 }
 
 HTMLDialogElement* Document::ActiveModalDialog() const {
-  for (auto it = top_layer_elements_.rbegin(); it != top_layer_elements_.rend();
-       ++it) {
-    if (auto* dialog = DynamicTo<HTMLDialogElement>(*it->Get()))
+  for (const auto& element : base::Reversed(top_layer_elements_)) {
+    if (auto* dialog = DynamicTo<HTMLDialogElement>(*element))
       return dialog;
   }
 
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
index 6efa49d..97762b8 100644
--- a/third_party/blink/renderer/core/dom/element.cc
+++ b/third_party/blink/renderer/core/dom/element.cc
@@ -3662,9 +3662,6 @@
       UpdateName(name_value, g_null_atom);
   }
 
-  if (AccessibleNode* accessible_node = ExistingAccessibleNode())
-    accessible_node->DetachedFromDocument();
-
   ContainerNode::RemovedFrom(insertion_point);
 
   if (was_in_document) {
@@ -3706,6 +3703,11 @@
       context->ElementDisconnected();
 
     DCHECK(!data->HasPseudoElements());
+
+    if (AccessibleNode* accessible_node = ExistingAccessibleNode()) {
+      accessible_node->DetachedFromDocument();
+      data->ClearAccessibleNode();
+    }
   }
 
   if (auto* const frame = GetDocument().GetFrame()) {
@@ -9007,6 +9009,7 @@
   const ComputedStyle* base_style = GetComputedStyle();
   if (!base_style)
     return nullptr;
+  DCHECK(base_style->PositionFallback());
   if (const ComputedStyle* cached_style =
           base_style->GetCachedPositionFallbackStyle(index))
     return cached_style;
diff --git a/third_party/blink/renderer/core/dom/element_rare_data.h b/third_party/blink/renderer/core/dom/element_rare_data.h
index 88232a1..a00cf935 100644
--- a/third_party/blink/renderer/core/dom/element_rare_data.h
+++ b/third_party/blink/renderer/core/dom/element_rare_data.h
@@ -99,6 +99,7 @@
     }
     return accessible_node_;
   }
+  void ClearAccessibleNode() { accessible_node_.Clear(); }
 
   DisplayLockContext* EnsureDisplayLockContext(Element* element) {
     if (!display_lock_context_) {
@@ -522,6 +523,10 @@
   AccessibleNode* EnsureAccessibleNode(Element* owner_element) {
     return EnsureSuperRareData().EnsureAccessibleNode(owner_element);
   }
+  void ClearAccessibleNode() {
+    if (super_rare_data_)
+      super_rare_data_->ClearAccessibleNode();
+  }
 
   AttrNodeList& EnsureAttrNodeList();
   AttrNodeList* GetAttrNodeList() { return attr_node_list_.Get(); }
diff --git a/third_party/blink/renderer/core/editing/serializers/markup_accumulator.cc b/third_party/blink/renderer/core/editing/serializers/markup_accumulator.cc
index 9b41a4c..15a8162 100644
--- a/third_party/blink/renderer/core/editing/serializers/markup_accumulator.cc
+++ b/third_party/blink/renderer/core/editing/serializers/markup_accumulator.cc
@@ -25,6 +25,7 @@
  */
 #include "third_party/blink/renderer/core/editing/serializers/markup_accumulator.h"
 
+#include "base/containers/adapters.h"
 #include "third_party/blink/renderer/core/dom/attr.h"
 #include "third_party/blink/renderer/core/dom/cdata_section.h"
 #include "third_party/blink/renderer/core/dom/comment.h"
@@ -495,8 +496,7 @@
   // <el1 xmlns="U1">
   //  el1.setAttributeNS(U1, 'n', 'v');
   // We should not get '' for attributes.
-  for (auto it = candidate_list.rbegin(); it != candidate_list.rend(); ++it) {
-    AtomicString candidate_prefix = *it;
+  for (const auto& candidate_prefix : base::Reversed(candidate_list)) {
     DCHECK(!candidate_prefix.IsEmpty());
     AtomicString ns_for_candidate = LookupNamespaceURI(candidate_prefix);
     if (EqualIgnoringNullity(ns_for_candidate, ns))
diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
index df4cc081..33a9d25 100644
--- a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
+++ b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
@@ -34,6 +34,7 @@
 #include "services/network/public/mojom/web_sandbox_flags.mojom-blink.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/public/common/security_context/insecure_request_policy.h"
+#include "third_party/blink/public/mojom/devtools/inspector_issue.mojom-shared.h"
 #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
 #include "third_party/blink/public/mojom/security_context/insecure_request_policy.mojom-blink.h"
 #include "third_party/blink/public/platform/platform.h"
diff --git a/third_party/blink/renderer/core/frame/frame.cc b/third_party/blink/renderer/core/frame/frame.cc
index 83b1a223..0e50579 100644
--- a/third_party/blink/renderer/core/frame/frame.cc
+++ b/third_party/blink/renderer/core/frame/frame.cc
@@ -34,6 +34,7 @@
 
 #include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/mojom/fenced_frame/fenced_frame.mojom-blink.h"
+#include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
 #include "third_party/blink/public/mojom/frame/frame_owner_properties.mojom-blink.h"
 #include "third_party/blink/public/web/web_local_frame.h"
 #include "third_party/blink/public/web/web_local_frame_client.h"
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc
index cc39235..77b574c3 100644
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -40,6 +40,7 @@
 #include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/common/frame/event_page_show_persisted.h"
 #include "third_party/blink/public/mojom/devtools/inspector_issue.mojom-blink.h"
+#include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
 #include "third_party/blink/public/mojom/permissions_policy/policy_disposition.mojom-blink.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/public/platform/task_type.h"
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc
index 93fd9d0..e0d2236 100644
--- a/third_party/blink/renderer/core/frame/local_frame_view.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -49,6 +49,7 @@
 #include "cc/trees/layer_tree_host.h"
 #include "components/paint_preview/common/paint_preview_tracker.h"
 #include "third_party/blink/public/common/features.h"
+#include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
 #include "third_party/blink/public/mojom/scroll/scroll_into_view_params.mojom-blink.h"
 #include "third_party/blink/public/mojom/scroll/scrollbar_mode.mojom-blink.h"
 #include "third_party/blink/public/platform/task_type.h"
diff --git a/third_party/blink/renderer/core/frame/remote_frame_owner.cc b/third_party/blink/renderer/core/frame/remote_frame_owner.cc
index 7a358bd..ad62067 100644
--- a/third_party/blink/renderer/core/frame/remote_frame_owner.cc
+++ b/third_party/blink/renderer/core/frame/remote_frame_owner.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/core/frame/remote_frame_owner.h"
 
+#include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
 #include "third_party/blink/public/mojom/frame/intrinsic_sizing_info.mojom-blink.h"
 #include "third_party/blink/public/web/web_local_frame_client.h"
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.h b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
index 34aa9f59..3377e3e3 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.h
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
@@ -45,6 +45,7 @@
 #include "third_party/blink/public/common/context_menu_data/context_menu_data.h"
 #include "third_party/blink/public/common/tokens/tokens.h"
 #include "third_party/blink/public/mojom/blob/blob_url_store.mojom-blink-forward.h"
+#include "third_party/blink/public/mojom/context_menu/context_menu.mojom-blink.h"
 #include "third_party/blink/public/mojom/devtools/devtools_agent.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/fenced_frame/fenced_frame.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/frame/find_in_page.mojom-blink-forward.h"
diff --git a/third_party/blink/renderer/core/fullscreen/fullscreen.cc b/third_party/blink/renderer/core/fullscreen/fullscreen.cc
index d4c2513..fb9c2e1 100644
--- a/third_party/blink/renderer/core/fullscreen/fullscreen.cc
+++ b/third_party/blink/renderer/core/fullscreen/fullscreen.cc
@@ -29,6 +29,7 @@
 
 #include "third_party/blink/renderer/core/fullscreen/fullscreen.h"
 
+#include "base/containers/adapters.h"
 #include "third_party/blink/public/mojom/permissions_policy/permissions_policy.mojom-blink.h"
 #include "third_party/blink/public/platform/task_type.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
@@ -598,8 +599,7 @@
   // whose fullscreen flag is set, if any, and null otherwise.
 
   const auto& elements = document.TopLayerElements();
-  for (auto it = elements.rbegin(); it != elements.rend(); ++it) {
-    Element* element = (*it).Get();
+  for (const auto& element : base::Reversed(elements)) {
     if (HasFullscreenFlag(*element))
       return element;
   }
diff --git a/third_party/blink/renderer/core/html/html_frame_element_base.cc b/third_party/blink/renderer/core/html/html_frame_element_base.cc
index e0b751b..a35a1ba 100644
--- a/third_party/blink/renderer/core/html/html_frame_element_base.cc
+++ b/third_party/blink/renderer/core/html/html_frame_element_base.cc
@@ -25,6 +25,7 @@
 
 #include "services/network/public/cpp/web_sandbox_flags.h"
 #include "services/network/public/mojom/web_sandbox_flags.mojom-blink.h"
+#include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
 #include "third_party/blink/renderer/bindings/core/v8/binding_security.h"
 #include "third_party/blink/renderer/bindings/core/v8/js_event_handler_for_content_attribute.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_controller.h"
diff --git a/third_party/blink/renderer/core/html/html_frame_owner_element.cc b/third_party/blink/renderer/core/html/html_frame_owner_element.cc
index d6159549..31254cc0 100644
--- a/third_party/blink/renderer/core/html/html_frame_owner_element.cc
+++ b/third_party/blink/renderer/core/html/html_frame_owner_element.cc
@@ -27,6 +27,7 @@
 #include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
 #include "third_party/blink/public/mojom/frame/color_scheme.mojom-blink.h"
+#include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
 #include "third_party/blink/public/mojom/frame/frame_owner_properties.mojom-blink.h"
 #include "third_party/blink/public/mojom/permissions_policy/permissions_policy.mojom-blink.h"
 #include "third_party/blink/renderer/core/accessibility/ax_object_cache.h"
diff --git a/third_party/blink/renderer/core/html/html_slot_element.cc b/third_party/blink/renderer/core/html/html_slot_element.cc
index 24c3155..69790a09 100644
--- a/third_party/blink/renderer/core/html/html_slot_element.cc
+++ b/third_party/blink/renderer/core/html/html_slot_element.cc
@@ -30,6 +30,7 @@
 
 #include "third_party/blink/renderer/core/html/html_slot_element.h"
 
+#include "base/containers/adapters.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_assigned_nodes_options.h"
 #include "third_party/blink/renderer/core/css/style_change_reason.h"
 #include "third_party/blink/renderer/core/css/style_engine.h"
@@ -370,9 +371,8 @@
 
   // This loop traverses the nodes from right to left for the same reason as the
   // one described in ContainerNode::RebuildChildrenLayoutTrees().
-  for (auto it = flat_tree_children_.rbegin(); it != flat_tree_children_.rend();
-       ++it) {
-    RebuildLayoutTreeForChild(*it, whitespace_attacher);
+  for (const auto& child : base::Reversed(flat_tree_children_)) {
+    RebuildLayoutTreeForChild(child, whitespace_attacher);
   }
 }
 
diff --git a/third_party/blink/renderer/core/html/track/vtt/vtt_cue_layout_algorithm.cc b/third_party/blink/renderer/core/html/track/vtt/vtt_cue_layout_algorithm.cc
index f339adbc..4560d5b 100644
--- a/third_party/blink/renderer/core/html/track/vtt/vtt_cue_layout_algorithm.cc
+++ b/third_party/blink/renderer/core/html/track/vtt/vtt_cue_layout_algorithm.cc
@@ -60,7 +60,8 @@
 }
 
 LayoutUnit VttCueLayoutAlgorithm::ComputeInitialPositionAdjustment(
-    LayoutUnit max_dimension) {
+    LayoutUnit max_dimension,
+    const gfx::Rect& controls_rect) {
   DCHECK(isfinite(snap_to_lines_position_));
 
   // 4. Let line be cue's computed line.
@@ -87,6 +88,8 @@
   if (line < 0) {
     position += max_dimension;
     step_ = -step_;
+    if (cue_box.IsHorizontalWritingMode())
+      position -= controls_rect.height();
   } else {
     // https://www.w3.org/TR/2017/WD-webvtt1-20170808/#apply-webvtt-cue-settings
     // 11.11. Otherwise, increase position by margin.
@@ -193,7 +196,9 @@
     return;
 
   // Step 4-9
-  LayoutUnit position = ComputeInitialPositionAdjustment(max_dimension);
+  const gfx::Rect controls_rect = LayoutVTTCue::ComputeControlsRect(container);
+  LayoutUnit position =
+      ComputeInitialPositionAdjustment(max_dimension, controls_rect);
 
   // 10. Horizontal: Move all the boxes in boxes down by the distance given
   // by position.
@@ -228,7 +233,6 @@
   // title area box, then jump to the step labeled done positioning below.
   //
   // We also check overlapping with media controls.
-  const gfx::Rect controls_rect = LayoutVTTCue::ComputeControlsRect(container);
   while (IsOutside(title_area) || IsOverlapping(controls_rect)) {
     // Step 14
     if (!ShouldSwitchDirection(adjusted_position, cue_box.LogicalHeight(),
diff --git a/third_party/blink/renderer/core/html/track/vtt/vtt_cue_layout_algorithm.h b/third_party/blink/renderer/core/html/track/vtt/vtt_cue_layout_algorithm.h
index cf1a0d7e..2e14f63 100644
--- a/third_party/blink/renderer/core/html/track/vtt/vtt_cue_layout_algorithm.h
+++ b/third_party/blink/renderer/core/html/track/vtt/vtt_cue_layout_algorithm.h
@@ -40,7 +40,8 @@
   // Helpers for AdjustPositionWithSnapToLines():
 
   static PhysicalSize FirstInlineBoxSize(const LayoutBox& cue_box);
-  LayoutUnit ComputeInitialPositionAdjustment(LayoutUnit max_dimension);
+  LayoutUnit ComputeInitialPositionAdjustment(LayoutUnit max_dimension,
+                                              const gfx::Rect& controls_rect);
   static gfx::Rect CueBoundingBox(const LayoutBox& cue_box);
   bool IsOutside(const gfx::Rect& title_area) const;
   bool IsOverlapping(const gfx::Rect& controls_rect) const;
diff --git a/third_party/blink/renderer/core/layout/layout_box.cc b/third_party/blink/renderer/core/layout/layout_box.cc
index 0aa0ec3d..b88f743 100644
--- a/third_party/blink/renderer/core/layout/layout_box.cc
+++ b/third_party/blink/renderer/core/layout/layout_box.cc
@@ -3182,6 +3182,13 @@
     offset += To<LayoutInline>(o)->OffsetForInFlowPositionedInline(*this);
   }
 
+  if (AnchorScrollObject()) {
+    LayoutBox::AnchorScrollData data =
+        To<LayoutBox>(this)->ComputeAnchorScrollData();
+    offset -=
+        PhysicalOffset::FromVector2dFFloor(data.accumulated_scroll_offset);
+  }
+
   return offset;
 }
 
@@ -8125,4 +8132,28 @@
   return nullptr;
 }
 
+LayoutBox::AnchorScrollData LayoutBox::ComputeAnchorScrollData() const {
+  if (!AnchorScrollContainer())
+    return AnchorScrollData();
+
+  const PaintLayer* inner_most_scroll_container_layer =
+      AnchorScrollContainer()->Layer();
+  const PaintLayer* outer_most_scroll_container_layer =
+      inner_most_scroll_container_layer;
+  gfx::Vector2dF accumulated_scroll_offset(0, 0);
+  gfx::Vector2d accumulated_scroll_origin(0, 0);
+  for (const PaintLayer* layer = inner_most_scroll_container_layer; layer;
+       layer = layer->ContainingScrollContainerLayer()) {
+    if (layer == Layer()->ContainingScrollContainerLayer())
+      break;
+    accumulated_scroll_offset += layer->GetScrollableArea()->GetScrollOffset();
+    accumulated_scroll_origin +=
+        layer->GetScrollableArea()->ScrollOrigin().OffsetFromOrigin();
+    outer_most_scroll_container_layer = layer;
+  }
+
+  return {inner_most_scroll_container_layer, outer_most_scroll_container_layer,
+          accumulated_scroll_offset, accumulated_scroll_origin};
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/layout/layout_box.h b/third_party/blink/renderer/core/layout/layout_box.h
index 507213a..73c6d29b 100644
--- a/third_party/blink/renderer/core/layout/layout_box.h
+++ b/third_party/blink/renderer/core/layout/layout_box.h
@@ -2137,6 +2137,16 @@
   // Returns nullptr otherwise.
   const LayoutBox* AnchorScrollContainer() const;
 
+  struct AnchorScrollData {
+    const PaintLayer* inner_most_scroll_container_layer = nullptr;
+    const PaintLayer* outer_most_scroll_container_layer = nullptr;
+    gfx::Vector2dF accumulated_scroll_offset;
+    gfx::Vector2d accumulated_scroll_origin;
+
+    STACK_ALLOCATED();
+  };
+  AnchorScrollData ComputeAnchorScrollData() const;
+
  protected:
   ~LayoutBox() override;
 
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 ce61192..71aac5d 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
@@ -357,6 +357,7 @@
 
 bool ComputeOutOfFlowInlineDimensions(
     const NGBlockNode& node,
+    const ComputedStyle& style,
     const NGConstraintSpace& space,
     const NGLogicalOutOfFlowInsets& insets,
     const NGBoxStrut& border_padding,
@@ -369,7 +370,6 @@
   DCHECK(dimensions);
   bool depends_on_min_max_sizes = false;
 
-  const auto& style = node.Style();
   const bool is_table = node.IsTable();
   const bool can_compute_block_size_without_layout =
       CanComputeBlockSizeWithoutLayout(node);
@@ -387,11 +387,11 @@
 
     // Compute our block-size if we haven't already.
     if (dimensions->size.block_size == kIndefiniteSize) {
-      ComputeOutOfFlowBlockDimensions(node, space, insets, border_padding,
-                                      static_position, computed_available_size,
-                                      /* replaced_size */ absl::nullopt,
-                                      container_writing_direction,
-                                      anchor_evaluator, dimensions);
+      ComputeOutOfFlowBlockDimensions(
+          node, style, space, insets, border_padding, static_position,
+          computed_available_size,
+          /* replaced_size */ absl::nullopt, container_writing_direction,
+          anchor_evaluator, dimensions);
     }
 
     // Create a new space, setting the fixed block-size.
@@ -480,6 +480,7 @@
 
 const NGLayoutResult* ComputeOutOfFlowBlockDimensions(
     const NGBlockNode& node,
+    const ComputedStyle& style,
     const NGConstraintSpace& space,
     const NGLogicalOutOfFlowInsets& insets,
     const NGBoxStrut& border_padding,
@@ -493,7 +494,6 @@
 
   const NGLayoutResult* result = nullptr;
 
-  const auto& style = node.Style();
   const bool is_table = node.IsTable();
   MinMaxSizes min_max_block_sizes = ComputeMinMaxBlockSizes(
       space, style, border_padding, computed_available_size.block_size,
diff --git a/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.h b/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.h
index 88246ff0..200dd8ce 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.h
@@ -22,6 +22,19 @@
 struct NGLogicalStaticPosition;
 
 struct CORE_EXPORT NGLogicalOutOfFlowDimensions {
+  LayoutUnit MarginBoxInlineStart() const {
+    return inset.inline_start - margins.inline_start;
+  }
+  LayoutUnit MarginBoxBlockStart() const {
+    return inset.block_start - margins.block_start;
+  }
+  LayoutUnit MarginBoxInlineEnd() const {
+    return inset.inline_start + size.inline_size + margins.inline_end;
+  }
+  LayoutUnit MarginBoxBlockEnd() const {
+    return inset.block_start + size.block_size + margins.block_end;
+  }
+
   NGBoxStrut inset;
   LogicalSize size = {kIndefiniteSize, kIndefiniteSize};
   NGBoxStrut margins;
@@ -63,6 +76,7 @@
 // Will return true if |NGBlockNode::ComputeMinMaxSizes| was called.
 CORE_EXPORT bool ComputeOutOfFlowInlineDimensions(
     const NGBlockNode&,
+    const ComputedStyle& style,
     const NGConstraintSpace&,
     const NGLogicalOutOfFlowInsets&,
     const NGBoxStrut& border_padding,
@@ -77,6 +91,7 @@
 // otherwise it will return nullptr.
 CORE_EXPORT const NGLayoutResult* ComputeOutOfFlowBlockDimensions(
     const NGBlockNode&,
+    const ComputedStyle& style,
     const NGConstraintSpace&,
     const NGLogicalOutOfFlowInsets&,
     const NGBoxStrut& border_padding,
diff --git a/third_party/blink/renderer/core/layout/ng/ng_absolute_utils_test.cc b/third_party/blink/renderer/core/layout/ng/ng_absolute_utils_test.cc
index 835924f..4deca4f 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_absolute_utils_test.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_absolute_utils_test.cc
@@ -109,7 +109,7 @@
     LogicalSize computed_available_size =
         ComputeOutOfFlowAvailableSize(node, space, insets, static_position);
     blink::ComputeOutOfFlowInlineDimensions(
-        node, space, insets, border_padding, static_position,
+        node, node.Style(), space, insets, border_padding, static_position,
         computed_available_size, absl::nullopt, container_writing_direction,
         /* anchor_evaluator */ nullptr, dimensions);
   }
@@ -131,7 +131,7 @@
     LogicalSize computed_available_size =
         ComputeOutOfFlowAvailableSize(node, space, insets, static_position);
     blink::ComputeOutOfFlowBlockDimensions(
-        node, space, insets, border_padding, static_position,
+        node, node.Style(), space, insets, border_padding, static_position,
         computed_available_size, absl::nullopt, container_writing_direction,
         /* anchor_evaluator */ nullptr, dimensions);
   }
diff --git a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
index 903c19ff..529b1dd 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
@@ -1368,8 +1368,44 @@
     const NodeInfo& node_info,
     const LayoutBox* only_layout,
     bool is_first_run) {
-  OffsetInfo offset_info;
-  const ComputedStyle& candidate_style = node_info.node.Style();
+  const ComputedStyle* style = &node_info.node.Style();
+
+  // If `@position-fallback` exists, let |TryCalculateOffset| check if the
+  // result fits.
+  Element* element = nullptr;
+  const ComputedStyle* next_fallback_style = nullptr;
+  if (UNLIKELY(style->PositionFallback())) {
+    DCHECK(RuntimeEnabledFeatures::CSSAnchorPositioningEnabled());
+    element = DynamicTo<Element>(node_info.node.GetDOMNode());
+    if (element)
+      next_fallback_style = element->StyleForPositionFallback(0);
+  }
+
+  wtf_size_t fallback_index = 0;
+  while (true) {
+    const bool test_if_margin_box_fits = next_fallback_style;
+    OffsetInfo offset_info;
+    if (TryCalculateOffset(node_info, *style, only_layout,
+                           test_if_margin_box_fits, is_first_run,
+                           &offset_info)) {
+      return offset_info;
+    }
+
+    // If the result doesn't fit its containing block, try the next rule.
+    DCHECK(next_fallback_style);
+    style = next_fallback_style;
+    DCHECK(element);
+    next_fallback_style = element->StyleForPositionFallback(++fallback_index);
+  }
+}
+
+bool NGOutOfFlowLayoutPart::TryCalculateOffset(
+    const NodeInfo& node_info,
+    const ComputedStyle& candidate_style,
+    const LayoutBox* only_layout,
+    bool test_if_margin_box_fits,
+    bool is_first_run,
+    OffsetInfo* const offset_info) {
   const WritingDirectionMode candidate_writing_direction =
       candidate_style.GetWritingDirection();
   const auto container_writing_direction =
@@ -1388,14 +1424,14 @@
   //  - The candidate has an inline container (instead of the default
   //    containing-block).
   // Note: Only check for cache results if this is our first layout pass.
-  if (is_first_run && allow_first_tier_oof_cache_ &&
+  if (is_first_run && !test_if_margin_box_fits && allow_first_tier_oof_cache_ &&
       !node_info.inline_container) {
     if (const NGLayoutResult* cached_result =
             node_info.node.CachedLayoutResultForOutOfFlowPositioned(
                 container_content_size_in_candidate_writing_mode)) {
-      offset_info.initial_layout_result = cached_result;
-      offset_info.has_cached_layout_result = true;
-      return offset_info;
+      offset_info->initial_layout_result = cached_result;
+      offset_info->has_cached_layout_result = true;
+      return true;
     }
   }
 
@@ -1404,7 +1440,7 @@
   const NGLogicalOutOfFlowInsets insets = ComputeOutOfFlowInsets(
       candidate_style, node_info.constraint_space.AvailableSize(),
       container_converter, container_builder_->AnchorQuery(),
-      &offset_info.disable_first_tier_cache);
+      &offset_info->disable_first_tier_cache);
 
   const LogicalSize computed_available_size =
       ComputeOutOfFlowAvailableSize(node_info.node, node_info.constraint_space,
@@ -1449,35 +1485,60 @@
         computed_available_size, ReplacedSizeMode::kNormal, &anchor_evaluator);
   }
 
-  offset_info.inline_size_depends_on_min_max_sizes =
+  NGLogicalOutOfFlowDimensions& node_dimensions = offset_info->node_dimensions;
+  offset_info->inline_size_depends_on_min_max_sizes =
       ComputeOutOfFlowInlineDimensions(
-          node_info.node, node_info.constraint_space, insets, border_padding,
-          node_info.static_position, computed_available_size, replaced_size,
-          container_writing_direction, &anchor_evaluator,
-          &offset_info.node_dimensions);
+          node_info.node, candidate_style, node_info.constraint_space, insets,
+          border_padding, node_info.static_position, computed_available_size,
+          replaced_size, container_writing_direction, &anchor_evaluator,
+          &node_dimensions);
+
+  // Check if the inline dimension fits.
+  const LogicalRect& container_rect = node_info.container_info.rect;
+  const LogicalSize container_size_in_candidate_writing_mode =
+      node_info.container_physical_content_size.ConvertToLogical(
+          candidate_writing_direction.GetWritingMode());
+  if (test_if_margin_box_fits) {
+    if (node_dimensions.MarginBoxInlineStart() < 0 ||
+        node_dimensions.MarginBoxInlineEnd() >
+            container_size_in_candidate_writing_mode.inline_size) {
+      return false;
+    }
+  }
 
   // We may have already pre-computed our block-dimensions when determining
   // our min/max sizes, only run if needed.
-  if (offset_info.node_dimensions.size.block_size == kIndefiniteSize) {
-    offset_info.initial_layout_result = ComputeOutOfFlowBlockDimensions(
-        node_info.node, node_info.constraint_space, insets, border_padding,
-        node_info.static_position, computed_available_size, replaced_size,
-        container_writing_direction, &anchor_evaluator,
-        &offset_info.node_dimensions);
+  if (node_dimensions.size.block_size == kIndefiniteSize) {
+    offset_info->initial_layout_result = ComputeOutOfFlowBlockDimensions(
+        node_info.node, candidate_style, node_info.constraint_space, insets,
+        border_padding, node_info.static_position, computed_available_size,
+        replaced_size, container_writing_direction, &anchor_evaluator,
+        &node_dimensions);
   }
-  offset_info.disable_first_tier_cache |= anchor_evaluator.has_anchor_functions;
-  offset_info.block_estimate = offset_info.node_dimensions.size.block_size;
+
+  // Check if the block dimension fits.
+  if (test_if_margin_box_fits) {
+    if (node_dimensions.MarginBoxBlockStart() < 0 ||
+        node_dimensions.MarginBoxBlockEnd() >
+            container_size_in_candidate_writing_mode.block_size) {
+      return false;
+    }
+  }
+
+  offset_info->disable_first_tier_cache |=
+      anchor_evaluator.has_anchor_functions;
+  offset_info->block_estimate = node_dimensions.size.block_size;
 
   // Calculate the offsets.
-  NGBoxStrut inset = offset_info.node_dimensions.inset
-                         .ConvertToPhysical(candidate_writing_direction)
-                         .ConvertToLogical(node_info.default_writing_direction);
+  const NGBoxStrut inset =
+      node_dimensions.inset.ConvertToPhysical(candidate_writing_direction)
+          .ConvertToLogical(node_info.default_writing_direction);
 
   // |inset| is relative to the container's padding-box. Convert this to being
   // relative to the default container's border-box.
-  offset_info.offset = node_info.container_info.rect.offset;
-  offset_info.offset.inline_offset += inset.inline_start;
-  offset_info.offset.block_offset += inset.block_start;
+  offset_info->offset = container_rect.offset;
+  offset_info->offset.inline_offset += inset.inline_start;
+  offset_info->offset.block_offset += inset.block_start;
 
   if (!only_layout && !container_builder_->IsBlockFragmentationContextRoot()) {
     // OOFs contained by an inline that's been split into continuations are
@@ -1487,10 +1548,10 @@
     // block fragmentation is involved, though, since all OOFs are then child
     // fragments of the nearest fragmentainer.
     AdjustOffsetForSplitInline(node_info.node, container_builder_,
-                               offset_info.offset);
+                               offset_info->offset);
   }
 
-  return offset_info;
+  return true;
 }
 
 const NGLayoutResult* NGOutOfFlowLayoutPart::Layout(
diff --git a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h
index 7256560..5d7c354 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h
@@ -321,6 +321,12 @@
   OffsetInfo CalculateOffset(const NodeInfo& node_info,
                              const LayoutBox* only_layout,
                              bool is_first_run = true);
+  bool TryCalculateOffset(const NodeInfo& node_info,
+                          const ComputedStyle& style,
+                          const LayoutBox* only_layout,
+                          bool try_fit_container_rect,
+                          bool is_first_run,
+                          OffsetInfo* const offset_info);
 
   const NGLayoutResult* Layout(
       const NodeToLayout& oof_node_to_layout,
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
index cd0238a..f59f01335 100644
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -54,6 +54,7 @@
 #include "third_party/blink/public/common/scheme_registry.h"
 #include "third_party/blink/public/mojom/commit_result/commit_result.mojom-blink.h"
 #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
+#include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
 #include "third_party/blink/public/mojom/page/page.mojom-blink.h"
 #include "third_party/blink/public/platform/modules/service_worker/web_service_worker_network_provider.h"
 #include "third_party/blink/public/platform/platform.h"
diff --git a/third_party/blink/renderer/core/loader/frame_loader.cc b/third_party/blink/renderer/core/loader/frame_loader.cc
index 4e3f096..061c423 100644
--- a/third_party/blink/renderer/core/loader/frame_loader.cc
+++ b/third_party/blink/renderer/core/loader/frame_loader.cc
@@ -51,6 +51,7 @@
 #include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
 #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
+#include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
 #include "third_party/blink/public/mojom/loader/request_context_frame_type.mojom-blink.h"
 #include "third_party/blink/public/platform/modules/service_worker/web_service_worker_network_provider.h"
 #include "third_party/blink/public/platform/platform.h"
diff --git a/third_party/blink/renderer/core/page/spatial_navigation.cc b/third_party/blink/renderer/core/page/spatial_navigation.cc
index 9276b5a..fc3993e 100644
--- a/third_party/blink/renderer/core/page/spatial_navigation.cc
+++ b/third_party/blink/renderer/core/page/spatial_navigation.cc
@@ -28,6 +28,7 @@
 
 #include "third_party/blink/renderer/core/page/spatial_navigation.h"
 
+#include "base/containers/adapters.h"
 #include "third_party/blink/public/mojom/scroll/scrollbar_mode.mojom-blink.h"
 #include "third_party/blink/renderer/core/dom/node_traversal.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
@@ -248,14 +249,14 @@
                         HitTestRequest::kAllowChildFrameContent);
 
   const HitTestResult::NodeSet& nodes = result.ListBasedTestResult();
-  for (auto hit_node = nodes.rbegin(); hit_node != nodes.rend(); ++hit_node) {
-    if (candidate.visible_node->ContainsIncludingHostElements(**hit_node))
+  for (const auto& hit_node : base::Reversed(nodes)) {
+    if (candidate.visible_node->ContainsIncludingHostElements(*hit_node))
       return true;
 
     if (FrameOwnerElement(candidate) &&
         FrameOwnerElement(candidate)
             ->contentDocument()
-            ->ContainsIncludingHostElements(**hit_node))
+            ->ContainsIncludingHostElements(*hit_node))
       return true;
   }
 
diff --git a/third_party/blink/renderer/core/paint/box_painter_base.cc b/third_party/blink/renderer/core/paint/box_painter_base.cc
index d5607b5..76fcf9a 100644
--- a/third_party/blink/renderer/core/paint/box_painter_base.cc
+++ b/third_party/blink/renderer/core/paint/box_painter_base.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/core/paint/box_painter_base.h"
 
+#include "base/containers/adapters.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/core/animation/element_animations.h"
 #include "third_party/blink/renderer/core/css/background_color_paint_image_generator.h"
@@ -54,9 +55,8 @@
   if (should_draw_background_in_separate_buffer)
     context.BeginLayer();
 
-  for (auto it = reversed_paint_list.rbegin(); it != reversed_paint_list.rend();
-       ++it) {
-    PaintFillLayer(paint_info, c, **it, rect, bleed, geometry);
+  for (auto* const paint : base::Reversed(reversed_paint_list)) {
+    PaintFillLayer(paint_info, c, *paint, rect, bleed, geometry);
   }
 
   if (should_draw_background_in_separate_buffer)
diff --git a/third_party/blink/renderer/core/paint/paint_layer.cc b/third_party/blink/renderer/core/paint/paint_layer.cc
index ca4f64f..dfd3365 100644
--- a/third_party/blink/renderer/core/paint/paint_layer.cc
+++ b/third_party/blink/renderer/core/paint/paint_layer.cc
@@ -309,20 +309,23 @@
 
   if (LayoutBox* box = DynamicTo<LayoutBox>(GetLayoutObject());
       box && box->AnchorScrollContainer()) {
-    const PaintLayer* boundary = ContainingScrollContainerLayer();
-    DCHECK(boundary);
+    LayoutBox::AnchorScrollData anchor_scroll_data =
+        box->ComputeAnchorScrollData();
+    DCHECK(anchor_scroll_data.inner_most_scroll_container_layer);
 
     bool needs_paint_property_update = false;
     for (const PaintLayer* scroller_layer =
-             box->AnchorScrollContainer()->Layer();
-         scroller_layer != ContainingScrollContainerLayer();
-         scroller_layer = scroller_layer->ContainingScrollContainerLayer()) {
+             anchor_scroll_data.inner_most_scroll_container_layer;
+         ; scroller_layer = scroller_layer->ContainingScrollContainerLayer()) {
       DCHECK(scroller_layer);
       bool is_new_entry =
           scroller_layer->GetScrollableArea()->AddAnchorPositionedLayer(this);
       if (!is_new_entry)
         break;
       needs_paint_property_update = true;
+      if (scroller_layer ==
+          anchor_scroll_data.outer_most_scroll_container_layer)
+        break;
     }
     if (needs_paint_property_update)
       box->SetNeedsPaintPropertyUpdate();
diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc b/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
index 04981e52..f92a636e 100644
--- a/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
+++ b/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
@@ -764,21 +764,10 @@
   if (NeedsPaintPropertyUpdate()) {
     if (NeedsAnchorScrollTranslation(object_)) {
       const auto& box = To<LayoutBox>(object_);
-      const PaintLayer* inner_most_scroll_container_layer =
-          box.AnchorScrollContainer()->Layer();
-      const PaintLayer* outer_most_scroll_container_layer =
-          inner_most_scroll_container_layer;
-      gfx::Vector2dF accumulated_scroll_offset(0, 0);
-      for (const PaintLayer* layer = inner_most_scroll_container_layer; layer;
-           layer = layer->ContainingScrollContainerLayer()) {
-        if (layer == box.Layer()->ContainingScrollContainerLayer())
-          break;
-        accumulated_scroll_offset +=
-            layer->GetScrollableArea()->ScrollPosition().OffsetFromOrigin();
-        outer_most_scroll_container_layer = layer;
-      }
-
-      gfx::Vector2dF translation_offset = -accumulated_scroll_offset;
+      LayoutBox::AnchorScrollData anchor_scroll_data =
+          box.ComputeAnchorScrollData();
+      gfx::Vector2dF translation_offset =
+          -anchor_scroll_data.accumulated_scroll_offset;
       TransformPaintPropertyNode::State state{translation_offset};
 
       DCHECK(full_context_.direct_compositing_reasons &
@@ -799,20 +788,23 @@
 
       scoped_refptr<const TransformPaintPropertyNode>
           inner_most_scroll_container =
-              inner_most_scroll_container_layer->GetLayoutObject()
+              anchor_scroll_data.inner_most_scroll_container_layer
+                  ->GetLayoutObject()
                   .FirstFragment()
                   .PaintProperties()
                   ->ScrollTranslation();
       scoped_refptr<const TransformPaintPropertyNode>
           outer_most_scroll_container =
-              outer_most_scroll_container_layer->GetLayoutObject()
+              anchor_scroll_data.outer_most_scroll_container_layer
+                  ->GetLayoutObject()
                   .FirstFragment()
                   .PaintProperties()
                   ->ScrollTranslation();
       state.anchor_scroll_containers_data = std::make_unique<
           TransformPaintPropertyNode::AnchorScrollContainersData>(
           std::move(inner_most_scroll_container),
-          std::move(outer_most_scroll_container));
+          std::move(outer_most_scroll_container),
+          anchor_scroll_data.accumulated_scroll_origin);
 
       OnUpdateTransform(properties_->UpdateAnchorScrollTranslation(
           *context_.current.transform, std::move(state)));
diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_builder_test.cc b/third_party/blink/renderer/core/paint/paint_property_tree_builder_test.cc
index 5334391c..8e8455b0 100644
--- a/third_party/blink/renderer/core/paint/paint_property_tree_builder_test.cc
+++ b/third_party/blink/renderer/core/paint/paint_property_tree_builder_test.cc
@@ -6830,8 +6830,6 @@
 
 TEST_P(PaintPropertyTreeBuilderTest,
        SimpleStickyTranslationChangeDoesNotCausePacUpdate) {
-  ScopedScrollUpdateOptimizationsForTest scroll_optimizations(true);
-
   SetBodyInnerHTML(R"HTML(
     <style>::webkit-scrollbar { width: 0; height: 0 }</style>
     <!-- position: relative and z-index: 1 are needed to make the scroller a
@@ -6866,7 +6864,8 @@
   UpdateAllLifecyclePhasesExceptPaint();
 
   EXPECT_EQ(gfx::Vector2dF(), sticky_translation->Translation2D());
-  EXPECT_FALSE(pac->NeedsUpdate());
+  EXPECT_EQ(!RuntimeEnabledFeatures::ScrollUpdateOptimizationsEnabled(),
+            pac->NeedsUpdate());
   EXPECT_EQ(gfx::Vector2dF(), cc_transform_node->local.To2dTranslation());
   EXPECT_TRUE(property_trees->transform_tree().needs_update());
   EXPECT_TRUE(cc_transform_node->transform_changed);
diff --git a/third_party/blink/renderer/core/script/classic_pending_script.cc b/third_party/blink/renderer/core/script/classic_pending_script.cc
index 5b723b25..1e40535c 100644
--- a/third_party/blink/renderer/core/script/classic_pending_script.cc
+++ b/third_party/blink/renderer/core/script/classic_pending_script.cc
@@ -78,7 +78,7 @@
 
   ClassicPendingScript* pending_script =
       MakeGarbageCollected<ClassicPendingScript>(
-          element, TextPosition::MinimumPosition(), KURL(), String(),
+          element, TextPosition::MinimumPosition(), KURL(), KURL(), String(),
           ScriptSourceLocationType::kExternalFile, options,
           true /* is_external */);
 
@@ -106,13 +106,14 @@
 ClassicPendingScript* ClassicPendingScript::CreateInline(
     ScriptElementBase* element,
     const TextPosition& starting_position,
+    const KURL& source_url,
     const KURL& base_url,
     const String& source_text,
     ScriptSourceLocationType source_location_type,
     const ScriptFetchOptions& options) {
   ClassicPendingScript* pending_script =
       MakeGarbageCollected<ClassicPendingScript>(
-          element, starting_position, base_url, source_text,
+          element, starting_position, source_url, base_url, source_text,
           source_location_type, options, false /* is_external */);
   pending_script->CheckState();
   return pending_script;
@@ -121,6 +122,7 @@
 ClassicPendingScript::ClassicPendingScript(
     ScriptElementBase* element,
     const TextPosition& starting_position,
+    const KURL& source_url_for_inline_script,
     const KURL& base_url_for_inline_script,
     const String& source_text_for_inline_script,
     ScriptSourceLocationType source_location_type,
@@ -128,6 +130,7 @@
     bool is_external)
     : PendingScript(element, starting_position),
       options_(options),
+      source_url_for_inline_script_(source_url_for_inline_script),
       base_url_for_inline_script_(base_url_for_inline_script),
       source_text_for_inline_script_(source_text_for_inline_script),
       source_location_type_(source_location_type),
@@ -384,7 +387,7 @@
   return document_cache_handler->HandlerForSource(source);
 }
 
-ClassicScript* ClassicPendingScript::GetSource(const KURL& document_url) const {
+ClassicScript* ClassicPendingScript::GetSource() const {
   CheckState();
   DCHECK(IsReady());
 
@@ -417,7 +420,7 @@
 
     return ClassicScript::Create(
         source_text_for_inline_script_,
-        ClassicScript::StripFragmentIdentifier(document_url),
+        ClassicScript::StripFragmentIdentifier(source_url_for_inline_script_),
         base_url_for_inline_script_, options_, source_location_type_,
         SanitizeScriptErrors::kDoNotSanitize, cache_handler, StartingPosition(),
         streamer ? ScriptStreamer::NotStreamingReason::kInvalid
diff --git a/third_party/blink/renderer/core/script/classic_pending_script.h b/third_party/blink/renderer/core/script/classic_pending_script.h
index 1908cec3..c17a5d55 100644
--- a/third_party/blink/renderer/core/script/classic_pending_script.h
+++ b/third_party/blink/renderer/core/script/classic_pending_script.h
@@ -47,6 +47,7 @@
   // For an inline script.
   static ClassicPendingScript* CreateInline(ScriptElementBase*,
                                             const TextPosition&,
+                                            const KURL& source_url,
                                             const KURL& base_url,
                                             const String& source_text,
                                             ScriptSourceLocationType,
@@ -54,6 +55,7 @@
 
   ClassicPendingScript(ScriptElementBase*,
                        const TextPosition&,
+                       const KURL& source_url_for_inline_script,
                        const KURL& base_url_for_inline_script,
                        const String& source_text_for_inline_script,
                        ScriptSourceLocationType,
@@ -67,7 +69,7 @@
     return mojom::blink::ScriptType::kClassic;
   }
 
-  ClassicScript* GetSource(const KURL& document_url) const override;
+  ClassicScript* GetSource() const override;
   bool IsReady() const override;
   bool IsExternal() const override { return is_external_; }
   bool WasCanceled() const override;
@@ -117,6 +119,8 @@
 
   const ScriptFetchOptions options_;
 
+  const KURL source_url_for_inline_script_;
+
   // "base url" snapshot taken at #prepare-a-script timing.
   // https://html.spec.whatwg.org/C/#prepare-a-script
   // which will eventually be used as #concept-script-base-url.
diff --git a/third_party/blink/renderer/core/script/html_parser_script_runner.cc b/third_party/blink/renderer/core/script/html_parser_script_runner.cc
index f56e55bf..87f88eb3 100644
--- a/third_party/blink/renderer/core/script/html_parser_script_runner.cc
+++ b/third_party/blink/renderer/core/script/html_parser_script_runner.cc
@@ -80,11 +80,11 @@
       pending_script->StartingPosition(), pending_script->UrlForTracing());
 }
 
-void DoExecuteScript(PendingScript* pending_script, const KURL& document_url) {
+void DoExecuteScript(PendingScript* pending_script) {
   TRACE_EVENT_WITH_FLOW1("blink", "HTMLParserScriptRunner ExecuteScript",
                          pending_script->GetElement(), TRACE_EVENT_FLAG_FLOW_IN,
                          "data", GetTraceArgsForScriptElement(pending_script));
-  pending_script->ExecuteScriptBlock(document_url);
+  pending_script->ExecuteScriptBlock();
 }
 
 void TraceParserBlockingScript(const PendingScript* pending_script,
@@ -127,17 +127,6 @@
   }
 }
 
-static KURL DocumentURLForScriptExecution(Document* document) {
-  if (!document)
-    return KURL();
-
-  if (!document->GetFrame())
-    return KURL();
-
-  // Use the URL of the currently active document for this frame.
-  return document->GetFrame()->GetDocument()->Url();
-}
-
 }  // namespace
 
 HTMLParserScriptRunner::HTMLParserScriptRunner(
@@ -232,7 +221,7 @@
 
     // <spec step="B.11">Execute the script element the script.</spec>
     DCHECK(IsExecutingScript());
-    DoExecuteScript(pending_script, DocumentURLForScriptExecution(document_));
+    DoExecuteScript(pending_script);
 
     // <spec step="B.12">Decrement the parser's script nesting level by one. If
     // the parser's script nesting level is zero (which it always should be at
@@ -264,7 +253,7 @@
     Microtask::PerformCheckpoint(V8PerIsolateData::MainThreadIsolate());
   }
 
-  DoExecuteScript(pending_script, DocumentURLForScriptExecution(document_));
+  DoExecuteScript(pending_script);
 }
 
 void HTMLParserScriptRunner::PendingScriptFinished(
diff --git a/third_party/blink/renderer/core/script/module_pending_script.cc b/third_party/blink/renderer/core/script/module_pending_script.cc
index d6776a7..661afb0a 100644
--- a/third_party/blink/renderer/core/script/module_pending_script.cc
+++ b/third_party/blink/renderer/core/script/module_pending_script.cc
@@ -64,7 +64,7 @@
   PendingScriptFinished();
 }
 
-Script* ModulePendingScript::GetSource(const KURL& document_url) const {
+Script* ModulePendingScript::GetSource() const {
   CHECK(IsReady());
   return GetModuleScript();
 }
diff --git a/third_party/blink/renderer/core/script/module_pending_script.h b/third_party/blink/renderer/core/script/module_pending_script.h
index 5bcf0ecd..2336ae86 100644
--- a/third_party/blink/renderer/core/script/module_pending_script.h
+++ b/third_party/blink/renderer/core/script/module_pending_script.h
@@ -63,7 +63,7 @@
   mojom::blink::ScriptType GetScriptType() const override {
     return mojom::blink::ScriptType::kModule;
   }
-  Script* GetSource(const KURL& document_url) const override;
+  Script* GetSource() const override;
   bool IsReady() const override { return ready_; }
   bool IsExternal() const override { return is_external_; }
   bool WasCanceled() const override { return false; }
diff --git a/third_party/blink/renderer/core/script/pending_script.cc b/third_party/blink/renderer/core/script/pending_script.cc
index 3574318..d96e8380 100644
--- a/third_party/blink/renderer/core/script/pending_script.cc
+++ b/third_party/blink/renderer/core/script/pending_script.cc
@@ -133,7 +133,7 @@
 }
 
 // <specdef href="https://html.spec.whatwg.org/C/#execute-the-script-block">
-void PendingScript::ExecuteScriptBlock(const KURL& document_url) {
+void PendingScript::ExecuteScriptBlock() {
   TRACE_EVENT0("blink", "PendingScript::ExecuteScriptBlock");
   ExecutionContext* context = element_->GetExecutionContext();
   if (!context) {
@@ -171,7 +171,7 @@
     }
   }
 
-  Script* script = GetSource(document_url);
+  Script* script = GetSource();
 
   const bool was_canceled = WasCanceled();
   const bool is_external = IsExternal();
diff --git a/third_party/blink/renderer/core/script/pending_script.h b/third_party/blink/renderer/core/script/pending_script.h
index d9fe47a..ecd28d6 100644
--- a/third_party/blink/renderer/core/script/pending_script.h
+++ b/third_party/blink/renderer/core/script/pending_script.h
@@ -91,7 +91,7 @@
   const char* NameInHeapSnapshot() const override { return "PendingScript"; }
 
   // Returns nullptr when "script's script is null", i.e. an error occurred.
-  virtual Script* GetSource(const KURL& document_url) const = 0;
+  virtual Script* GetSource() const = 0;
 
   // https://html.spec.whatwg.org/C/#the-script-is-ready
   virtual bool IsReady() const = 0;
@@ -130,7 +130,7 @@
   // PendingScript::Dispose() is called in ExecuteScriptBlock().
   //
   // This is virtual only for testing.
-  virtual void ExecuteScriptBlock(const KURL&);
+  virtual void ExecuteScriptBlock();
 
   virtual bool IsEligibleForDelay() const { return false; }
 
diff --git a/third_party/blink/renderer/core/script/script_loader.cc b/third_party/blink/renderer/core/script/script_loader.cc
index 539f0d00..34bef140 100644
--- a/third_party/blink/renderer/core/script/script_loader.cc
+++ b/third_party/blink/renderer/core/script/script_loader.cc
@@ -852,10 +852,13 @@
           script_location_type =
               ScriptSourceLocationType::kInlineInsideDocumentWrite;
         }
+        KURL source_url = (!is_in_document_write && parser_inserted_)
+                              ? element_document.Url()
+                              : KURL();
 
         prepared_pending_script_ = ClassicPendingScript::CreateInline(
-            element_, position, base_url, source_text, script_location_type,
-            options);
+            element_, position, source_url, base_url, source_text,
+            script_location_type, options);
 
         // <spec step="30.2.A.2">Mark as ready el given script.</spec>
         //
@@ -1015,11 +1018,7 @@
     case ScriptSchedulingType::kImmediate: {
       // <spec step="32.3">Otherwise, immediately execute the script element el,
       // even if other scripts are already executing.</spec>
-      KURL script_url = (!is_in_document_write && parser_inserted_)
-                            ? element_document.Url()
-                            : KURL();
-      TakePendingScript(ScriptSchedulingType::kImmediate)
-          ->ExecuteScriptBlock(script_url);
+      TakePendingScript(ScriptSchedulingType::kImmediate)->ExecuteScriptBlock();
       return nullptr;
     }
 
diff --git a/third_party/blink/renderer/core/script/script_runner.cc b/third_party/blink/renderer/core/script/script_runner.cc
index c0760bc1..5dd753b 100644
--- a/third_party/blink/renderer/core/script/script_runner.cc
+++ b/third_party/blink/renderer/core/script/script_runner.cc
@@ -208,7 +208,7 @@
   DCHECK(!document_->domWindow() || !document_->domWindow()->IsContextPaused());
   DCHECK(pending_script);
 
-  pending_script->ExecuteScriptBlock(NullURL());
+  pending_script->ExecuteScriptBlock();
 
   document_->DecrementLoadEventDelayCount();
 }
diff --git a/third_party/blink/renderer/core/script/script_runner_test.cc b/third_party/blink/renderer/core/script/script_runner_test.cc
index fd0bc544a..b906aef 100644
--- a/third_party/blink/renderer/core/script/script_runner_test.cc
+++ b/third_party/blink/renderer/core/script/script_runner_test.cc
@@ -47,12 +47,12 @@
 
   MOCK_CONST_METHOD0(GetScriptType, mojom::blink::ScriptType());
   MOCK_CONST_METHOD1(CheckMIMETypeBeforeRunScript, bool(Document*));
-  MOCK_CONST_METHOD1(GetSource, Script*(const KURL&));
+  MOCK_CONST_METHOD0(GetSource, Script*());
   MOCK_CONST_METHOD0(IsExternal, bool());
   MOCK_CONST_METHOD0(WasCanceled, bool());
   MOCK_CONST_METHOD0(UrlForTracing, KURL());
   MOCK_METHOD0(RemoveFromMemoryCache, void());
-  MOCK_METHOD1(ExecuteScriptBlock, void(const KURL&));
+  MOCK_METHOD0(ExecuteScriptBlock, void());
 
   bool IsReady() const override { return is_ready_; }
   void SetIsReady(bool is_ready) { is_ready_ = is_ready; }
@@ -122,7 +122,7 @@
   QueueScriptForExecution(pending_script);
   NotifyScriptReady(pending_script);
 
-  EXPECT_CALL(*pending_script, ExecuteScriptBlock(_));
+  EXPECT_CALL(*pending_script, ExecuteScriptBlock());
   platform_->RunUntilIdle();
 }
 
@@ -130,7 +130,7 @@
   auto* pending_script = MockPendingScript::CreateInOrder(document_);
   QueueScriptForExecution(pending_script);
 
-  EXPECT_CALL(*pending_script, ExecuteScriptBlock(_));
+  EXPECT_CALL(*pending_script, ExecuteScriptBlock());
 
   NotifyScriptReady(pending_script);
 
@@ -152,7 +152,7 @@
   }
 
   for (wtf_size_t i = 0; i < pending_scripts.size(); ++i) {
-    EXPECT_CALL(*pending_scripts[i], ExecuteScriptBlock(_))
+    EXPECT_CALL(*pending_scripts[i], ExecuteScriptBlock())
         .WillOnce(InvokeWithoutArgs([this, i] { order_.push_back(i + 1); }));
   }
 
@@ -182,15 +182,15 @@
   NotifyScriptReady(pending_script3);
   NotifyScriptReady(pending_script5);
 
-  EXPECT_CALL(*pending_script1, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script1, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(1); }));
-  EXPECT_CALL(*pending_script2, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script2, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(2); }));
-  EXPECT_CALL(*pending_script3, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script3, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(3); }));
-  EXPECT_CALL(*pending_script4, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script4, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(4); }));
-  EXPECT_CALL(*pending_script5, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script5, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(5); }));
 
   platform_->RunSingleTask();
@@ -225,20 +225,20 @@
   NotifyScriptReady(pending_script1);
 
   auto* pending_script = pending_script2;
-  EXPECT_CALL(*pending_script1, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script1, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([pending_script, this] {
         order_.push_back(1);
         NotifyScriptReady(pending_script);
       }));
 
   pending_script = pending_script3;
-  EXPECT_CALL(*pending_script2, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script2, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([pending_script, this] {
         order_.push_back(2);
         NotifyScriptReady(pending_script);
       }));
 
-  EXPECT_CALL(*pending_script3, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script3, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(3); }));
 
   // Make sure that re-entrant calls to notifyScriptReady don't cause
@@ -262,7 +262,7 @@
   NotifyScriptReady(pending_script1);
 
   MockPendingScript* pending_script = pending_script2;
-  EXPECT_CALL(*pending_script1, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script1, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([pending_script, &pending_script2, this] {
         order_.push_back(1);
         QueueScriptForExecution(pending_script);
@@ -270,14 +270,14 @@
       }));
 
   pending_script = pending_script3;
-  EXPECT_CALL(*pending_script2, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script2, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([pending_script, &pending_script3, this] {
         order_.push_back(2);
         QueueScriptForExecution(pending_script);
         NotifyScriptReady(pending_script3);
       }));
 
-  EXPECT_CALL(*pending_script3, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script3, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(3); }));
 
   // Make sure that re-entrant calls to queueScriptForExecution don't cause
@@ -303,7 +303,7 @@
     QueueScriptForExecution(pending_scripts[i]);
 
     if (i > 0) {
-      EXPECT_CALL(*pending_scripts[i], ExecuteScriptBlock(_))
+      EXPECT_CALL(*pending_scripts[i], ExecuteScriptBlock())
           .WillOnce(InvokeWithoutArgs([this, i] { order_.push_back(i); }));
     }
   }
@@ -311,7 +311,7 @@
   NotifyScriptReady(pending_scripts[0]);
   NotifyScriptReady(pending_scripts[1]);
 
-  EXPECT_CALL(*pending_scripts[0], ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_scripts[0], ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([&pending_scripts, this] {
         for (int i = 2; i < 20; i++) {
           NotifyScriptReady(pending_scripts[i]);
@@ -336,11 +336,11 @@
   QueueScriptForExecution(pending_script2);
   QueueScriptForExecution(pending_script3);
 
-  EXPECT_CALL(*pending_script1, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script1, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(1); }));
-  EXPECT_CALL(*pending_script2, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script2, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(2); }));
-  EXPECT_CALL(*pending_script3, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script3, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(3); }));
 
   NotifyScriptReady(pending_script1);
@@ -370,11 +370,11 @@
   NotifyScriptReady(pending_script2);
   NotifyScriptReady(pending_script3);
 
-  EXPECT_CALL(*pending_script1, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script1, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(1); }));
-  EXPECT_CALL(*pending_script2, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script2, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(2); }));
-  EXPECT_CALL(*pending_script3, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script3, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(3); }));
 
   document_->domWindow()->SetLifecycleState(
@@ -395,7 +395,7 @@
 
   QueueScriptForExecution(pending_script1);
   NotifyScriptReady(pending_script1);
-  EXPECT_CALL(*pending_script1, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script1, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(1); }));
   auto* delayer = MakeGarbageCollected<ScriptRunnerDelayer>(
       script_runner_, ScriptRunner::DelayReason::kForceDefer);
@@ -406,7 +406,7 @@
   auto* pending_script2 = MockPendingScript::CreateAsync(document_);
   QueueScriptForExecution(pending_script2);
   NotifyScriptReady(pending_script2);
-  EXPECT_CALL(*pending_script2, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script2, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(2); }));
   // Unblock async scripts before the tasks posted in NotifyScriptReady() is
   // executed, i.e. no RunUntilIdle() etc. in between.
@@ -422,9 +422,9 @@
   QueueScriptForExecution(pending_script1);
   QueueScriptForExecution(pending_script2);
 
-  EXPECT_CALL(*pending_script1, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script1, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(1); }));
-  EXPECT_CALL(*pending_script2, ExecuteScriptBlock(_))
+  EXPECT_CALL(*pending_script2, ExecuteScriptBlock())
       .WillOnce(InvokeWithoutArgs([this] { order_.push_back(2); }));
 
   NotifyScriptReady(pending_script1);
@@ -456,8 +456,8 @@
 
   // m_scriptRunner is gone. We need to make sure that ScriptRunner::Task do not
   // access dead object.
-  EXPECT_CALL(*pending_script1, ExecuteScriptBlock(_)).Times(0);
-  EXPECT_CALL(*pending_script2, ExecuteScriptBlock(_)).Times(0);
+  EXPECT_CALL(*pending_script1, ExecuteScriptBlock()).Times(0);
+  EXPECT_CALL(*pending_script2, ExecuteScriptBlock()).Times(0);
 
   platform_->RunUntilIdle();
 }
@@ -491,16 +491,16 @@
   ::testing::InSequence s;
 
   EXPECT_CALL(checkpoint, Call(1));
-  EXPECT_CALL(*pending_script1, ExecuteScriptBlock(_));
+  EXPECT_CALL(*pending_script1, ExecuteScriptBlock());
   EXPECT_CALL(checkpoint, Call(2));
   EXPECT_CALL(checkpoint, Call(3));
-  EXPECT_CALL(*pending_script2, ExecuteScriptBlock(_));
+  EXPECT_CALL(*pending_script2, ExecuteScriptBlock());
   EXPECT_CALL(checkpoint, Call(4));
   EXPECT_CALL(checkpoint, Call(5));
-  EXPECT_CALL(*pending_script3, ExecuteScriptBlock(_));
+  EXPECT_CALL(*pending_script3, ExecuteScriptBlock());
   EXPECT_CALL(checkpoint, Call(6));
   EXPECT_CALL(checkpoint, Call(7));
-  EXPECT_CALL(*pending_script4, ExecuteScriptBlock(_));
+  EXPECT_CALL(*pending_script4, ExecuteScriptBlock());
   EXPECT_CALL(checkpoint, Call(8));
   EXPECT_CALL(checkpoint, Call(9));
 
diff --git a/third_party/blink/renderer/core/script/xml_parser_script_runner.cc b/third_party/blink/renderer/core/script/xml_parser_script_runner.cc
index 652c0fe..e07f2de0 100644
--- a/third_party/blink/renderer/core/script/xml_parser_script_runner.cc
+++ b/third_party/blink/renderer/core/script/xml_parser_script_runner.cc
@@ -51,7 +51,7 @@
 
   // <spec label="Parsing" step="4">Execute the script element given by the
   // pending parsing-blocking script.</spec>
-  pending_script->ExecuteScriptBlock(NullURL());
+  pending_script->ExecuteScriptBlock();
 
   // <spec label="Parsing" step="5">Set the pending parsing-blocking script to
   // null.</spec>
@@ -102,7 +102,7 @@
       // TODO(hiroshige): XMLParserScriptRunner doesn't check style sheet that
       // is blocking scripts and thus the script is executed immediately here,
       // and thus Steps 1-3 are skipped.
-      pending_script->ExecuteScriptBlock(document.Url());
+      pending_script->ExecuteScriptBlock();
       break;
 
     case ScriptSchedulingType::kDefer:
diff --git a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
index cee57f1..61ea6e5 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
@@ -3500,13 +3500,7 @@
     if (visited.size() > kMaxDescendantsForTextAlternativeComputation)
       break;
 
-    // Don't recurse into children that are explicitly hidden.
-    // Note that we don't call IsInert()/IsAriaHidden because they would return
-    // true if any ancestor is hidden, but we need to be able to compute the
-    // accessible name of object inside hidden subtrees (for example, if
-    // aria-labelledby points to an object that's hidden).
-    if (child->AOMPropertyOrARIAAttributeIsTrue(AOMBooleanProperty::kHidden) ||
-        child->IsHiddenForTextAlternativeCalculation(
+    if (child->IsHiddenForTextAlternativeCalculation(
             aria_label_or_description_root)) {
       continue;
     }
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.cc b/third_party/blink/renderer/modules/accessibility/ax_object.cc
index a33cc40..0132a81 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_object.cc
@@ -613,6 +613,16 @@
   return static_cast<int32_t>(result);
 }
 
+const AXObject* FindAncestorWithAriaHidden(const AXObject* start) {
+  for (const AXObject* object = start; object;
+       object = object->ParentObject()) {
+    if (object->AOMPropertyOrARIAAttributeIsTrue(AOMBooleanProperty::kHidden))
+      return object;
+  }
+
+  return nullptr;
+}
+
 // static
 unsigned AXObject::number_of_live_ax_objects_ = 0;
 
@@ -649,7 +659,6 @@
   DCHECK(!is_initializing_);
   base::AutoReset<bool> reentrancy_protector(&is_initializing_, true);
 #endif  // DCHECK_IS_ON()
-
   // The role must be determined immediately.
   // Note: in order to avoid reentrancy, the role computation cannot use the
   // ParentObject(), although it can use the DOM parent.
@@ -691,6 +700,9 @@
     AXObjectCache().MaybeNewRelationTarget(*GetNode(), this);
 
   UpdateCachedAttributeValuesIfNeeded(false);
+
+  DCHECK(GetDocument()) << "All AXObjects must have a document: "
+                        << ToString(true, true);
 }
 
 void AXObject::Detach() {
@@ -1219,6 +1231,9 @@
   bool is_visible = IsVisible();
   if (!is_visible)
     node_data->AddState(ax::mojom::blink::State::kInvisible);
+  SANITIZER_CHECK_EQ(cached_is_aria_hidden_, !!FindAncestorWithAriaHidden(this))
+      << "IsAriaHidden() doesn't match existence of an aria-hidden ancestor: "
+      << ToString(true);
 
   if (is_visible || is_focusable) {
     // If the author applied the ARIA "textbox" role on something that is not
@@ -2927,14 +2942,7 @@
 }
 
 const AXObject* AXObject::AriaHiddenRoot() const {
-  if (!IsAriaHidden())
-    return nullptr;
-  for (const AXObject* object = this; object; object = object->ParentObject()) {
-    if (object->AOMPropertyOrARIAAttributeIsTrue(AOMBooleanProperty::kHidden))
-      return object;
-  }
-
-  return nullptr;
+  return IsAriaHidden() ? FindAncestorWithAriaHidden(this) : nullptr;
 }
 
 const AXObject* AXObject::InertRoot() const {
@@ -3823,10 +3831,6 @@
 // https://github.com/w3c/accname/issues/57
 bool AXObject::IsHiddenForTextAlternativeCalculation(
     const AXObject* aria_label_or_description_root) const {
-  // aria-hidden=false allows hidden contents to be used in name from contents.
-  if (AOMPropertyOrARIAAttributeIsFalse(AOMBooleanProperty::kHidden))
-    return false;
-
   auto* node = GetNode();
   if (!node)
     return false;
@@ -3851,6 +3855,12 @@
   if (IsA<SVGDescElement>(node))
     return false;
 
+  // Always contribute text nodes, because they don't have display-related
+  // properties of their own, only their parents do. Parents should have been
+  // checked for their contribution earlier in the process.
+  if (IsA<Text>(node))
+    return false;
+
   // Markers do not contribute to the accessible name.
   // TODO(accessibility): Chrome has never included markers, but that's
   // actually undefined behavior. We will have to revisit after this is
@@ -3864,8 +3874,28 @@
   // are explicitly hidden or they inherited the hidden value, so we resort to
   // contributing them all. See also: https://github.com/w3c/accname/issues/57
   if (aria_label_or_description_root &&
-      aria_label_or_description_root->IsHiddenViaStyle())
+      !aria_label_or_description_root->IsVisible()) {
     return false;
+  }
+
+  // aria-hidden nodes are generally excluded, with the exception:
+  // when computing name/description through an aria-labelledby/describedby
+  // relation, if the target of the relation is hidden it will expose the entire
+  // subtree, including aria-hidden=true nodes. The exception was accounted in
+  // the previous if block, so we are safe to hide any node with
+  // aria-hidden=true at this point.
+  if (AOMPropertyOrARIAAttributeIsTrue(AOMBooleanProperty::kHidden)) {
+    // We only hide aria-hidden text if the node does not support focus as a
+    // bad authoring correction.
+    if (!CanSetFocusAttribute())
+      return true;
+  } else {
+    // When IsAriaHidden() returns false, we only know the node is not in an
+    // aria-hidden="true" subtree. We need to check for the case where
+    // aria-hidden="false" specifically.
+    if (AOMPropertyOrARIAAttributeIsFalse(AOMBooleanProperty::kHidden))
+      return false;
+  }
 
   return IsHiddenViaStyle();
 }
@@ -6648,6 +6678,9 @@
       }
     }
 
+    if (!GetDocument())
+      string_builder = string_builder + " missingDocument";
+
     // Add properties of interest that often contribute to errors:
     if (HasARIAOwns(GetElement())) {
       string_builder =
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
index 712abe8..a20818f 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
@@ -1299,6 +1299,8 @@
   if (AXObject* obj = Get(accessible_node))
     return obj;
 
+  DCHECK_EQ(accessible_node->GetDocument(), &GetDocument());
+
   DCHECK(parent)
       << "A virtual object must have a parent, and cannot exist without one. "
          "The parent is set when the object is constructed.";
@@ -1680,8 +1682,7 @@
 
 // This is safe to call even if there isn't a current mapping.
 void AXObjectCacheImpl::Remove(AccessibleNode* accessible_node) {
-  if (!accessible_node)
-    return;
+  DCHECK(accessible_node);
 
   auto iter = accessible_node_mapping_.find(accessible_node);
   if (iter == accessible_node_mapping_.end())
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.cc
index bb48b39..de2bbd5 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.cc
@@ -89,6 +89,8 @@
     ExceptionState& exception_state) {
   if (!CheckRunIsNotParented(run, &exception_state))
     return nullptr;
+  if (!CheckViewExists(run, &exception_state))
+    return nullptr;
   text_runs_.push_back(run);
   block_->AddChild(run->GetLayoutObject());
   run->SetParent(this);
@@ -101,7 +103,8 @@
     CanvasFormattedTextRun* run,
     ExceptionState& exception_state) {
   if (!CheckRunsIndexBound(index, &exception_state) ||
-      !CheckRunIsNotParented(run, &exception_state))
+      !CheckRunIsNotParented(run, &exception_state) ||
+      !CheckViewExists(run, &exception_state))
     return nullptr;
   run->SetParent(this);
   block_->AddChild(run->GetLayoutObject(),
@@ -121,7 +124,8 @@
     return nullptr;
   if (index == text_runs_.size())
     return appendRun(run, exception_state);
-  if (!CheckRunsIndexBound(index, &exception_state))
+  if (!CheckRunsIndexBound(index, &exception_state) ||
+      !CheckViewExists(run, &exception_state))
     return nullptr;
   block_->AddChild(run->GetLayoutObject(),
                    text_runs_[index]->GetLayoutObject());
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.h b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.h
index 6ca067d..93f80ba 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.h
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.h
@@ -84,6 +84,19 @@
     return true;
   }
 
+  bool CheckViewExists(CanvasFormattedTextRun* run,
+                       ExceptionState* exception_state) const {
+    if (!run->GetLayoutObject() || !run->GetLayoutObject()->View()) {
+      if (exception_state) {
+        exception_state->ThrowDOMException(
+            DOMExceptionCode::kInvalidStateError,
+            "The run is owned by a destroyed document.");
+      }
+      return false;
+    }
+    return true;
+  }
+
   CanvasFormattedTextRun* getRun(unsigned index,
                                  ExceptionState& exception_state) const {
     if (!CheckRunsIndexBound(index, &exception_state))
diff --git a/third_party/blink/renderer/modules/credentialmanagement/credentials_container.cc b/third_party/blink/renderer/modules/credentialmanagement/credentials_container.cc
index 617121e..5c68fd9 100644
--- a/third_party/blink/renderer/modules/credentialmanagement/credentials_container.cc
+++ b/third_party/blink/renderer/modules/credentialmanagement/credentials_container.cc
@@ -7,17 +7,12 @@
 #include <memory>
 #include <utility>
 
-#include "base/metrics/histogram_macros.h"
 #include "base/notreached.h"
-#include "base/numerics/safe_conversions.h"
-#include "base/rand_util.h"
 #include "build/build_config.h"
 #include "services/network/public/cpp/is_potentially_trustworthy.h"
 #include "third_party/blink/public/common/sms/webotp_constants.h"
-#include "third_party/blink/public/common/sms/webotp_service_outcome.h"
 #include "third_party/blink/public/mojom/credentialmanagement/credential_manager.mojom-blink.h"
 #include "third_party/blink/public/mojom/payments/payment_credential.mojom-blink.h"
-#include "third_party/blink/public/mojom/permissions_policy/permissions_policy.mojom-blink.h"
 #include "third_party/blink/public/mojom/sms/webotp_service.mojom-blink.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
@@ -35,7 +30,6 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_identity_credential_request_options.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_identity_provider.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_otp_credential_request_options.h"
-#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_credential_instrument.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential_creation_options.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential_descriptor.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential_parameters.h"
@@ -44,12 +38,10 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential_user_entity.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_union_htmlformelement_passwordcredentialdata.h"
 #include "third_party/blink/renderer/core/dom/abort_signal.h"
-#include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/dom_exception.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h"
 #include "third_party/blink/renderer/core/frame/frame.h"
-#include "third_party/blink/renderer/core/frame/frame_console.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/frame/navigator.h"
 #include "third_party/blink/renderer/core/frame/web_feature.h"
@@ -60,7 +52,7 @@
 #include "third_party/blink/renderer/modules/credentialmanagement/authenticator_attestation_response.h"
 #include "third_party/blink/renderer/modules/credentialmanagement/credential.h"
 #include "third_party/blink/renderer/modules/credentialmanagement/credential_manager_proxy.h"
-#include "third_party/blink/renderer/modules/credentialmanagement/credential_manager_type_converters.h"
+#include "third_party/blink/renderer/modules/credentialmanagement/credential_manager_type_converters.h"  // IWYU pragma: keep
 #include "third_party/blink/renderer/modules/credentialmanagement/federated_credential.h"
 #include "third_party/blink/renderer/modules/credentialmanagement/identity_credential.h"
 #include "third_party/blink/renderer/modules/credentialmanagement/otp_credential.h"
@@ -72,7 +64,6 @@
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
-#include "third_party/blink/renderer/platform/weborigin/origin_access_entry.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
@@ -1129,8 +1120,9 @@
           WTF::Bind(&AbortPublicKeyRequest, WrapPersistent(script_state)));
     }
 
-    bool is_conditional_ui_request = conditionalMediationSupported() &&
-                                     options->mediation() == "conditional";
+    bool is_conditional_ui_request =
+        RuntimeEnabledFeatures::WebAuthenticationConditionalUIEnabled() &&
+        options->mediation() == "conditional";
     if (is_conditional_ui_request &&
         options->publicKey()->hasAllowCredentials() &&
         !options->publicKey()->allowCredentials().IsEmpty()) {
@@ -1683,10 +1675,6 @@
   return promise;
 }
 
-bool CredentialsContainer::conditionalMediationSupported() {
-  return RuntimeEnabledFeatures::WebAuthenticationConditionalUIEnabled();
-}
-
 void CredentialsContainer::Trace(Visitor* visitor) const {
   ScriptWrappable::Trace(visitor);
   Supplement<Navigator>::Trace(visitor);
diff --git a/third_party/blink/renderer/modules/credentialmanagement/credentials_container.h b/third_party/blink/renderer/modules/credentialmanagement/credentials_container.h
index 1c9c3c5..86ee9e87 100644
--- a/third_party/blink/renderer/modules/credentialmanagement/credentials_container.h
+++ b/third_party/blink/renderer/modules/credentialmanagement/credentials_container.h
@@ -38,7 +38,6 @@
                        const CredentialCreationOptions*,
                        ExceptionState&);
   ScriptPromise preventSilentAccess(ScriptState*);
-  bool conditionalMediationSupported();
 
   void Trace(Visitor*) const override;
 };
diff --git a/third_party/blink/renderer/modules/credentialmanagement/credentials_container.idl b/third_party/blink/renderer/modules/credentialmanagement/credentials_container.idl
index 69aa7d2..317e173 100644
--- a/third_party/blink/renderer/modules/credentialmanagement/credentials_container.idl
+++ b/third_party/blink/renderer/modules/credentialmanagement/credentials_container.idl
@@ -10,5 +10,4 @@
     [CallWith=ScriptState, MeasureAs=CredentialManagerStore] Promise<Credential> store(Credential credential);
     [CallWith=ScriptState, RaisesException, MeasureAs=CredentialManagerCreate] Promise<Credential?> create(optional CredentialCreationOptions options = {});
     [CallWith=ScriptState, MeasureAs=CredentialManagerPreventSilentAccess] Promise<void> preventSilentAccess();
-    [RuntimeEnabled=WebAuthenticationConditionalUI] readonly attribute boolean conditionalMediationSupported;
 };
diff --git a/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.cc b/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.cc
index a62daf8..655ba85 100644
--- a/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.cc
+++ b/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.cc
@@ -9,7 +9,6 @@
 #include "third_party/blink/public/mojom/webauthn/authenticator.mojom-shared.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
-#include "third_party/blink/renderer/core/dom/dom_exception.h"
 #include "third_party/blink/renderer/core/frame/web_feature.h"
 #include "third_party/blink/renderer/modules/credentialmanagement/credential_manager_proxy.h"
 #include "third_party/blink/renderer/modules/credentialmanagement/scoped_promise_resolver.h"
@@ -56,6 +55,7 @@
           AuthenticatorAttachmentToString(authenticator_attachment)),
       extension_outputs_(extension_outputs) {}
 
+// static
 ScriptPromise
 PublicKeyCredential::isUserVerifyingPlatformAuthenticatorAvailable(
     ScriptState* script_state) {
@@ -89,6 +89,31 @@
       extension_outputs_.Get());
 }
 
+// static
+ScriptPromise PublicKeyCredential::isConditionalMediationAvailable(
+    ScriptState* script_state) {
+  auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state);
+  ScriptPromise promise = resolver->Promise();
+
+  // Ignore calls if the current realm execution context is no longer valid,
+  // e.g., because the responsible document was detached.
+  DCHECK(resolver->GetExecutionContext());
+  if (resolver->GetExecutionContext()->IsContextDestroyed()) {
+    resolver->Reject();
+    return promise;
+  }
+  UseCounter::Count(
+      resolver->GetExecutionContext(),
+      WebFeature::kCredentialManagerIsConditionalMediationAvailable);
+  auto* authenticator =
+      CredentialManagerProxy::From(script_state)->Authenticator();
+  authenticator->IsConditionalMediationAvailable(
+      WTF::Bind([](std::unique_ptr<ScopedPromiseResolver> resolver,
+                   bool available) { resolver->Release()->Resolve(available); },
+                std::make_unique<ScopedPromiseResolver>(resolver)));
+  return promise;
+}
+
 void PublicKeyCredential::Trace(Visitor* visitor) const {
   visitor->Trace(raw_id_);
   visitor->Trace(response_);
diff --git a/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.h b/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.h
index 6eb580a..7af95010 100644
--- a/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.h
+++ b/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.h
@@ -44,6 +44,7 @@
   static ScriptPromise isUserVerifyingPlatformAuthenticatorAvailable(
       ScriptState*);
   AuthenticationExtensionsClientOutputs* getClientExtensionResults() const;
+  static ScriptPromise isConditionalMediationAvailable(ScriptState*);
 
   // Credential:
   void Trace(Visitor*) const override;
diff --git a/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.idl b/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.idl
index e84f5b6..6bf242d 100644
--- a/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.idl
+++ b/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.idl
@@ -14,4 +14,5 @@
     [SameObject] readonly attribute DOMString? authenticatorAttachment;
     [CallWith=ScriptState] static Promise<boolean> isUserVerifyingPlatformAuthenticatorAvailable();
     AuthenticationExtensionsClientOutputs getClientExtensionResults();
+    [RuntimeEnabled=WebAuthenticationConditionalUI, CallWith=ScriptState] static Promise<boolean> isConditionalMediationAvailable();
 };
diff --git a/third_party/blink/renderer/modules/exported/web_ax_object.cc b/third_party/blink/renderer/modules/exported/web_ax_object.cc
index 6216ae8..8a7b3dd 100644
--- a/third_party/blink/renderer/modules/exported/web_ax_object.cc
+++ b/third_party/blink/renderer/modules/exported/web_ax_object.cc
@@ -888,6 +888,7 @@
   if (IsDetached())
     return false;
 
+  DCHECK(private_->GetDocument());
   DCHECK_GE(private_->GetDocument()->Lifecycle().GetState(),
             DocumentLifecycle::kLayoutClean)
       << "Document lifecycle must be at LayoutClean or later, was "
diff --git a/third_party/blink/renderer/modules/quota/window_quota.idl b/third_party/blink/renderer/modules/quota/window_quota.idl
index 786bc1bc..18edfac 100644
--- a/third_party/blink/renderer/modules/quota/window_quota.idl
+++ b/third_party/blink/renderer/modules/quota/window_quota.idl
@@ -26,5 +26,6 @@
 [
     ImplementedAs=DOMWindowQuota
 ] partial interface Window {
-    [DeprecateAs=PrefixedStorageInfo] readonly attribute DeprecatedStorageInfo webkitStorageInfo;
+    [DeprecateAs=PrefixedStorageInfo,
+     RuntimeEnabled=PrefixedStorageInfo] readonly attribute DeprecatedStorageInfo webkitStorageInfo;
 };
diff --git a/third_party/blink/renderer/modules/webcodecs/decoder_template.cc b/third_party/blink/renderer/modules/webcodecs/decoder_template.cc
index a8ace58c..10c583c 100644
--- a/third_party/blink/renderer/modules/webcodecs/decoder_template.cc
+++ b/third_party/blink/renderer/modules/webcodecs/decoder_template.cc
@@ -184,9 +184,8 @@
   } else {
     request->status = std::move(status_or_buffer).error();
     if (request->status == media::DecoderStatus::Codes::kKeyFrameRequired) {
-      exception_state.ThrowDOMException(
-          DOMExceptionCode::kDataError,
-          "A key frame is required after configure() or flush().");
+      exception_state.ThrowDOMException(DOMExceptionCode::kDataError,
+                                        request->status.message().c_str());
       return;
     }
   }
diff --git a/third_party/blink/renderer/modules/webcodecs/video_decoder.cc b/third_party/blink/renderer/modules/webcodecs/video_decoder.cc
index 3d0c902..bec771f 100644
--- a/third_party/blink/renderer/modules/webcodecs/video_decoder.cc
+++ b/third_party/blink/renderer/modules/webcodecs/video_decoder.cc
@@ -574,6 +574,19 @@
       ParseAv1KeyFrame(*decoder_buffer, &is_key_frame);
     } else if (current_codec_ == media::VideoCodec::kH264) {
       ParseH264KeyFrame(*decoder_buffer, &is_key_frame);
+
+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
+      // Use a more helpful error message if we think the user may have forgot
+      // to provide a description for AVC H.264. We could try to guess at the
+      // NAL unit size and see if a NAL unit parses out, but this seems fine.
+      if (!is_key_frame && !h264_converter_) {
+        return media::DecoderStatus(
+            media::DecoderStatus::Codes::kKeyFrameRequired,
+            "A key frame is required after configure() or flush(). If you're "
+            "using AVC formatted H.264 you must fill out the description field "
+            "in the VideoDecoderConfig.");
+      }
+#endif
     }
 
     if (!is_key_frame) {
diff --git a/third_party/blink/renderer/modules/webdatabase/database_task.cc b/third_party/blink/renderer/modules/webdatabase/database_task.cc
index 6b917f3..ef8cdc9 100644
--- a/third_party/blink/renderer/modules/webdatabase/database_task.cc
+++ b/third_party/blink/renderer/modules/webdatabase/database_task.cc
@@ -108,7 +108,7 @@
   success_ = GetDatabase()->PerformOpenAndVerify(set_version_in_new_database_,
                                                  error_, error_message);
   if (!success_)
-    error_message_ = error_message.IsolatedCopy();
+    error_message_ = error_message;
 }
 
 #if DCHECK_IS_ON()
diff --git a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
index 1a98c8e..266ec5a 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
@@ -476,6 +476,8 @@
         *anchor_scroll_data->inner_most_scroll_container);
     compositor_data.outer_most_scroll_container_id = EnsureCompositorScrollNode(
         *anchor_scroll_data->outer_most_scroll_container);
+    compositor_data.accumulated_scroll_origin =
+        anchor_scroll_data->accumulated_scroll_origin;
   }
 
   auto compositor_element_id = transform_node.GetCompositorElementId();
diff --git a/third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache.cc b/third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache.cc
index 1f60bed..aa78911 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache.cc
+++ b/third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache.h"
 
+#include "base/containers/adapters.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/time/time.h"
 #include "third_party/blink/renderer/platform/graphics/canvas_resource_provider.h"
@@ -169,9 +170,9 @@
 
   // Loop from LRU to MRU
   int stale_resource_count = 0;
-  for (auto it = unused_providers_.rbegin(); it != unused_providers_.rend();
-       ++it) {
-    if ((current_timer_id_ - it->timer_id_) < kTimerIdDeltaForDeletion) {
+  for (const auto& unused_provider : base::Reversed(unused_providers_)) {
+    if ((current_timer_id_ - unused_provider.timer_id_) <
+        kTimerIdDeltaForDeletion) {
       // These are the resources which are recycled and stay in the cache for
       // less than kCleanUpDelayInSeconds. They are not to be deleted this time.
       break;
diff --git a/third_party/blink/renderer/platform/graphics/paint/geometry_mapper.cc b/third_party/blink/renderer/platform/graphics/paint/geometry_mapper.cc
index 137f047..2c134ef8 100644
--- a/third_party/blink/renderer/platform/graphics/paint/geometry_mapper.cc
+++ b/third_party/blink/renderer/platform/graphics/paint/geometry_mapper.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/platform/graphics/paint/geometry_mapper.h"
 
+#include "base/containers/adapters.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 
@@ -415,13 +416,12 @@
 
   // Iterate down from the top intermediate node found in the previous loop,
   // computing and memoizing clip rects as we go.
-  for (auto it = intermediate_nodes.rbegin(); it != intermediate_nodes.rend();
-       ++it) {
+  for (auto* const node : base::Reversed(intermediate_nodes)) {
     ExtraProjectionResult extra_result;
     bool success = false;
     const auto& translation_2d_or_matrix =
         SourceToDestinationProjectionInternal(
-            (*it)->LocalTransformSpace().Unalias(), ancestor_transform,
+            node->LocalTransformSpace().Unalias(), ancestor_transform,
             extra_result, success);
     if (!success)
       return FloatClipRect(gfx::RectF());
@@ -432,14 +432,14 @@
 
     // This is where we generate the roundedness and tightness of clip rect
     // from clip and transform properties, and propagate them to |clip|.
-    FloatClipRect mapped_rect(GetClipRect(**it, clip_behavior));
+    FloatClipRect mapped_rect(GetClipRect(*node, clip_behavior));
     translation_2d_or_matrix.MapFloatClipRect(mapped_rect);
     if (inclusive_behavior == kInclusiveIntersect) {
       clip.InclusiveIntersect(mapped_rect);
     } else {
       clip.Intersect(mapped_rect);
       // Inclusive intersected clips are not cached at present.
-      (*it)->GetClipCache().SetCachedClip(
+      node->GetClipCache().SetCachedClip(
           GeometryMapperClipCache::ClipCacheEntry{clip_and_transform, clip,
                                                   extra_result.has_animation,
                                                   extra_result.has_sticky});
diff --git a/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_test.cc b/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_test.cc
index 8c69431..f80a286 100644
--- a/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_test.cc
+++ b/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_test.cc
@@ -135,8 +135,10 @@
   EXPECT_CLIP_RECT_EQ(expected_clip, cached_clip->clip_rect);
   EXPECT_EQ(expected_clip_has_transform_animation,
             cached_clip->has_transform_animation);
-  EXPECT_EQ(expected_clip_has_sticky_transform,
-            cached_clip->has_sticky_transform);
+  if (RuntimeEnabledFeatures::ScrollUpdateOptimizationsEnabled()) {
+    EXPECT_EQ(expected_clip_has_sticky_transform,
+              cached_clip->has_sticky_transform);
+  }
 }
 
 // See the data fields of GeometryMapperTest for variables that will be used in
@@ -566,8 +568,6 @@
 }
 
 TEST_P(GeometryMapperTest, ExpandVisualRectWithClipBeforeSticky) {
-  ScopedScrollUpdateOptimizationsForTest scroll_optimizations(true);
-
   expected_transform = TransformationMatrix().Translate(0, 100);
   auto transform = CreateTransform(t0(), *expected_transform, gfx::Point3F(),
                                    CompositingReason::kStickyPosition);
@@ -580,7 +580,10 @@
   expected_visual_rect.Intersect(clip->LayoutClipRect());
   expected_visual_rect.Map(*expected_transform);
   // The clip has sticky transform, so it doesn't apply to the visual rect.
-  expected_visual_rect_expanded_for_compositing = InfiniteLooseFloatClipRect();
+  if (RuntimeEnabledFeatures::ScrollUpdateOptimizationsEnabled()) {
+    expected_visual_rect_expanded_for_compositing =
+        InfiniteLooseFloatClipRect();
+  }
   EXPECT_FALSE(expected_visual_rect.IsTight());
   expected_clip = clip->LayoutClipRect();
   expected_clip.Map(*expected_transform);
@@ -631,8 +634,6 @@
 }
 
 TEST_P(GeometryMapperTest, ExpandVisualRectWithClipAfterSticky) {
-  ScopedScrollUpdateOptimizationsForTest scroll_optimizations(true);
-
   expected_transform = TransformationMatrix().Translate(0, 100);
   auto transform = CreateTransform(t0(), *expected_transform, gfx::Point3F(),
                                    CompositingReason::kStickyPosition);
@@ -648,10 +649,12 @@
   EXPECT_FALSE(expected_visual_rect.IsTight());
   expected_clip = clip->LayoutClipRect();
   EXPECT_TRUE(expected_clip.IsTight());
-  // The visual rect is expanded first to infinity because of the sticky
-  // transform, then clipped by the clip.
-  expected_visual_rect_expanded_for_compositing = expected_clip;
-  expected_visual_rect_expanded_for_compositing->ClearIsTight();
+  if (RuntimeEnabledFeatures::ScrollUpdateOptimizationsEnabled()) {
+    // The visual rect is expanded first to infinity because of the sticky
+    // transform, then clipped by the clip.
+    expected_visual_rect_expanded_for_compositing = expected_clip;
+    expected_visual_rect_expanded_for_compositing->ClearIsTight();
+  }
   CheckMappings();
 }
 
@@ -685,8 +688,6 @@
 
 TEST_P(GeometryMapperTest,
        ExpandVisualRectWithTwoClipsWithAnimatingTransformBetween) {
-  ScopedScrollUpdateOptimizationsForTest scroll_optimizations(true);
-
   auto clip1 = CreateClip(c0(), t0(), FloatRoundedRect(10, 10, 200, 200));
   expected_transform = TransformationMatrix().Rotate(45);
   auto transform = CreateAnimatingTransform(t0(), *expected_transform);
@@ -716,8 +717,6 @@
 }
 
 TEST_P(GeometryMapperTest, ExpandVisualRectWithTwoClipsWithStickyBetween) {
-  ScopedScrollUpdateOptimizationsForTest scroll_optimizations(true);
-
   auto clip1 = CreateClip(c0(), t0(), FloatRoundedRect(10, 10, 200, 200));
   expected_transform = TransformationMatrix().Translate(0, 100);
   auto transform = CreateTransform(t0(), *expected_transform, gfx::Point3F(),
@@ -739,11 +738,13 @@
   expected_visual_rect.Map(*expected_transform);
   expected_visual_rect.Intersect(expected_clip);
   EXPECT_FALSE(expected_visual_rect.IsTight());
-  // The visual rect is expanded to infinity because of the sticky transform,
-  // then clipped by clip1. clip2 doesn't apply because it's below the sticky
-  // transform.
-  expected_visual_rect_expanded_for_compositing = clip1->LayoutClipRect();
-  expected_visual_rect_expanded_for_compositing->ClearIsTight();
+  if (RuntimeEnabledFeatures::ScrollUpdateOptimizationsEnabled()) {
+    // The visual rect is expanded to infinity because of the sticky transform,
+    // then clipped by clip1. clip2 doesn't apply because it's below the sticky
+    // transform.
+    expected_visual_rect_expanded_for_compositing = clip1->LayoutClipRect();
+    expected_visual_rect_expanded_for_compositing->ClearIsTight();
+  }
   CheckMappings();
 }
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h
index 0a09a2d..9a1b83a 100644
--- a/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h
+++ b/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h
@@ -165,17 +165,21 @@
   struct AnchorScrollContainersData {
     scoped_refptr<const TransformPaintPropertyNode> inner_most_scroll_container;
     scoped_refptr<const TransformPaintPropertyNode> outer_most_scroll_container;
+    gfx::Vector2d accumulated_scroll_origin;
 
     AnchorScrollContainersData(scoped_refptr<const TransformPaintPropertyNode>
                                    inner_most_scroll_container,
                                scoped_refptr<const TransformPaintPropertyNode>
-                                   outer_most_scroll_container)
+                                   outer_most_scroll_container,
+                               gfx::Vector2d accumulated_scroll_origin)
         : inner_most_scroll_container(std::move(inner_most_scroll_container)),
-          outer_most_scroll_container(std::move(outer_most_scroll_container)) {}
+          outer_most_scroll_container(std::move(outer_most_scroll_container)),
+          accumulated_scroll_origin(accumulated_scroll_origin) {}
 
     bool operator==(const AnchorScrollContainersData& other) const {
       return inner_most_scroll_container == other.inner_most_scroll_container &&
-             outer_most_scroll_container == other.outer_most_scroll_container;
+             outer_most_scroll_container == other.outer_most_scroll_container &&
+             accumulated_scroll_origin == other.accumulated_scroll_origin;
     }
   };
 
diff --git a/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder.cc
index b0b21ae..9a3d75e 100644
--- a/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder.cc
+++ b/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder.cc
@@ -40,6 +40,7 @@
 
 #include <memory>
 
+#include "base/containers/adapters.h"
 #include "base/numerics/checked_math.h"
 #include "media/base/video_color_space.h"
 #include "third_party/skia/include/core/SkColorSpace.h"
@@ -93,15 +94,15 @@
   UpdateAggressivePurging(index);
 
   Vector<wtf_size_t> frames_to_decode = FindFramesToDecode(index);
-  for (auto i = frames_to_decode.rbegin(); i != frames_to_decode.rend(); i++) {
-    current_frame_ = *i;
-    if (!reader_->Decode(*data_, *i)) {
+  for (const auto& frame : base::Reversed(frames_to_decode)) {
+    current_frame_ = frame;
+    if (!reader_->Decode(*data_, frame)) {
       SetFailed();
       return;
     }
 
     // If this returns false, we need more data to continue decoding.
-    if (!PostDecodeProcessing(*i))
+    if (!PostDecodeProcessing(frame))
       break;
   }
 
diff --git a/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc b/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc
index 2879fec7..c881e79 100644
--- a/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc
+++ b/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc
@@ -8,6 +8,7 @@
 
 #include "base/bind.h"
 #include "base/callback_helpers.h"
+#include "base/containers/adapters.h"
 #include "base/cxx17_backports.h"
 #include "base/location.h"
 #include "base/numerics/safe_conversions.h"
@@ -531,8 +532,7 @@
     // Iterate backwards, because if two positions have the same
     // amount of buffered data, we probably want to prefer the latest
     // one in the array.
-    for (auto i = seek_positions_.rbegin(); i != seek_positions_.rend(); ++i) {
-      int64_t new_pos = *i;
+    for (const auto& new_pos : base::Reversed(seek_positions_)) {
       int64_t available_at_new_pos = reader_->AvailableAt(new_pos);
 
       if (total_bytes_ != kPositionNotSpecified) {
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index 3c21c752..4ef18113 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1828,6 +1828,12 @@
       name: "PrefersReducedData",
       status: "experimental",
     },
+    // TODO(crbug/695586): This flag is being used to deprecate support for
+    // legacy quota API window.webkitStorageInfo.
+    {
+      name: "PrefixedStorageInfo",
+      status: "stable",
+    },
     // This feature is deprecated and we are evangelizing affected sites.
     // See https://crbug.com/346236 for current status.
     {
@@ -2532,9 +2538,11 @@
     },
     // A more subtle UI for WebAuthn that is web exposed. Under development.
     // It's controlled by the corresponding Chromium feature which needs to
-    // be enabled to make the whole feature work.
+    // be enabled to make the whole feature work, except for WPTs where the
+    // virtual authenticator environment is used.
     {
       name: "WebAuthenticationConditionalUI",
+      status: "test",
     },
     {
       name: "WebAuthenticationLargeBlobExtension",
diff --git a/third_party/blink/renderer/platform/testing/paint_test_configurations.h b/third_party/blink/renderer/platform/testing/paint_test_configurations.h
index 541a4b1..aa9b16a 100644
--- a/third_party/blink/renderer/platform/testing/paint_test_configurations.h
+++ b/third_party/blink/renderer/platform/testing/paint_test_configurations.h
@@ -15,15 +15,22 @@
 
 namespace blink {
 
-enum { kUnderInvalidationChecking = 1 << 0, kScrollUnification = 1 << 1 };
+enum {
+  kUnderInvalidationChecking = 1 << 0,
+  kScrollUnification = 1 << 1,
+  kScrollUpdateOptimizations = 1 << 2,
+};
 
 class PaintTestConfigurations
     : public testing::WithParamInterface<unsigned>,
-      private ScopedPaintUnderInvalidationCheckingForTest {
+      private ScopedPaintUnderInvalidationCheckingForTest,
+      private ScopedScrollUpdateOptimizationsForTest {
  public:
   PaintTestConfigurations()
-      : ScopedPaintUnderInvalidationCheckingForTest(
-            GetParam() & kUnderInvalidationChecking) {
+      : ScopedPaintUnderInvalidationCheckingForTest(GetParam() &
+                                                    kUnderInvalidationChecking),
+        ScopedScrollUpdateOptimizationsForTest(GetParam() &
+                                               kScrollUpdateOptimizations) {
     if (GetParam() & kScrollUnification)
       feature_list_.InitAndEnableFeature(::features::kScrollUnification);
     else
@@ -47,8 +54,9 @@
 // For now this has only one configuration, but can be extended in the future
 // to include more configurations.
 #define INSTANTIATE_PAINT_TEST_SUITE_P(test_class) \
-  INSTANTIATE_TEST_SUITE_P(All, test_class,        \
-                           ::testing::Values(0, kScrollUnification))
+  INSTANTIATE_TEST_SUITE_P(                        \
+      All, test_class,                             \
+      ::testing::Values(0, kScrollUnification, kScrollUpdateOptimizations))
 
 }  // namespace blink
 
diff --git a/third_party/blink/renderer/platform/theme/web_theme_engine_android.cc b/third_party/blink/renderer/platform/theme/web_theme_engine_android.cc
index 95ce750..d6f7165 100644
--- a/third_party/blink/renderer/platform/theme/web_theme_engine_android.cc
+++ b/third_party/blink/renderer/platform/theme/web_theme_engine_android.cc
@@ -12,16 +12,6 @@
 
 namespace blink {
 
-namespace {
-const int kVersionLollipop = 5;
-
-int getMajorVersion() {
-  int major, minor, bugfix;
-  base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &bugfix);
-  return major;
-}
-}  // namespace
-
 static void GetNativeThemeExtraParams(
     WebThemeEngine::Part part,
     WebThemeEngine::State state,
@@ -144,15 +134,9 @@
   // Android as well.
   style->fade_out_delay = base::TimeDelta();
   style->fade_out_duration = base::TimeDelta();
-  if (getMajorVersion() >= kVersionLollipop) {
-    style->thumb_thickness = 4;
-    style->scrollbar_margin = 0;
-    style->color = SkColorSetARGB(128, 64, 64, 64);
-  } else {
-    style->thumb_thickness = 3;
-    style->scrollbar_margin = 3;
-    style->color = SkColorSetARGB(128, 128, 128, 128);
-  }
+  style->thumb_thickness = 4;
+  style->scrollbar_margin = 0;
+  style->color = SkColorSetARGB(128, 64, 64, 64);
 }
 
 void WebThemeEngineAndroid::Paint(
diff --git a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_task_list.cc b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_task_list.cc
index 67ea9c05..fa3dab1 100644
--- a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_task_list.cc
+++ b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_task_list.cc
@@ -6,6 +6,8 @@
 
 #include <utility>
 
+#include "base/containers/adapters.h"
+
 namespace blink {
 
 MainThreadEventQueueTaskList::MainThreadEventQueueTaskList() {}
@@ -15,9 +17,8 @@
 MainThreadEventQueueTaskList::EnqueueResult
 MainThreadEventQueueTaskList::Enqueue(
     std::unique_ptr<MainThreadEventQueueTask> event) {
-  for (auto last_event_iter = queue_.rbegin(); last_event_iter != queue_.rend();
-       ++last_event_iter) {
-    switch ((*last_event_iter)->FilterNewEvent(event.get())) {
+  for (const auto& last_event : base::Reversed(queue_)) {
+    switch (last_event->FilterNewEvent(event.get())) {
       case MainThreadEventQueueTask::FilterResult::CoalescedEvent:
         return EnqueueResult::kCoalesced;
       case MainThreadEventQueueTask::FilterResult::StopIterating:
diff --git a/third_party/blink/tools/blinkpy/web_tests/merge_results.py b/third_party/blink/tools/blinkpy/web_tests/merge_results.py
index ad10988f0..852e5c2 100644
--- a/third_party/blink/tools/blinkpy/web_tests/merge_results.py
+++ b/third_party/blink/tools/blinkpy/web_tests/merge_results.py
@@ -729,13 +729,16 @@
         return
 
     layout_test_results = fs.join(directory, 'layout-test-results')
-    merged_output_json = fs.join(directory, 'output.json')
     if (fs.exists(layout_test_results)
             and not fs.remove_contents(layout_test_results)):
         raise IOError(('Unable to remove output directory %s contents!\n'
                        'See log output for errors.') % layout_test_results)
-    if fs.exists(merged_output_json):
-        fs.remove(merged_output_json)
+
+    merged_output_jsons = ['output.json', 'run_histories.json']
+    for output_json in merged_output_jsons:
+        output_json_fullpath = fs.join(directory, output_json)
+        if fs.exists(output_json_fullpath):
+            fs.remove(output_json_fullpath)
 
     # Fuchsia specific additional logs to be cleaned. Check if 'ffx_log' exists
     # or not first, otherwise webgpu_blink_web_tests will hang forever.
diff --git a/third_party/blink/web_tests/FlagExpectations/force-renderer-accessibility b/third_party/blink/web_tests/FlagExpectations/force-renderer-accessibility
index 68ec2dd..d223098 100644
--- a/third_party/blink/web_tests/FlagExpectations/force-renderer-accessibility
+++ b/third_party/blink/web_tests/FlagExpectations/force-renderer-accessibility
@@ -4,8 +4,6 @@
 # crbug.com/1138028 tracks the removal of these failure expectations
 
 # Unintentional failure
-external/wpt/accessibility/crashtests/serialize-with-no-document.html [ Skip ]
-external/wpt/accessibility/crashtests/svg-mouse-listener.html [ Skip ]
 external/wpt/css/css-backgrounds/background-repeat-space-5.html [ Skip ]
 external/wpt/css/css-contain/content-visibility/detach-locked-slot-children-crash.html [ Skip ]
 external/wpt/css/css-display/display-contents-shadow-dom-1.html [ Skip ]
diff --git a/third_party/blink/web_tests/LeakExpectations b/third_party/blink/web_tests/LeakExpectations
index 4172b3b..96ee104 100644
--- a/third_party/blink/web_tests/LeakExpectations
+++ b/third_party/blink/web_tests/LeakExpectations
@@ -56,6 +56,9 @@
 # Sheriff 2021-11-18
 crbug.com/1271392 [ Linux ] external/wpt/service-workers/service-worker/navigation-headers.https.html [ Failure Pass ]
 
+# Sheriff 2022-08-04
+crbug.com/1350279 [ Linux ] external/wpt/accessibility/crashtests/svg-mouse-listener.html [ Failure Pass ]
+
 ###########################################################################
 # WARNING: Memory leaks must be fixed asap. Sheriff is expected to revert #
 # culprit CLs instead of suppressing the leaks. If you have any question, #
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites
index 053308cbd..0a14c69 100644
--- a/third_party/blink/web_tests/VirtualTestSuites
+++ b/third_party/blink/web_tests/VirtualTestSuites
@@ -1000,6 +1000,7 @@
     "prefix": "force-renderer-accessibility",
     "platforms": ["Linux", "Mac", "Win"],
     "bases": ["accessibility/accessibility-beforematch-marker-crash.html",
+              "accessibility/accessibility-node-appendChild-crash.html",
               "accessibility/details-summary-crash.html",
               "accessibility/slot-poison.html",
               "accessibility/virtual-node-child-removal.html",
@@ -1009,21 +1010,7 @@
               "accessibility/virtual-node-removed-from-document.html",
               "accessibility/virtual-node-repair-document.html",
               "dom/legacy_dom_conformance/html/level2/core/createAttributeNS06.html",
-              "external/wpt/accessibility/crashtests/aria-hidden-with-select.html",
-              "external/wpt/accessibility/crashtests/aria-owns-destroyed-by-content-replacement.html",
-              "external/wpt/accessibility/crashtests/aria-owns-reparent.html",
-              "external/wpt/accessibility/crashtests/bdo-table-cell.html",
-              "external/wpt/accessibility/crashtests/content-visibility-generated-content-removal.html",
-              "external/wpt/accessibility/crashtests/included-descendant-dom-removal.html",
-              "external/wpt/accessibility/crashtests/included-descendant-layout-removal.html",
-              "external/wpt/accessibility/crashtests/img-map-pseudo.html",
-              "external/wpt/accessibility/crashtests/input-time-datalist.html",
-              "external/wpt/accessibility/crashtests/map-inside-map.html",
-              "external/wpt/accessibility/crashtests/map-inside-map-2.html",
-              "external/wpt/accessibility/crashtests/move-owned-inside-another-owned.html",
-              "external/wpt/accessibility/crashtests/slot-assignment-lockup.html",
-              "external/wpt/accessibility/crashtests/validation-message.html",
-              "external/wpt/accessibility/crashtests/displaylocked-serialize.html",
+              "external/wpt/accessibility/",
               "external/wpt/dom/ranges/Range-deleteContents.html",
               "external/wpt/html/semantics/embedded-content/the-iframe-element/iframe-initially-empty-is-updated.html",
               "editing/text-iterator/auto-expand-details.html",
diff --git a/third_party/blink/web_tests/accessibility/aria-hidden.html b/third_party/blink/web_tests/accessibility/aria-hidden.html
index 30cb91f..9a97a87 100644
--- a/third_party/blink/web_tests/accessibility/aria-hidden.html
+++ b/third_party/blink/web_tests/accessibility/aria-hidden.html
@@ -14,7 +14,7 @@
 test((t) => {
     var container = accessibilityController.accessibleElementById("container");
     var h1 = container.childAtIndex(0);
-    assert_equals(h1.name, "h1 test");
+    assert_equals(h1.name, ""); // Name is empty because it's aria-hidden.
     assert_true(h1.isIgnored);
     var h2 = container.childAtIndex(1);
     assert_equals(h2.name, "h2");
@@ -35,6 +35,7 @@
     assert_equals(hiddenContainer.childrenCount, 1);
     var ariaVisibleH2 = hiddenContainer.childAtIndex(0);
     assert_false(ariaVisibleH2.isIgnored);
+    assert_equals(ariaVisibleH2.name, "h2");
 }, "Elements with aria-hidden=false inside a non-rendered element should be exposed in the accessibility tree, and not ignored");
   </script>
 </body>
diff --git a/third_party/blink/web_tests/accessibility/name-calc-aria-hidden.html b/third_party/blink/web_tests/accessibility/name-calc-aria-hidden.html
index ee893dc..21975d3 100644
--- a/third_party/blink/web_tests/accessibility/name-calc-aria-hidden.html
+++ b/third_party/blink/web_tests/accessibility/name-calc-aria-hidden.html
@@ -68,7 +68,7 @@
 <script>
  test(function(t) {
      var axButton4 = accessibilityController.accessibleElementById("button4");
-     assert_equals(axButton4.name, "Before After");
+     assert_equals(axButton4.name, "Before Text within hidden subtree After");
  }, "Aria-labelledby of aria-hidden subtree with another aria-hidden inside");
 </script>
 
@@ -83,6 +83,6 @@
 <script>
 test(function(t) {
     var axInput5 = accessibilityController.accessibleElementById("input5");
-    assert_equals(axInput5.name, "Before After");
-}, "Label can get accessible text from aria-hidden subtree");
+    assert_equals(axInput5.name, "");
+}, "Label cannot get accessible text from aria-hidden subtree");
 </script>
diff --git a/third_party/blink/web_tests/animations/direction-and-fill/animation-direction-reverse-non-hardware.html b/third_party/blink/web_tests/animations/direction-and-fill/animation-direction-reverse-non-hardware.html
index bbf1ecc..5f1ce28 100644
--- a/third_party/blink/web_tests/animations/direction-and-fill/animation-direction-reverse-non-hardware.html
+++ b/third_party/blink/web_tests/animations/direction-and-fill/animation-direction-reverse-non-hardware.html
@@ -6,6 +6,7 @@
       animation-duration: 2s;
       animation-iteration-count: 8;
       animation-timing-function: linear;
+      animation-play-state: paused;
       height: 50px;
       left: 20px;
       margin-bottom: 10px;
diff --git a/third_party/blink/web_tests/external/wpt/webauthn/conditional-mediation.https.html b/third_party/blink/web_tests/external/wpt/webauthn/conditional-mediation.https.html
new file mode 100644
index 0000000..0bec08c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/webauthn/conditional-mediation.https.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Conditional Mediation tests</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src=helpers.js></script>
+<body></body>
+<script>
+"use strict";
+
+// Test that a configuration that must support conditional mediation reports
+// supporting it.
+virtualAuthenticatorPromiseTest(async t => {
+  assert_own_property(window.PublicKeyCredential, "isConditionalMediationAvailable");
+  assert_true(await window.PublicKeyCredential.isConditionalMediationAvailable());
+}, {
+  protocol: "ctap2",
+  hasResidentKey: true,
+  hasUserVerification: true,
+  transport: "internal",
+}, "Conditional mediation supported");
+
+// Test that a configuration that cannot possibly support conditional mediation
+// does not report supporting it.
+virtualAuthenticatorPromiseTest(async t => {
+  assert_own_property(window.PublicKeyCredential, "isConditionalMediationAvailable");
+  assert_false(await window.PublicKeyCredential.isConditionalMediationAvailable());
+}, {
+  protocol: "ctap2",
+  hasResidentKey: false,
+  hasUserVerification: false,
+  transport: "nfc",
+}, "Conditional mediation not supported");
+
+</script>
diff --git a/third_party/blink/web_tests/fast/canvas-api/canvas-formattedtext.html b/third_party/blink/web_tests/fast/canvas-api/canvas-formattedtext.html
index 18c5ffc..66b18ae8 100644
--- a/third_party/blink/web_tests/fast/canvas-api/canvas-formattedtext.html
+++ b/third_party/blink/web_tests/fast/canvas-api/canvas-formattedtext.html
@@ -70,6 +70,24 @@
   }
 }
 
+function garbageCollect() {
+  if (self.gc) {
+    // Use --expose_gc for V8 (and Node.js)
+    // Exposed in SpiderMonkey shell as well
+    self.gc();
+  } else if (self.GCController) {
+    // Present in some WebKit development environments
+    GCController.collect();
+  } else {
+    /* eslint-disable no-console */
+    console.warn('Tests are running without the ability to do manual garbage ' +
+                 'collection. They will still work, but coverage will be ' +
+                 'suboptimal.');
+    /* eslint-enable no-console */
+  }
+}
+
+
 test(function(t) {
   var text = new CanvasFormattedText();
   text.appendRun(new CanvasFormattedTextRun("A"));
@@ -99,7 +117,7 @@
   text.appendRun(run);
   assert_exception(()=> { text.appendRun(run); },
    "InvalidModificationError",
-   "Expect that an already inserted run cant be appended.");
+   "Expect that an already inserted run can't be appended.");
 
    // Check the the canvas formatted text can still render the existing run.
   var context = getCanvas2DContext(t.name);
@@ -376,13 +394,13 @@
   var text = new CanvasFormattedText();
   assert_exception(()=> { text.appendRun(null); },
    "TypeError",
-   "cant append a null run.");
+   "can't append a null run.");
   assert_exception(()=> { text[0] = null; },
    "TypeError",
-   "cant set a null run.");
+   "can't set a null run.");
    assert_exception(()=> { text.insertRun(0, null); },
    "TypeError",
-   "cant insert a null run.");
+   "can't insert a null run.");
 }, 'NullRun: Check that append,insert,set are protected against null run');
 
 test(function(t) {
@@ -397,4 +415,21 @@
   context.fillFormattedText(text, 0, 10, 100);
   sanity_check_rendering(context, 3, 10);
 }, 'Constructor Variants');
+
+test(function (t) {
+  // Create an iframe and CFT on that frame
+  var frame = document.body.appendChild(document.createElement("iframe"));
+  var cft = new frame.contentWindow.CanvasFormattedText();
+  var cftrun = new frame.contentWindow.CanvasFormattedTextRun("1");
+
+  // Destroy the frame & call GC to make sure it gets cleaned up
+  frame.remove();
+  frame = null;
+  garbageCollect();
+
+  // Try to use the CFT objects
+  assert_exception(() => { cft.appendRun(cftrun); },
+    "InvalidStateError",
+    "run owned by destroyed iframe");
+}, 'Use after iframe destroyed');
 </script>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/external/wpt/webauthn/idlharness.https.window-expected.txt b/third_party/blink/web_tests/flag-specific/disable-layout-ng/external/wpt/webauthn/idlharness.https.window-expected.txt
index 58b3287..5f33b7a 100644
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/external/wpt/webauthn/idlharness.https.window-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/external/wpt/webauthn/idlharness.https.window-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 78 tests; 74 PASS, 4 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 78 tests; 75 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial dictionary CredentialCreationOptions: original dictionary defined
@@ -46,7 +46,7 @@
 PASS PublicKeyCredential interface: attribute response
 PASS PublicKeyCredential interface: attribute authenticatorAttachment
 PASS PublicKeyCredential interface: operation getClientExtensionResults()
-FAIL PublicKeyCredential interface: operation isConditionalMediationAvailable() assert_own_property: interface object missing static operation expected property "isConditionalMediationAvailable" missing
+PASS PublicKeyCredential interface: operation isConditionalMediationAvailable()
 FAIL PublicKeyCredential interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing
 PASS PublicKeyCredential interface: operation isUserVerifyingPlatformAuthenticatorAvailable()
 FAIL PublicKeyCredential interface: operation parseCreationOptionsFromJSON(PublicKeyCredentialCreationOptionsJSON) assert_own_property: interface object missing static operation expected property "parseCreationOptionsFromJSON" missing
diff --git a/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/webauthn/idlharness.https.window-expected.txt b/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/webauthn/idlharness.https.window-expected.txt
index 58b3287..5f33b7a 100644
--- a/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/webauthn/idlharness.https.window-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/webauthn/idlharness.https.window-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 78 tests; 74 PASS, 4 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 78 tests; 75 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial dictionary CredentialCreationOptions: original dictionary defined
@@ -46,7 +46,7 @@
 PASS PublicKeyCredential interface: attribute response
 PASS PublicKeyCredential interface: attribute authenticatorAttachment
 PASS PublicKeyCredential interface: operation getClientExtensionResults()
-FAIL PublicKeyCredential interface: operation isConditionalMediationAvailable() assert_own_property: interface object missing static operation expected property "isConditionalMediationAvailable" missing
+PASS PublicKeyCredential interface: operation isConditionalMediationAvailable()
 FAIL PublicKeyCredential interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing
 PASS PublicKeyCredential interface: operation isUserVerifyingPlatformAuthenticatorAvailable()
 FAIL PublicKeyCredential interface: operation parseCreationOptionsFromJSON(PublicKeyCredentialCreationOptionsJSON) assert_own_property: interface object missing static operation expected property "parseCreationOptionsFromJSON" missing
diff --git a/third_party/blink/web_tests/http/tests/credentialmanagement/resources/mock-navigator-credentials.js b/third_party/blink/web_tests/http/tests/credentialmanagement/resources/mock-navigator-credentials.js
index 4e747b6e..05b84119 100644
--- a/third_party/blink/web_tests/http/tests/credentialmanagement/resources/mock-navigator-credentials.js
+++ b/third_party/blink/web_tests/http/tests/credentialmanagement/resources/mock-navigator-credentials.js
@@ -140,6 +140,10 @@
     return false;
   }
 
+  async isConditionalMediationAvailable() {
+    return false;
+  }
+
   async cancel() {}
 
   // Resets state of mock Authenticator.
diff --git a/third_party/blink/web_tests/media/track/track-cue-rendering-negative-line-numbers.html b/third_party/blink/web_tests/media/track/track-cue-rendering-negative-line-numbers.html
index 4c3a1dd2..5fffa27 100644
--- a/third_party/blink/web_tests/media/track/track-cue-rendering-negative-line-numbers.html
+++ b/third_party/blink/web_tests/media/track/track-cue-rendering-negative-line-numbers.html
@@ -36,7 +36,16 @@
   let top0 = textTrackCueElementByIndex(v, 0).offsetTop;
   let top1 = textTrackCueElementByIndex(v, 1).offsetTop;
   let top2 = textTrackCueElementByIndex(v, 2).offsetTop;
-  assert_true(top0<top1, 'subtitle 1 is above subtitle 2');
-  assert_true(top1<top2, 'subtitle 2 is above subtitle 3');
+  assert_true(top0<top1, 'subtitle 1 is above subtitle 2 (media controls hidden)');
+  assert_true(top1<top2, 'subtitle 2 is above subtitle 3 (media controls hidden)');
+
+  v.controls = true;
+  await animationFrame();
+  await animationFrame();
+  let top0c = textTrackCueElementByIndex(v, 0).offsetTop;
+  let top1c = textTrackCueElementByIndex(v, 1).offsetTop;
+  let top2c = textTrackCueElementByIndex(v, 2).offsetTop;
+  assert_true(top0c<top1c, 'subtitle 1 is above subtitle 2 (media controls shown)');
+  assert_true(top1c<top2c, 'subtitle 2 is above subtitle 3 (media controls shown)');
 }, 'Cues with negative line numbers should be displayed in order');
 </script>
diff --git a/third_party/blink/web_tests/platform/generic/accessibility/accessibility-node-appendChild-crash-expected.txt b/third_party/blink/web_tests/platform/generic/accessibility/accessibility-node-appendChild-crash-expected.txt
index c2541f4..40f9c07 100644
--- a/third_party/blink/web_tests/platform/generic/accessibility/accessibility-node-appendChild-crash-expected.txt
+++ b/third_party/blink/web_tests/platform/generic/accessibility/accessibility-node-appendChild-crash-expected.txt
@@ -1 +1,2 @@
+CONSOLE ERROR: Uncaught InvalidAccessError: Failed to execute 'appendChild' on 'AccessibleNode': AccessibleNode must have an ancestor that is attached to a document.
 PASS if no crash.
diff --git a/third_party/blink/web_tests/platform/generic/external/wpt/webauthn/idlharness.https.window-expected.txt b/third_party/blink/web_tests/platform/generic/external/wpt/webauthn/idlharness.https.window-expected.txt
index 58b3287..5f33b7a 100644
--- a/third_party/blink/web_tests/platform/generic/external/wpt/webauthn/idlharness.https.window-expected.txt
+++ b/third_party/blink/web_tests/platform/generic/external/wpt/webauthn/idlharness.https.window-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 78 tests; 74 PASS, 4 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 78 tests; 75 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial dictionary CredentialCreationOptions: original dictionary defined
@@ -46,7 +46,7 @@
 PASS PublicKeyCredential interface: attribute response
 PASS PublicKeyCredential interface: attribute authenticatorAttachment
 PASS PublicKeyCredential interface: operation getClientExtensionResults()
-FAIL PublicKeyCredential interface: operation isConditionalMediationAvailable() assert_own_property: interface object missing static operation expected property "isConditionalMediationAvailable" missing
+PASS PublicKeyCredential interface: operation isConditionalMediationAvailable()
 FAIL PublicKeyCredential interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing
 PASS PublicKeyCredential interface: operation isUserVerifyingPlatformAuthenticatorAvailable()
 FAIL PublicKeyCredential interface: operation parseCreationOptionsFromJSON(PublicKeyCredentialCreationOptionsJSON) assert_own_property: interface object missing static operation expected property "parseCreationOptionsFromJSON" missing
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/accessibility/accessibility-nameSources-visiblity-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/accessibility/accessibility-nameSources-visiblity-expected.txt
index da41003..2a118c5 100644
--- a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/accessibility/accessibility-nameSources-visiblity-expected.txt
+++ b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/accessibility/accessibility-nameSources-visiblity-expected.txt
@@ -777,7 +777,7 @@
                         [0] : {
                             idref : heading4
                             nodeResult : h3#heading4
-                            text : Before After
+                            text : Before Text within hidden subtree After
                         }
                     ]
                     type : idrefList
@@ -786,7 +786,7 @@
                 type : relatedElement
                 value : {
                     type : computedString
-                    value : Before After
+                    value : Before Text within hidden subtree After
                 }
             }
             [1] : {
@@ -810,7 +810,7 @@
             }
         ]
         type : computedString
-        value : Before After
+        value : Before Text within hidden subtree After
     }
     nodeId : <string>
     parentId : <string>
@@ -836,7 +836,7 @@
                     [0] : {
                         idref : heading4
                         nodeResult : h3#heading4
-                        text : Before After
+                        text : Before Text within hidden subtree After
                     }
                 ]
                 type : nodeList
@@ -872,7 +872,7 @@
                     relatedNodes : [
                         [0] : {
                             backendDOMNodeId : <number>
-                            text : Before After
+                            text : 
                         }
                     ]
                     type : nodeList
@@ -880,7 +880,7 @@
                 type : relatedElement
                 value : {
                     type : computedString
-                    value : Before After
+                    value : 
                 }
             }
             [3] : {
@@ -900,7 +900,7 @@
             }
         ]
         type : computedString
-        value : Before After
+        value : 
     }
     nodeId : <string>
     parentId : <string>
@@ -960,7 +960,7 @@
                 relatedNodes : [
                     [0] : {
                         nodeResult : label
-                        text : Before After
+                        text : 
                     }
                 ]
                 type : nodeList
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/accessibility/accessibility-query-axtree-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/accessibility/accessibility-query-axtree-expected.txt
index 0d3baad..c653055 100644
--- a/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/accessibility/accessibility-query-axtree-expected.txt
+++ b/third_party/blink/web_tests/platform/generic/http/tests/inspector-protocol/accessibility/accessibility-query-axtree-expected.txt
@@ -104,34 +104,6 @@
     childIds : <object>
     chromeRole : {
         type : internalRole
-        value : 96
-    }
-    ignored : true
-    ignoredReasons : [
-        [0] : {
-            name : ariaHiddenElement
-            value : {
-                type : boolean
-                value : true
-            }
-        }
-    ]
-    name : {
-        type : computedString
-        value : title
-    }
-    nodeId : <string>
-    parentId : <string>
-    role : {
-        type : role
-        value : heading
-    }
-}
-{
-    backendDOMNodeId : <number>
-    childIds : <object>
-    chromeRole : {
-        type : internalRole
         value : 158
     }
     ignored : true
@@ -191,7 +163,6 @@
 
 Running test: testGetNodesForSubtreeByAccessibleName
 find all elements with accessible name "foo"
-node3
 node5
 node6
 find all elements with accessible name "foo" inside container
diff --git a/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-expected.txt
index cf65feb3..168d5317 100644
--- a/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-expected.txt
+++ b/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-expected.txt
@@ -6730,6 +6730,7 @@
     getter reason
     method constructor
 interface PublicKeyCredential : Credential
+    static method isConditionalMediationAvailable
     static method isUserVerifyingPlatformAuthenticatorAvailable
     attribute @@toStringTag
     getter authenticatorAttachment
diff --git a/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/anchor-scroll-js-expose.html b/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/anchor-scroll-js-expose.html
new file mode 100644
index 0000000..1569ed5
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/anchor-scroll-js-expose.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<title>Tests that anchor element's actual rendered location is property exposed via JS APIs under anchor-scroll</title>
+<link rel="help" href="https://tabatkins.github.io/specs/css-anchor-position/#anchor-scroll">
+<link rel="author" href="mailto:xiaochengh@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+#container {
+  position: absolute;
+  top: 0;
+  left: 0;
+}
+#scroller {
+  margin-left: 100px;
+  margin-top: 100px;
+  width: 400px;
+  height: 400px;
+  overflow: scroll;
+}
+#anchor-container {
+  width: 1000px;
+  height: 1000px;
+}
+#anchor {
+  margin: 400px;
+  width: 100px;
+  height: 100px;
+  background-color: yellow;
+  anchor-name: --anchor;
+}
+#anchored {
+  position: absolute;
+  left: anchor(--anchor left);
+  bottom: anchor(--anchor top);
+  width: 100px;
+  height: 100px;
+  anchor-scroll: --anchor;
+  background-color: green;
+}
+</style>
+
+<div id="container">
+  <div id="scroller">
+    <div id="anchor-container">
+      <div id="anchor"></div>
+    </div>
+  </div>
+  <div id="anchored">Text</div>
+</div>
+
+<script>
+scroller.scrollTop = 300;
+scroller.scrollLeft = 300;
+
+test(() => {
+  let rect = anchored.getBoundingClientRect();
+  assert_equals(rect.x, 200);
+  assert_equals(rect.y, 100);
+}, 'Element.getBoundingClientRect() returns the actual rendered location');
+
+test(() => {
+  let range = document.createRange();
+  let text = anchored.firstChild;
+  range.setStart(text, 0);
+  range.setEnd(text, text.length);
+  let rect = range.getBoundingClientRect();
+  assert_equals(rect.x, 200);
+  assert_equals(rect.y, 100);
+}, 'Range.getBoundingClientRect() returns the actual rendered location');
+
+// TODO(crbug.com/1309178): Test Element.offsetTop and Element.offsetLeft
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/anchor-scroll-vlr.html b/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/anchor-scroll-vlr.html
new file mode 100644
index 0000000..d3d2f19
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/anchor-scroll-vlr.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<title>Tests that anchor-scroll works in vertical-lr writing mode</title>
+<link rel="author" href="mailto:xiaochengh@chromium.org">
+<link rel="help" href="https://tabatkins.github.io/specs/css-anchor-position/#anchor-scroll">
+<link rel="match" href="reference/anchor-scroll-vlr-ref.html">
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+:root {
+  /* Prevents creatings scrollbar on the viewport due to anchored element's
+   * layout position being out of the viewport.
+   * TODO(crbug.com/1309178): Revisit this behavior.
+   */
+  overflow: clip;
+}
+
+body {
+  font: 20px/1 Ahem;
+  margin: 0;
+  writing-mode: vertical-lr;
+  white-space: nowrap;
+}
+
+#scroll-container {
+  width: 400px;
+  height: 400px;
+  overflow: scroll;
+}
+
+#scroll-contents {
+  width: 1000px;
+  height: 1000px;
+  position: relative;
+}
+
+#placefiller-above-anchor {
+  width: 500px;
+}
+
+#placefiller-before-anchor {
+  display: inline-block;
+  height: 500px;
+}
+
+#anchor {
+  anchor-name: --anchor;
+}
+
+#inner-anchored {
+  color: green;
+  position: absolute;
+  top: anchor(--anchor top);
+  left: anchor(--anchor right);
+  anchor-scroll: --anchor;
+}
+
+#outer-anchored {
+  color: yellow;
+  position: absolute;
+  top: anchor(--anchor top);
+  right: anchor(--anchor left);
+  anchor-scroll: --anchor;
+}
+</style>
+
+<div style="position: relative;">
+  <div id="scroll-container">
+    <div id="scroll-contents">
+      <div id="placefiller-above-anchor"></div>
+      <div id="placefiller-before-anchor"></div>
+      <span id="anchor">anchor</span>
+      <div id="inner-anchored">inner-anchored</div>
+    </div>
+  </div>
+  <div id="outer-anchored">outer-anchored</div>
+</div>
+
+<script>
+const scroller = document.getElementById('scroll-container');
+scroller.scrollTop = 450;
+scroller.scrollLeft = 300;
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/anchor-scroll-vrl.html b/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/anchor-scroll-vrl.html
new file mode 100644
index 0000000..07d6c2f9
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/anchor-scroll-vrl.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<title>Tests that anchor-scroll works in vertical-rl writing mode</title>
+<link rel="author" href="mailto:xiaochengh@chromium.org">
+<link rel="help" href="https://tabatkins.github.io/specs/css-anchor-position/#anchor-scroll">
+<link rel="match" href="reference/anchor-scroll-vrl-ref.html">
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+:root {
+  /* Prevents creatings scrollbar on the viewport due to anchored element's
+   * layout position being out of the viewport.
+   * TODO(crbug.com/1309178): Revisit this behavior.
+   */
+  overflow: clip;
+}
+
+body {
+  font: 20px/1 Ahem;
+  margin: 0;
+  writing-mode: vertical-rl;
+  white-space: nowrap;
+}
+
+#scroll-container {
+  width: 400px;
+  height: 400px;
+  overflow: scroll;
+}
+
+#scroll-contents {
+  width: 1000px;
+  height: 1000px;
+  position: relative;
+}
+
+#placefiller-above-anchor {
+  width: 500px;
+}
+
+#placefiller-before-anchor {
+  display: inline-block;
+  height: 500px;
+}
+
+#anchor {
+  anchor-name: --anchor;
+}
+
+#inner-anchored {
+  color: green;
+  position: absolute;
+  top: anchor(--anchor top);
+  left: anchor(--anchor right);
+  anchor-scroll: --anchor;
+}
+
+#outer-anchored {
+  color: yellow;
+  position: absolute;
+  top: anchor(--anchor top);
+  right: anchor(--anchor left);
+  anchor-scroll: --anchor;
+}
+</style>
+
+<div style="position: relative;">
+  <div id="scroll-container">
+    <div id="scroll-contents">
+      <div id="placefiller-above-anchor"></div>
+      <div id="placefiller-before-anchor"></div>
+      <span id="anchor">anchor</span>
+      <div id="inner-anchored">inner-anchored</div>
+    </div>
+  </div>
+  <div id="outer-anchored">outer-anchored</div>
+</div>
+
+<script>
+const scroller = document.getElementById('scroll-container');
+scroller.scrollTop = 450;
+scroller.scrollLeft = -300;
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/position-fallback-001.html b/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/position-fallback-001.html
new file mode 100644
index 0000000..2c748af5
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/position-fallback-001.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<link rel="help" href="https://tabatkins.github.io/specs/css-anchor-position/#fallback">
+<link rel="author" href="mailto:kojii@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+.cb {
+  position: relative;
+  width: 200px;
+  height: 100px;
+  background: yellow;
+}
+.spacer {
+  width: 1px;
+  height: 25px;
+}
+.anchor1 {
+  anchor-name: --a1;
+  margin-left: 50px;
+  width: 100px;
+  height: 50px;
+  background: blue;
+}
+.target {
+  position: absolute;
+  position-fallback: --fallback1;
+  left: anchor(--a1 right);
+  top: anchor(--a1 top);
+  width: 100px;
+  height: 50px;
+  background: orange;
+}
+@position-fallback --fallback1 {
+  @try {
+    left: auto;
+    right: anchor(--a1 left);
+  }
+  @try {
+    top: anchor(--a1 bottom);
+  }
+  @try {
+    top: auto;
+    bottom: anchor(--a1 top);
+  }
+  @try {
+    left: anchor(--a1 right);
+    width: 50px;
+  }
+}
+</style>
+<body onload="checkLayout('.target')">
+  <div class="cb">
+    <div class="spacer"></div>
+    <div class="anchor1"></div>
+    <div class="target"
+         data-offset-x=150 data-offset-y=25
+         data-expected-width=50 data-expected-height=50></div>
+  </div>
+</body>
diff --git a/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/reference/anchor-scroll-vlr-ref.html b/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/reference/anchor-scroll-vlr-ref.html
new file mode 100644
index 0000000..392b000
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/reference/anchor-scroll-vlr-ref.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<title>Tests that anchor-scroll works in vertical-lr writing mode</title>
+<link rel="author" href="mailto:xiaochengh@chromium.org">
+<link rel="help" href="https://tabatkins.github.io/specs/css-anchor-position/">
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+:root {
+  overflow: clip;
+}
+
+body {
+  font: 20px/1 Ahem;
+  margin: 0;
+  writing-mode: vertical-lr;
+  white-space: nowrap;
+}
+
+#scroll-container {
+  width: 400px;
+  height: 400px;
+  overflow: scroll;
+}
+
+#scroll-contents {
+  width: 1000px;
+  height: 1000px;
+  position: relative;
+}
+
+#placefiller-above-anchor {
+  width: 480px;
+}
+
+#placefiller-before-anchor {
+  display: inline-block;
+  height: 500px;
+}
+
+#anchor {
+  anchor-name: --anchor;
+}
+
+#inner-anchored {
+  color: green;
+  margin-top: 520px;
+}
+
+#outer-anchored {
+  color: yellow;
+  margin-top: 520px;
+}
+</style>
+
+<div style="position: relative;">
+  <div id="scroll-container">
+    <div id="scroll-contents">
+      <div id="placefiller-above-anchor"></div>
+      <div id="outer-anchored">outer-anchored</div>
+      <div id="placefiller-before-anchor"></div>
+      <span id="anchor">anchor</span>
+      <div id="inner-anchored">inner-anchored</div>
+    </div>
+  </div>
+</div>
+
+<script>
+const scroller = document.getElementById('scroll-container');
+scroller.scrollTop = 450;
+scroller.scrollLeft = 300;
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/reference/anchor-scroll-vrl-ref.html b/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/reference/anchor-scroll-vrl-ref.html
new file mode 100644
index 0000000..f7383c7e
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/css/css-anchor-position/reference/anchor-scroll-vrl-ref.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<title>Tests that anchor-scroll works in vertical-rl writing mode</title>
+<link rel="author" href="mailto:xiaochengh@chromium.org">
+<link rel="help" href="https://tabatkins.github.io/specs/css-anchor-position/#anchor-scroll">
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+:root {
+  overflow: clip;
+}
+
+body {
+  font: 20px/1 Ahem;
+  margin: 0;
+  writing-mode: vertical-rl;
+  white-space: nowrap;
+}
+
+#scroll-container {
+  width: 400px;
+  height: 400px;
+  overflow: scroll;
+}
+
+#scroll-contents {
+  width: 1000px;
+  height: 1000px;
+  position: relative;
+}
+
+#placefiller-above-anchor {
+  width: 480px;
+}
+
+#placefiller-before-anchor {
+  display: inline-block;
+  height: 500px;
+}
+
+#anchor {
+  anchor-name: --anchor;
+}
+
+#inner-anchored {
+  margin-top: 520px;
+  color: green;
+}
+
+#outer-anchored {
+  margin-top: 520px;
+  color: yellow;
+}
+</style>
+
+<div style="position: relative;">
+  <div id="scroll-container">
+    <div id="scroll-contents">
+      <div id="placefiller-above-anchor"></div>
+      <div id="inner-anchored">inner-anchored</div>
+      <div id="placefiller-before-anchor"></div>
+      <span id="anchor">anchor</span>
+      <div id="outer-anchored">outer-anchored</div>
+    </div>
+  </div>
+</div>
+
+<script>
+const scroller = document.getElementById('scroll-container');
+scroller.scrollTop = 450;
+scroller.scrollLeft = -300;
+</script>
diff --git a/third_party/closure_compiler/externs/accessibility_private.js b/third_party/closure_compiler/externs/accessibility_private.js
index aa29bf7..8314fc76 100644
--- a/third_party/closure_compiler/externs/accessibility_private.js
+++ b/third_party/closure_compiler/externs/accessibility_private.js
@@ -557,6 +557,11 @@
 chrome.accessibilityPrivate.updateDictationBubble = function(properties) {};
 
 /**
+ * Cancels the current and queued speech from ChromeVox.
+ */
+chrome.accessibilityPrivate.silenceSpokenFeedback = function() {};
+
+/**
  * Fired whenever ChromeVox should output introduction.
  * @type {!ChromeEvent}
  */
diff --git a/third_party/libaddressinput/chromium/resources/address_input_strings_ca.xtb b/third_party/libaddressinput/chromium/resources/address_input_strings_ca.xtb
index a03b3f3..a01666a 100644
--- a/third_party/libaddressinput/chromium/resources/address_input_strings_ca.xtb
+++ b/third_party/libaddressinput/chromium/resources/address_input_strings_ca.xtb
@@ -18,7 +18,7 @@
 <translation id="5327248766486351172">Nom</translation>
 <translation id="5937097533660449554">Oblast</translation>
 <translation id="6132429659673988671">Àrea suburbana</translation>
-<translation id="6207937957461833379">País o regió</translation>
+<translation id="6207937957461833379">País/Regió</translation>
 <translation id="6247152910634872706">Organització</translation>
 <translation id="6271429879296260742">Codi PIN</translation>
 <translation id="6282194474023008486">Codi postal</translation>
diff --git a/tools/clang/plugins/tests/base_refcounted.cpp b/tools/clang/plugins/tests/base_refcounted.cpp
index 215fec0..a5aeb4ed 100644
--- a/tools/clang/plugins/tests/base_refcounted.cpp
+++ b/tools/clang/plugins/tests/base_refcounted.cpp
@@ -43,7 +43,7 @@
     virtual ~BarInterface() {}
   };
 
-  typedef base::RefCounted<Foo::BarInterface> RefCountedBar; // TODO(crbug.com/1348124): Drop the Foo:: qualifier.
+  typedef base::RefCounted<BarInterface> RefCountedBar;
   typedef RefCountedBar AnotherTypedef;
 };
 
diff --git a/tools/clang/plugins/tests/base_refcounted.txt b/tools/clang/plugins/tests/base_refcounted.txt
index ae91986..dd7ec6d 100644
--- a/tools/clang/plugins/tests/base_refcounted.txt
+++ b/tools/clang/plugins/tests/base_refcounted.txt
@@ -81,7 +81,7 @@
 base_refcounted.cpp:59:3: warning: [chromium-style] Classes that are ref-counted should have destructors that are declared protected or private.
   ~UnsafeTypedefChainInImpl() {}
   ^
-base_refcounted.cpp:56:34: note: [chromium-style] 'UnsafeTypedefChainInImpl' inherits from 'Baz::MyLocalTypedef' (aka 'RefCounted<Foo::BarInterface>') here
+base_refcounted.cpp:56:34: note: [chromium-style] 'UnsafeTypedefChainInImpl' inherits from 'Baz::MyLocalTypedef' (aka 'RefCounted<BarInterface>') here
 class UnsafeTypedefChainInImpl : public Baz::MyLocalTypedef {
                                  ^
 13 warnings generated.
diff --git a/tools/clang/scripts/build.py b/tools/clang/scripts/build.py
index 1a6c2699..69e45f1 100755
--- a/tools/clang/scripts/build.py
+++ b/tools/clang/scripts/build.py
@@ -28,7 +28,8 @@
 from update import (CDS_URL, CHROMIUM_DIR, CLANG_REVISION, LLVM_BUILD_DIR,
                     FORCE_HEAD_REVISION_FILE, PACKAGE_VERSION, RELEASE_VERSION,
                     STAMP_FILE, THIS_DIR, DownloadUrl, DownloadAndUnpack,
-                    EnsureDirExists, ReadStampFile, RmTree, WriteStampFile)
+                    DownloadAndUnpackPackage, EnsureDirExists, GetDefaultHostOs,
+                    ReadStampFile, RmTree, WriteStampFile)
 
 # Path constants. (All of these should be absolute paths.)
 THIRD_PARTY_DIR = os.path.join(CHROMIUM_DIR, 'third_party')
@@ -381,22 +382,9 @@
 
 
 def DownloadPinnedClang():
-  # The update.py in this current revision may have a patched revision while
-  # building new clang packages. Get update.py off HEAD~ to pull the current
-  # pinned clang.
-  if not os.path.exists(PINNED_CLANG_DIR):
-    os.mkdir(os.path.join(PINNED_CLANG_DIR))
-
-  script_path = os.path.join(PINNED_CLANG_DIR, 'update.py')
-
-  with open(script_path, 'w') as f:
-    subprocess.check_call(
-        ['git', 'show', 'HEAD~:tools/clang/scripts/update.py'],
-        stdout=f,
-        cwd=CHROMIUM_DIR)
-  print("Running pinned update.py")
-  subprocess.check_call(
-      [sys.executable, script_path, '--output-dir=' + PINNED_CLANG_DIR])
+  PINNED_CLANG_VERSION = 'llvmorg-16-init-572-gdde41c6c-3'
+  DownloadAndUnpackPackage('clang', PINNED_CLANG_DIR, GetDefaultHostOs(),
+                           PINNED_CLANG_VERSION)
 
 
 # TODO(crbug.com/929645): Remove once we don't need gcc's libstdc++.
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
index 6350371..c1d2bbd7 100755
--- a/tools/clang/scripts/update.py
+++ b/tools/clang/scripts/update.py
@@ -36,7 +36,7 @@
 # Reverting problematic clang rolls is safe, though.
 # This is the output of `git describe` and is usable as a commit-ish.
 CLANG_REVISION = 'llvmorg-16-init-572-gdde41c6c'
-CLANG_SUB_REVISION = 3
+CLANG_SUB_REVISION = 4
 
 PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION)
 RELEASE_VERSION = '16.0.0'
@@ -181,8 +181,11 @@
   return CDS_URL + '/' + _HOST_OS_URL_MAP[host_os] + '/'
 
 
-def DownloadAndUnpackPackage(package_file, output_dir, host_os):
-  cds_file = "%s-%s.tar.xz" % (package_file, PACKAGE_VERSION)
+def DownloadAndUnpackPackage(package_file,
+                             output_dir,
+                             host_os,
+                             version=PACKAGE_VERSION):
+  cds_file = "%s-%s.tar.xz" % (package_file, version)
   cds_full_url = GetPlatformUrlPrefix(host_os) + cds_file
   try:
     DownloadAndUnpack(cds_full_url, output_dir)
diff --git a/tools/code_coverage/create_js_source_maps/test/create_js_source_maps_test.py b/tools/code_coverage/create_js_source_maps/test/create_js_source_maps_test.py
index df0198a..d5c03a9 100755
--- a/tools/code_coverage/create_js_source_maps/test/create_js_source_maps_test.py
+++ b/tools/code_coverage/create_js_source_maps/test/create_js_source_maps_test.py
@@ -97,7 +97,8 @@
 
     if inline_sourcemap:
       with open(output_file_name, 'rb') as output_file:
-        output = output_file.read()
+        # Strip the \r characters which are generated on Windows.
+        output = output_file.read().replace(b'\r', b'')
       output_lines = output.splitlines()
 
       # Check source map was appended properly.
diff --git a/tools/get_asan_chrome/.gitignore b/tools/get_asan_chrome/.gitignore
new file mode 100644
index 0000000..24bad34
--- /dev/null
+++ b/tools/get_asan_chrome/.gitignore
@@ -0,0 +1,9 @@
+# python venv
+*.env
+
+# downloaded ASAN builds (compressed & extracted)
+*asan*.zip
+asan-*
+
+# activity logs
+*.log
diff --git a/tools/get_asan_chrome/.style.yapf b/tools/get_asan_chrome/.style.yapf
new file mode 100644
index 0000000..557fa7b
--- /dev/null
+++ b/tools/get_asan_chrome/.style.yapf
@@ -0,0 +1,2 @@
+[style]
+based_on_style = pep8
diff --git a/tools/get_asan_chrome/OWNERS b/tools/get_asan_chrome/OWNERS
new file mode 100644
index 0000000..bc960c08
--- /dev/null
+++ b/tools/get_asan_chrome/OWNERS
@@ -0,0 +1 @@
+bookholt@chromium.org
diff --git a/tools/get_asan_chrome/README.md b/tools/get_asan_chrome/README.md
new file mode 100644
index 0000000..c71acaf3
--- /dev/null
+++ b/tools/get_asan_chrome/README.md
@@ -0,0 +1,58 @@
+# Download ASAN Chrome
+
+This directory contains a helper script to download ASAN builds of Chromium.
+## Usage
+
+Several command line flags are provided if you want more control over what build
+is downloaded. The `--help` flag provides detailed usage information. Read on
+for usage examples.
+
+### Get the latest build
+
+By default, the script detects the operating system of the system on which the
+script is run and then downloads the most recent ASAN build for that operating
+system.
+
+```sh
+vpython3 get_asan_chrome.py
+```
+
+This mode is useful when you want the most recent ASAN build for whatever
+platform the script runs on, which is typically the case when fuzzing and also
+when attempting to reproduce a bug report near tip-of-tree.
+
+### Get the latest ASAN build in a specific channel
+
+Sometimes you need the latest ASAN build from a specific channel:
+
+```sh
+vpython3 get_asan_chrome.py --channel {canary,dev,beta,stable}
+```
+
+Note that not all platforms have all channels. For example, there is no Canary
+channel for Linux, so use `dev` instead.
+
+### Get a specific version or branch position
+
+It can also be useful to get an ASAN build for a specific release:
+
+```sh
+vpython3 get_asan_chrome.py --version 105.0.5191.2
+```
+
+### Override OS detection
+
+You can also download a build for an operating system that is different than
+where the script runs:
+
+```sh
+vpython3 get_asan_chrome.py --os {linux,mac,win64,cros}
+```
+
+### Combine
+
+Finally, if you need greater control then some flags can be used together:
+
+```sh
+vpython3 get_asan_chrome.py --os win64 --version 105.0.5191.2
+```
diff --git a/tools/get_asan_chrome/get_asan_chrome.py b/tools/get_asan_chrome/get_asan_chrome.py
new file mode 100755
index 0000000..181b912
--- /dev/null
+++ b/tools/get_asan_chrome/get_asan_chrome.py
@@ -0,0 +1,208 @@
+#!/usr/bin/env vpython3
+# Copyright 2022 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.
+"""Download ASAN Chrome - Helper for downloading an ASAN build of Chrome.
+
+Uses Omaha Proxy to fetch latest build info for all supported platforms. Then
+tries to find the corresponding ASAN build (or one close to it) from Chrome's
+GCS bucket of ASAN builds.
+"""
+
+import argparse
+import datetime
+import json
+import logging
+import os
+import platform
+import sys
+from urllib.request import urlretrieve
+from urllib.request import urlopen
+from urllib.parse import quote as urlquote
+from urllib import error as urlliberror
+
+
+class ChromeRelease():
+    def __init__(self, os, branch_position, version, channel,
+                 true_branch) -> None:
+        self.os = os
+        self.branch_position = branch_position
+        self.version = version
+        self.channel = channel
+        self.true_branch = true_branch
+
+
+def get_current_os():
+    # Translates platform.system() values to corresponding OmahaProxy OS names.
+    return {
+        'Windows': 'win64',
+        'Linux': 'linux',
+        'Darwin': 'mac',
+    }[platform.system()]
+
+
+def fail(msg):
+    logging.fatal(msg)
+    logging.shutdown()
+    exit()
+
+
+def fetch_json(release_info_url):
+    logging.debug(f'Fetching JSON release metadata from {release_info_url}')
+    with urlopen(release_info_url) as resp:
+        if resp.status != 200:
+            fail(f'Failed to fetch Chromium release data from '
+                 f'{release_info_url}')
+        try:
+            return json.loads(resp.read())
+        except json.JSONDecodeError as e:
+            fail(f'Failed to parse release metata response from '
+                 f'{release_info_url}')
+
+
+def get_release_metadata_by_version(release_info):
+    uri = (f'https://omahaproxy.appspot.com/deps.json?version='
+           f'{release_info.version}')
+    json_response = fetch_json(uri)
+    release_info.branch_position = json_response['chromium_base_position']
+    release_info.true_branch = json_response['chromium_branch']
+
+
+def get_release_metadata_by_channel(release_info):
+    uri = (f'https://omahaproxy.appspot.com/all.json?'
+           f'os={release_info.os}&channel={release_info.channel}')
+    json_response = fetch_json(uri)[0]['versions'][0]
+    release_info.branch_position = json_response['branch_base_position']
+    release_info.true_branch = json_response['true_branch']
+    release_info.version = json_response['version']
+
+
+def get_release_metadata(release_info):
+    # If the OS unspecified, detect and use the current OS.
+    if not release_info.os:
+        release_info.os = get_current_os()
+    if release_info.branch_position:
+        return
+    elif release_info.version:
+        get_release_metadata_by_version(release_info)
+    else:
+        # If the channel unspecified, use channel closest to ToT for given OS.
+        if not release_info.channel:
+            if release_info.os == 'linux':
+                # Linux doesn't have a canary channel.
+                release_info.channel = 'dev'
+            else:
+                release_info.channel = 'canary'
+        get_release_metadata_by_channel(release_info)
+
+
+def download_asan_chrome(release_info, download_dir, quiet, retries=100):
+    def ReportHook(blocknum, blocksize, totalsize):
+        if quiet:
+            return
+        size = blocknum * blocksize
+        if totalsize == -1:  # Total size not known.
+            progress = f'Received {size} bytes'
+        else:
+            size = min(totalsize, size)
+            percent = 100 * size / totalsize
+            progress = f'Received {size} of {totalsize} bytes, {percent:.2f}%'
+        # Send a \r to let all progress messages use just one line of output.
+        sys.stdout.write('\r' + progress)
+        sys.stdout.flush()
+
+    # Translates OmahaProxy OS names to corresponding GCS storage paths.
+    os_to_path = {
+        'win64': 'win32-release_x64/asan-win32-release_x64',
+        'linux': 'linux-release/asan-linux-release',
+        'linux_debug': 'linux-debug/asan-linux-debug',
+        'mac': 'mac-release/asan-mac-release',
+        'mac_debug': 'mac-release/asan-mac-debug',
+        # 'ios': 'ios-release/asan-ios-release', # unsupported
+        'cros': 'linux-release-chromeos/asan-linux-release',
+        # android is currently unsupported
+    }
+
+    if retries < 1:
+        fail('Exceeded retry limit, aborting.')
+
+    path = urlquote(os_to_path[release_info.os], safe='')
+    asan_build_uri = (f'https://www.googleapis.com/download/storage/v1/b/'
+                      f'chromium-browser-asan/o/{path}-'
+                      f'{release_info.branch_position}.zip?alt=media')
+    if release_info.version:
+        outfile_name = (f'chromium-{release_info.version}'
+                        f'-{release_info.os}-asan.zip')
+    else:
+        outfile_name = (f'chromium-{release_info.branch_position}-'
+                        f'{release_info.os}-asan.zip')
+    outfile_path = os.path.join(download_dir, outfile_name)
+    try:
+        logging.debug(f'Fetching ASAN build from {asan_build_uri}')
+        outfile_path, _ = urlretrieve(asan_build_uri, outfile_path, ReportHook)
+    except urlliberror.HTTPError as e:
+        if e.code == 404 and retries > 0:
+            # Not every branch position gets an ASAN build, so try the previous
+            # branch position and hope for the best.
+            new_branch_position = str(int(release_info.branch_position) - 1)
+            logging.warning(
+                f'No ASAN build for {release_info.os} at branch position '
+                f'{release_info.branch_position}, retrying at position '
+                f'{new_branch_position}...')
+            release_info.branch_position = new_branch_position
+            if os.path.exists(outfile_path):
+                os.unlink(outfile_path)
+            download_asan_chrome(release_info, download_dir, quiet,
+                                 retries - 1)
+        else:
+            fail(f'Failed fetching build from {asan_build_uri}: {e}')
+
+
+def main(release_info, download_dir, quiet):
+    get_release_metadata(release_info)
+    download_asan_chrome(release_info, download_dir, quiet)
+
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser()
+    group = parser.add_mutually_exclusive_group()
+    group.add_argument('--version', help='Chrome version, e.g. 105.0.5191.2.')
+    group.add_argument('--branch_position',
+                       help='Chrome branch base position, e.g. 1025959.')
+    group.add_argument('--channel',
+                       choices=['canary', 'dev', 'beta', 'stable'],
+                       help='Chromium channel, e.g. canary.')
+    parser.add_argument('--os',
+                        choices=['linux', 'mac', 'win64', 'cros'],
+                        help='Operating system type as defined by OmahaProxy.')
+    parser.add_argument(
+        '--download_directory',
+        default='.',
+        help='Path of directory where downloaded ASAN build will be saved.')
+    parser.add_argument('--save_log',
+                        help='Save activity log to disk.',
+                        action='store_true',
+                        default=False)
+    parser.add_argument(
+        '--quiet',
+        help='Decrease log output and don\'t show download progress.',
+        action='store_true',
+        default=False)
+    args = parser.parse_args()
+
+    loglevel = logging.INFO
+    if args.quiet:
+        log = logging.WARN
+    if args.save_log:
+        logfile_name = os.path.basename(__file__).strip(
+            '.py') + '-' + datetime.datetime.now().strftime('%Y%m%d') + '.log'
+        stdout_handler = logging.FileHandler(filename=logfile_name)
+        stderr_handler = logging.StreamHandler(sys.stderr)
+        logging.basicConfig(level=loglevel,
+                            handlers=[stdout_handler, stderr_handler])
+    else:
+        logging.basicConfig(level=loglevel)
+
+    release_info = ChromeRelease(args.os, args.branch_position, args.version,
+                                 args.channel, None)
+    main(release_info, args.download_directory, args.quiet)
diff --git a/tools/grit/preprocess_if_expr.gni b/tools/grit/preprocess_if_expr.gni
index efc8f638..4a278768 100644
--- a/tools/grit/preprocess_if_expr.gni
+++ b/tools/grit/preprocess_if_expr.gni
@@ -8,6 +8,10 @@
   action(target_name) {
     script = "//tools/grit/preprocess_if_expr.py"
 
+    # Declare deps of preprocess_if_expr.py as inputs as well, to re-trigger
+    # preprocess_if_expr() targets whenever those change.
+    inputs = [ "//tools/grit/grit/node/base.py" ]
+
     forward_variables_from(invoker,
                            [
                              "deps",
@@ -15,7 +19,6 @@
                              "visibility",
                            ])
 
-    inputs = []
     outputs = []
 
     in_folder = "."
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
index 0bde43a..f86075b8 100644
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -633,6 +633,10 @@
   "ash/webui/projector_app/resources/mock/projector_app_bundle_mock_resources.grd": {
     "includes": [3420],
   },
+  "<(SHARED_INTERMEDIATE_DIR)/ash/webui/facial_ml_app_ui/resources/trusted/ash_facial_ml_app_resources.grd": {
+    "META": {"join": 2, "sizes": {"includes": [50],}},
+    "includes": [3440],
+  },
   # END chromeos/ section.
 
   # START components/ section.
@@ -640,7 +644,7 @@
   # thus not rushing to update it for now.
   "ash/components/arc/input_overlay/resources/input_overlay_resources.grd": {
     # Big alignment at start of section.
-    "META": {"join": 2, "align": 1000},
+    "META": {"align": 1000},
     "includes": [3500],
   },
   # Chromium strings and Google Chrome strings must start at the same id.
diff --git a/tools/memory/partition_allocator/pa_graph_buckets.py b/tools/memory/partition_allocator/pa_graph_buckets.py
index 2d6972f..b8bf2eb 100644
--- a/tools/memory/partition_allocator/pa_graph_buckets.py
+++ b/tools/memory/partition_allocator/pa_graph_buckets.py
@@ -23,29 +23,36 @@
   DUMPNAME: final = "dump.dat"
 
   fig = plt.figure(figsize=(16, 8))
-  ax = fig.add_subplot(1, 1, 1)
+  ax1 = fig.add_subplot(1, 1, 1)
+  ax2 = ax1.twinx()
 
   def animate(i):
     bucket_sizes = []
     x = []
-    y = []
+    y1 = []
+    y2 = []
     with open(DUMPNAME, 'r') as f:
       for line in f.readlines():
         index, bucket_size, num_allocs, total_size, fragmentation = line.strip(
         ).split(',')
         print(index, bucket_size, num_allocs, total_size, fragmentation)
         x.append(int(index))
-        bucket_sizes.append(int(bucket_size))
-        y.append(int(fragmentation))
+        # format buckets sizes with commas, e.g. 50000 -> 50,000
+        bucket_sizes.append('{:,}'.format(int(bucket_size)))
+        y1.append(int(fragmentation))
+        y2.append(int(total_size) * int(fragmentation) / 100)
 
-    ax.clear()
-    plt.xticks(x, bucket_sizes, rotation='vertical')
-    plt.ylim((0, 100))
+    ax1.clear()
+    ax2.clear()
+    ax1.set_xticks(x, bucket_sizes, rotation='vertical')
+    ax2.set_xticks(x, bucket_sizes, rotation='vertical')
     plt.xlim(left=-.5, right=len(bucket_sizes))
     plt.xlabel('Bucket Size')
-    plt.ylabel('Internal Fragmentation (%)')
+    ax1.set_ylabel('Internal Fragmentation (%)', color='g')
+    ax2.set_ylabel('Wasted (MiB)', color='plum')
     plt.title('Internal Fragmentation vs Bucket Size')
-    ax.bar(x, y, color='g')
+    ax1.bar(x, y1, alpha=0.5, color='g')
+    ax2.bar(x, y2, alpha=0.5, color='plum')
 
   ani = animation.FuncAnimation(fig, animate, interval=1000)
   plt.show()
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index f500ca9..502434e 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -2940,12 +2940,6 @@
   </int>
 </enum>
 
-<enum name="ANGLEProgramCacheResult">
-  <int value="0" label="Cache Miss"/>
-  <int value="1" label="Cache Hit From Memory"/>
-  <int value="2" label="Cache Hit From Disk"/>
-</enum>
-
 <enum name="AnnouncementNotificationEvent">
   <obsolete>
     Deprecated 11/2020
@@ -11503,6 +11497,19 @@
   <int value="24" label="From out-of-scope app window to popup."/>
 </enum>
 
+<enum name="BookmarkBarDragDropType">
+  <int value="0" label="Drop single URL onto bar"/>
+  <int value="1" label="Drop single URL into folder"/>
+  <int value="2" label="Drop bookmark onto bar"/>
+  <int value="3" label="Drop bookmark into folder"/>
+  <int value="4" label="Drop folder onto bar"/>
+  <int value="5" label="Drop folder into folder"/>
+  <int value="6" label="Reorder bookmark on bar"/>
+  <int value="7" label="Reorder bookmark in folder"/>
+  <int value="8" label="Reorder folder on bar"/>
+  <int value="9" label="Reorder subfolder in folder"/>
+</enum>
+
 <enum name="BookmarkBarPrefAndState">
   <summary>
     The Boomarks bar pref state and whether the user is on the NTP when the
@@ -11551,6 +11558,11 @@
   <int value="5" label="Bookmark manager"/>
   <int value="6" label="Omnibox suggestion"/>
   <int value="7" label="Top application menu (Mac, etc.)"/>
+  <int value="8" label="Side panel folder"/>
+  <int value="9" label="Side panel subfolder"/>
+  <int value="10" label="Side panel reading list"/>
+  <int value="11" label="Reading list dialog"/>
+  <int value="12" label="Side panel context menu"/>
 </enum>
 
 <enum name="BookmarkManagerCommand">
@@ -35219,6 +35231,7 @@
   <int value="1692" label="METRICSPRIVATE_RECORDSPARSEVALUEWITHPERSISTENTHASH"/>
   <int value="1693" label="METRICSPRIVATE_RECORDSPARSEVALUEWITHHASHMETRICNAME"/>
   <int value="1694" label="FILEMANAGERPRIVATE_SHOWDLPRESTRICTIONDETAILS"/>
+  <int value="1695" label="ACCESSIBILITY_PRIVATE_SILENCESPOKENFEEDBACK"/>
 </enum>
 
 <enum name="ExtensionIconState">
@@ -40924,6 +40937,7 @@
   <int value="4315" label="PersistentQuotaType"/>
   <int value="4316" label="CrossOriginScrollIntoView"/>
   <int value="4317" label="LinkRelCanonical"/>
+  <int value="4318" label="CredentialManagerIsConditionalMediationAvailable"/>
 </enum>
 
 <enum name="FeaturePolicyAllowlistType">
@@ -49993,6 +50007,7 @@
   <int value="2" label="Download message dismissed with gesture"/>
   <int value="3" label="Download message dismissed with timer"/>
   <int value="4" label="Download message dismissed with different reason"/>
+  <int value="5" label="Download message dismissed due to an internal error"/>
 </enum>
 
 <enum name="Inconsistencies">
@@ -53642,6 +53657,12 @@
   <int value="14" label="Add language to 'Always Translate' list"/>
   <int value="15" label="Remove site from 'Never translate sites' list"/>
   <int value="16" label="Restart Chrome for split install"/>
+  <int value="17" label="Spell check enabled globally"/>
+  <int value="18" label="Spell check disabled globally"/>
+  <int value="19" label="Spell check enabled for a language"/>
+  <int value="20" label="Spell check disabled for a language"/>
+  <int value="21" label="Basic spell check selected"/>
+  <int value="22" label="Enhanced spell check selected"/>
 </enum>
 
 <enum name="LanguageSettingsAppLanguagePromptAction">
@@ -89341,6 +89362,7 @@
 <enum name="SimPinLockType">
   <int value="0" label="PIN Locked"/>
   <int value="1" label="PUK Locked"/>
+  <int value="2" label="Unlocked"/>
 </enum>
 
 <enum name="SimPinOperationResult">
diff --git a/tools/metrics/histograms/metadata/ash/histograms.xml b/tools/metrics/histograms/metadata/ash/histograms.xml
index ea5bc0c..236584d 100644
--- a/tools/metrics/histograms/metadata/ash/histograms.xml
+++ b/tools/metrics/histograms/metadata/ash/histograms.xml
@@ -235,6 +235,23 @@
   <token key="Theme" variants="AmbientModeThemes"/>
 </histogram>
 
+<histogram name="Ash.AmbientMode.MultiScreenOffset.{Theme}" units="ms"
+    expires_after="2022-12-01">
+  <owner>esum@google.com</owner>
+  <owner>xiaohuic@chromium.org</owner>
+  <summary>
+    Only applies to multi-screen use cases in ambient mode. Records the offset
+    observed between {Theme} animations' timestamps when rendering on multiple
+    screens. Ideally, this would be 0, but small imperceptible offsets are
+    acceptable (under .1 seconds). The offset recorded here is the absolute
+    difference in milliseconds between the animation with the smallest and
+    largest timestamp. The metric is emitted after every single animation frame
+    in ambient mode (there is a high volume). For single-screen use cases, this
+    metric is inactive.
+  </summary>
+  <token key="Theme" variants="AmbientModeThemes"/>
+</histogram>
+
 <histogram name="Ash.AmbientMode.PhotoOrientationMatch.{Theme}" units="%"
     expires_after="2022-12-01">
   <owner>esum@google.com</owner>
@@ -261,6 +278,18 @@
   </summary>
 </histogram>
 
+<histogram name="Ash.AmbientMode.ScreenCount.{Theme}" units="int"
+    expires_after="2022-12-01">
+  <owner>esum@google.com</owner>
+  <owner>xiaohuic@chromium.org</owner>
+  <summary>
+    Among eligible users with ambient mode enabled, records the number of
+    screens present during a {Theme} ambient mode session. Emitted each time
+    ambient mode exits.
+  </summary>
+  <token key="Theme" variants="AmbientModeThemes"/>
+</histogram>
+
 <histogram name="Ash.AmbientMode.SelectedNumberOfAlbums" units="int"
     expires_after="2022-12-01">
   <owner>cowmoo@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/bookmarks/histograms.xml b/tools/metrics/histograms/metadata/bookmarks/histograms.xml
index 82cb06eb..48550bd7 100644
--- a/tools/metrics/histograms/metadata/bookmarks/histograms.xml
+++ b/tools/metrics/histograms/metadata/bookmarks/histograms.xml
@@ -106,6 +106,17 @@
   </summary>
 </histogram>
 
+<histogram name="Bookmarks.BookmarksBar.DragDropType"
+    enum="BookmarkBarDragDropType" expires_after="2023-01-15">
+  <owner>dfried@chromium.org</owner>
+  <owner>mickeyburks@chromium.org</owner>
+  <summary>
+    Records whether a bookmarks bar drag-drop is from a URL (e.g. from the
+    location bar) or from the bookmarks bar itself (which is effectively a
+    move).
+  </summary>
+</histogram>
+
 <histogram name="Bookmarks.BookmarksBarStatus.OnReadingListOpened"
     enum="BookmarkBarPrefAndState" expires_after="2022-08-28">
   <owner>corising@chromium.org</owner>
@@ -203,6 +214,18 @@
   </summary>
 </histogram>
 
+<histogram name="Bookmarks.EditLocation" enum="BookmarkLaunchLocation"
+    expires_after="2023-01-15">
+  <owner>dfried@chromium.org</owner>
+  <owner>mickeyburks@chromium.org</owner>
+  <component>UI&gt;Browser&gt;Bookmarks</component>
+  <summary>
+    Logs a UI location from which a bookmark is edited, after the user opts to
+    edit or rename a bookmark or folder via a context menu, and immediately
+    before displaying the edit dialog.
+  </summary>
+</histogram>
+
 <histogram name="Bookmarks.EntryPoint" enum="BookmarksEntryPoint"
     expires_after="2022-12-11">
   <owner>ianwen@chromium.org</owner>
@@ -660,6 +683,18 @@
   </summary>
 </histogram>
 
+<histogram name="Bookmarks.RemovedLocation" enum="BookmarkLaunchLocation"
+    expires_after="2023-01-15">
+  <owner>dfried@chromium.org</owner>
+  <owner>mickeyburks@chromium.org</owner>
+  <component>UI&gt;Browser&gt;Bookmarks</component>
+  <summary>
+    Logs a UI location from which one or more bookmarks are removed, after the
+    user requests them to be removed via a menu and immediately before they are
+    actually removed.
+  </summary>
+</histogram>
+
 <histogram name="Bookmarks.StarEntryPoint.ClickedAction"
     enum="StarEntryPointAction" expires_after="2022-08-28">
   <owner>corising@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/extensions/histograms.xml b/tools/metrics/histograms/metadata/extensions/histograms.xml
index 0233352d..fa0e950 100644
--- a/tools/metrics/histograms/metadata/extensions/histograms.xml
+++ b/tools/metrics/histograms/metadata/extensions/histograms.xml
@@ -2005,8 +2005,8 @@
 </histogram>
 
 <histogram name="Extensions.GoogleDocOffline.AvailabilityOnResourceRequest"
-    enum="GoogleDocsExtensionAvailablity" expires_after="2022-09-01">
-  <owner>rhalavati@chromium.org</owner>
+    enum="GoogleDocsExtensionAvailablity" expires_after="2022-12-01">
+  <owner>arabm@chromium.org</owner>
   <owner>chrome-incognito@google.com</owner>
   <summary>
     This histogram records requests to use resources from Google Docs Offline
diff --git a/tools/metrics/histograms/metadata/gpu/histograms.xml b/tools/metrics/histograms/metadata/gpu/histograms.xml
index 0ebc53e..b1a0eda 100644
--- a/tools/metrics/histograms/metadata/gpu/histograms.xml
+++ b/tools/metrics/histograms/metadata/gpu/histograms.xml
@@ -304,7 +304,7 @@
 </histogram>
 
 <histogram name="GPU.ANGLE.D3D11FeatureLevel" enum="D3DFeatureLevel"
-    expires_after="2022-12-04">
+    expires_after="2023-01-01">
   <owner>jonahr@google.com</owner>
   <owner>angle-team@google.com</owner>
   <summary>
@@ -318,7 +318,7 @@
 </histogram>
 
 <histogram name="GPU.ANGLE.D3D11InitializeResult" enum="D3D11InitializeResult"
-    expires_after="2022-12-04">
+    expires_after="2023-01-01">
   <owner>jonahr@google.com</owner>
   <owner>angle-team@google.com</owner>
   <summary>
@@ -329,7 +329,7 @@
 </histogram>
 
 <histogram name="GPU.ANGLE.D3D9InitializeResult" enum="D3D9InitializeResult"
-    expires_after="2022-12-04">
+    expires_after="2023-01-01">
   <owner>jonahr@google.com</owner>
   <owner>angle-team@google.com</owner>
   <summary>
@@ -339,86 +339,8 @@
   </summary>
 </histogram>
 
-<histogram name="GPU.ANGLE.D3DCompileMS" units="ms" expires_after="2022-12-04">
-  <owner>jonahr@google.com</owner>
-  <owner>angle-team@google.com</owner>
-  <summary>
-    The time ANGLE spends calling the D3D shader compiler. Tracks total time we
-    spend compiling shaders on startup and during Chrome's lifetime. Recorded on
-    D3D shader compilation when ANGLE's D3D backend is in use.
-  </summary>
-</histogram>
-
-<histogram name="GPU.ANGLE.DisplayInitializeMS" units="ms"
-    expires_after="2022-06-01">
-  <owner>jonahr@google.com</owner>
-  <owner>angle-team@google.com</owner>
-  <summary>
-    Time ANGLE spends in eglInitialize, where it spins up a Renderer. This can
-    gives us insight into how much time we're spending initializing the GPU.
-  </summary>
-</histogram>
-
-<histogram name="GPU.ANGLE.ProgramCache.BinaryCacheHitTimeUS"
-    units="microseconds" expires_after="M85">
-  <owner>jmadill@chromium.org</owner>
-  <summary>
-    The time to load a gpu program from the program cache.
-
-    Warning: This metric may include reports from clients with low-resolution
-    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
-    will cause this metric to have an abnormal distribution. When considering
-    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
-    solution.
-  </summary>
-</histogram>
-
-<histogram name="GPU.ANGLE.ProgramCache.BinaryCacheMissTimeUS"
-    units="microseconds" expires_after="M85">
-  <owner>jmadill@chromium.org</owner>
-  <summary>
-    The time to link a gpu program.
-
-    Warning: This metric may include reports from clients with low-resolution
-    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
-    will cause this metric to have an abnormal distribution. When considering
-    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
-    solution.
-  </summary>
-</histogram>
-
-<histogram name="GPU.ANGLE.ProgramCache.CacheResult"
-    enum="ANGLEProgramCacheResult" expires_after="M85">
-  <owner>jmadill@chromium.org</owner>
-  <summary>
-    If a successfully linked program was found in the GPU program cache during a
-    program link call, and if the hit was originally loaded from disk.
-  </summary>
-</histogram>
-
-<histogram name="GPU.ANGLE.ProgramCache.LoadBinarySuccess"
-    enum="BooleanSuccess" expires_after="2022-06-01">
-  <owner>jonahr@google.com</owner>
-  <owner>angle-team@google.com</owner>
-  <summary>
-    Records if the call to load a cached binary was successful. Calls are made
-    on shader creation and linking. This can legitimately fail if the driver
-    wants chrome to re-link and re-cache the gpu program.
-  </summary>
-</histogram>
-
-<histogram name="GPU.ANGLE.ProgramCache.ProgramBinarySizeBytes" units="bytes"
-    expires_after="2022-06-01">
-  <owner>jonahr@google.com</owner>
-  <owner>angle-team@google.com</owner>
-  <summary>
-    Records the size of program binaries loaded into the gpu program cache.
-    Programs are loaded into the cache upon use in draw and dispatch calls.
-  </summary>
-</histogram>
-
 <histogram name="GPU.ANGLE.SupportsDXGI1_2" enum="BooleanSupported"
-    expires_after="2023-01-15">
+    expires_after="2023-01-01">
   <owner>jonahr@google.com</owner>
   <owner>angle-team@google.com</owner>
   <summary>
@@ -554,7 +476,7 @@
 </histogram>
 
 <histogram name="GPU.D3DShaderModel" enum="ShaderModel"
-    expires_after="2022-12-04">
+    expires_after="2023-01-01">
   <owner>jonahr@google.com</owner>
   <owner>angle-team@google.com</owner>
   <summary>
@@ -784,15 +706,6 @@
   </summary>
 </histogram>
 
-<histogram name="GPU.DoLinkProgramTime" units="ms" expires_after="2022-06-01">
-  <owner>jonahr@google.com</owner>
-  <owner>angle-team@google.com</owner>
-  <summary>
-    The time we spend in GLES2DecoderImpl::DoLinkProgram. Related to how much
-    time we spend compiling shaders during startup.
-  </summary>
-</histogram>
-
 <histogram name="GPU.DriverBugTestResultsPerEntry"
     enum="GpuDriverBugWorkaroundEntry" expires_after="never">
 <!-- expires-never: For monitoring new driver bugs. -->
@@ -1037,7 +950,7 @@
 </histogram>
 
 <histogram name="GPU.InitializeOneOffMediumTime" units="ms"
-    expires_after="2023-01-15">
+    expires_after="2023-01-01">
   <owner>jonahr@google.com</owner>
   <owner>angle-team@google.com</owner>
   <summary>
@@ -1260,12 +1173,14 @@
 </histogram>
 
 <histogram name="GPU.PassthroughDoLinkProgramTime" units="ms"
-    expires_after="2022-06-01">
+    expires_after="2023-01-01">
   <owner>jonahr@google.com</owner>
   <owner>angle-team@google.com</owner>
   <summary>
     The time we spend in GLES2DecoderPassthroughImpl::DoLinkProgram. Related to
-    how much time we spend compiling shaders during startup.
+    how much time we spend compiling shaders during startup. Expired in June
+    2022, and revived in M106. Data may be incomplete for the period during
+    which the histogram was expired.
   </summary>
 </histogram>
 
@@ -1315,12 +1230,13 @@
 </histogram>
 
 <histogram name="GPU.ProgramCache.CacheHit" enum="BooleanSuccess"
-    expires_after="2022-06-01">
+    expires_after="2023-01-01">
   <owner>jonahr@google.com</owner>
   <owner>angle-team@google.com</owner>
   <summary>
     If a successfully linked program was found in the GPU program cache during a
-    program link call.
+    program link call. Expired in June 2022, and revived in M106. Data may be
+    incomplete for the period during which the histogram was expired.
   </summary>
 </histogram>
 
diff --git a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
index 048f62d..b72ccda 100644
--- a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
+++ b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
@@ -10216,6 +10216,7 @@
   <suffix name="DemoMode" label="DemoMode"/>
   <suffix name="Diagnostics" label="Diagnostics"/>
   <suffix name="Eche" label="Eche"/>
+  <suffix name="FacialML" label="Facial ML"/>
   <suffix name="FirmwareUpdate" label="FirmwareUpdate"/>
   <suffix name="Help" label="Help"/>
   <suffix name="Media" label="Media"/>
diff --git a/tools/metrics/histograms/metadata/language/histograms.xml b/tools/metrics/histograms/metadata/language/histograms.xml
index f2111f4..9e4e955 100644
--- a/tools/metrics/histograms/metadata/language/histograms.xml
+++ b/tools/metrics/histograms/metadata/language/histograms.xml
@@ -67,7 +67,7 @@
 </histogram>
 
 <histogram name="LanguageSettings.Actions" enum="LanguageSettingsActionType"
-    expires_after="2022-09-11">
+    expires_after="2023-08-31">
   <owner>perrier@chromium.org</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -132,7 +132,7 @@
 </histogram>
 
 <histogram name="LanguageSettings.AppLanguagePrompt.Language"
-    enum="LocaleCodeISO639" expires_after="2022-09-11">
+    enum="LocaleCodeISO639" expires_after="2023-08-31">
   <owner>perrier@chromium.org</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -169,7 +169,7 @@
 </histogram>
 
 <histogram name="LanguageSettings.AppLanguagePrompt.OtherLanguagesShown"
-    enum="BooleanYesNo" expires_after="2022-09-11">
+    enum="BooleanYesNo" expires_after="2023-08-31">
   <owner>perrier@chromium.org</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -290,7 +290,7 @@
 </histogram>
 
 <histogram name="LanguageUsage.UI.Android.Correctness"
-    enum="LanguageUsage.UI.Android.Correctness" expires_after="2022-09-11">
+    enum="LanguageUsage.UI.Android.Correctness" expires_after="2023-08-31">
   <owner>perrier@chromium.org</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -456,7 +456,7 @@
 </histogram>
 
 <histogram name="LanguageUsage.ULP.Initiation.Status{AccountType}"
-    enum="ULPInitiationStatus" expires_after="2022-09-11">
+    enum="ULPInitiationStatus" expires_after="2023-08-31">
   <owner>jds@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/network/histograms.xml b/tools/metrics/histograms/metadata/network/histograms.xml
index 9b57dce..27239c3 100644
--- a/tools/metrics/histograms/metadata/network/histograms.xml
+++ b/tools/metrics/histograms/metadata/network/histograms.xml
@@ -82,6 +82,25 @@
   </summary>
 </histogram>
 
+<histogram
+    name="Network.Ash.Cellular.SimLock.Policy.{PinLockPolicy}.ActiveSIMLockStatus"
+    enum="SimPinLockType" expires_after="2022-12-31">
+  <owner>hsuregan@chromium.org</owner>
+  <owner>nikhilcn@chromium.org</owner>
+  <owner>cros-connectivity@google.com</owner>
+  <summary>
+    Records the status of the SIM (Unlocked/PIN Locked/PUK Blocked) upon a
+    change in cellular connection.
+
+    This metric will be recorded upon following transitions: 1. no connection to
+    new connection; 2. connection_1 to connection_2
+  </summary>
+  <token key="PinLockPolicy">
+    <variant name="Restricted"/>
+    <variant name="Unrestricted"/>
+  </token>
+</histogram>
+
 <histogram name="Network.Ash.VPN.{VPNProviderType}.ConfigurationSource"
     enum="VPNConfigurationSource" expires_after="2022-12-31">
   <owner>chadduffin@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/omnibox/histograms.xml b/tools/metrics/histograms/metadata/omnibox/histograms.xml
index d487f408..0b3d2dd9 100644
--- a/tools/metrics/histograms/metadata/omnibox/histograms.xml
+++ b/tools/metrics/histograms/metadata/omnibox/histograms.xml
@@ -2300,8 +2300,36 @@
 </histogram>
 
 <histogram
+    name="Omnibox.{SearchPrefetch}.PrefetchServingReason2{PrerenderOrNavigation}"
+    enum="SearchPrefetchServingReason" expires_after="2023-05-02">
+  <owner>ryansturm@chromium.org</owner>
+  <owner>lingqi@chromium.org</owner>
+  <owner>chrome-omnibox-team@google.com</owner>
+  <owner>chrome-prerendering@google.com</owner>
+  <summary>
+    {SearchPrefetch}
+
+    The reason that a navigation request could or could not serve a search
+    prefetch request.
+
+    {PrerenderOrNavigation}
+  </summary>
+  <token key="SearchPrefetch" variants="SearchPrefetch"/>
+  <token key="PrerenderOrNavigation">
+    <variant name="" summary="Recorded for typical navigations."/>
+    <variant name=".Prerender"
+        summary="Recorded for prerender navigations that might consume the
+                 prefetch response."/>
+  </token>
+</histogram>
+
+<histogram
     name="Omnibox.{SearchPrefetch}.PrefetchServingReason{PrerenderOrNavigation}"
     enum="SearchPrefetchServingReason" expires_after="2023-05-02">
+  <obsolete>
+    This is deprecated as of 08/2022. Please use
+    Omnibox.SearchPrefetch.PrefetchServingReason2{PrerenderOrNavigation}.
+  </obsolete>
   <owner>ryansturm@chromium.org</owner>
   <owner>lingqi@chromium.org</owner>
   <owner>chrome-omnibox-team@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml
index 900b171c..4820906 100644
--- a/tools/metrics/histograms/metadata/others/histograms.xml
+++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -5801,6 +5801,17 @@
   </summary>
 </histogram>
 
+<histogram name="Feedback.ChromeOSApp.ViewedScreenshot" units="boolean"
+    expires_after="2023-07-27">
+  <owner>longbowei@google.com</owner>
+  <owner>xiangdongkong@google.com</owner>
+  <owner>cros-feedback-app@google.com</owner>
+  <summary>
+    Record number of times the user viewed the screenshot. Fires when user
+    clicks the thumbnail on and views the larger screenshot.
+  </summary>
+</histogram>
+
 <histogram name="Feedback.Duration.FetchSystemInformation" units="ms"
     expires_after="2023-03-25">
   <owner>xiangdongkong@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/platform/histograms.xml b/tools/metrics/histograms/metadata/platform/histograms.xml
index a9f5f65..34dc78b 100644
--- a/tools/metrics/histograms/metadata/platform/histograms.xml
+++ b/tools/metrics/histograms/metadata/platform/histograms.xml
@@ -433,6 +433,192 @@
   </summary>
 </histogram>
 
+<histogram name="Platform.Hibernate.AdditionalMemoryNeeded" units="MiB"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The difference between the amount of memory and swap available and the
+    amount of space needed to successfully hibernate on ChromeOS devices when
+    there is not enough memory available when hibernate is triggered. Recorded
+    at hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.Duration.HibernateResumeReady"
+    units="seconds" expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The duration in seconds we waited for the hibernate Resume Signal Ready from
+    powerd on ChromeOS devices. Reported at resume from hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.Duration.SetupLVMFiles" units="seconds"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The duration in seconds we wait for hibernate files to be setup on ChromeOS
+    devices with LVM. Reported at hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.ExcessMemoryAvailable" units="MiB"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The difference between the amount of memory and swap available and the
+    amount of space needed to successfully hibernate on ChromeOS devices when
+    there is more memory available than needed when hibernate is triggered.
+    Recorded at hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.IO.PreloadImage.Duration" units="seconds"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The duration in seconds spent preloading the hibernate image on ChromeOS
+    devices. Reported at resume from hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.IO.PreloadImage.Rate" units="MiB/s"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The rate in MiB/s we are preloading the hibernate image on ChromeOS devices.
+    Reported at resume from hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.IO.PreloadImage.Size" units="KiB"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The size in KiB of the hibernate image we preload on ChromeOS devices.
+    Reported at resume from hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.IO.ReadAllData.Duration" units="seconds"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The total duration in seconds spent preloading and moving the hibernate
+    image on ChromeOS devices. This should be the summation of the preloading
+    and main image durations. Reported at resume from hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.IO.ReadAllData.Rate" units="MiB/s"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The rate in MiB/s we preloaded and moved the hibernate image on ChromeOS
+    devices. Reported at resume from hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.IO.ReadAllData.Size" units="KiB"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The size in KiB of the hibernate image we preload and move on ChromeOS
+    devices. This should be the summation of the preloaded and main image sizes.
+    Reported at resume from hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.IO.ReadMainImage.Duration" units="seconds"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The duration in seconds spent moving in the hibernate image on ChromeOS
+    devices. Reported at resume from hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.IO.ReadMainImage.Rate" units="MiB/s"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The rate in MiB/s we are moving the hibernate image on ChromeOS devices.
+    Reported at resume from hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.IO.ReadMainImage.Size" units="KiB"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The size in KiB of the hibernate image we are moving on ChromeOS devices.
+    Reported at resume from hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.IO.WriteHibernateImage.Duration"
+    units="seconds" expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The duration in seconds spent writing the hibernate image on ChromeOS
+    devices. Reported at hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.IO.WriteHibernateImage.Rate" units="MiB/s"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The rate in MiB/s we wrote the hibernate image on ChromeOS devices. Reported
+    at hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.IO.WriteHibernateImage.Size" units="KiB"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    The size in KiB of the hibernate image we wrote on ChromeOS devices.
+    Reported at hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.MemoryAndSwapAvailable" units="MiB"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    ChromeOS total memory and swap available in MiB when hibernate is triggered.
+    Reported at hibernate.
+  </summary>
+</histogram>
+
+<histogram name="Platform.Hibernate.MemoryAvailable" units="MiB"
+    expires_after="2023-08-04">
+  <owner>asavery@chromium.org</owner>
+  <owner>evgreen@chromium.org</owner>
+  <summary>
+    ChromeOS memory available in MiB when hibernate is triggered. Reported at
+    hibernate.
+  </summary>
+</histogram>
+
 <histogram name="Platform.IntelMaxMicroArchitecture"
     enum="IntelMaxMicroArchitecture" expires_after="2022-12-11">
   <owner>fbarchard@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/translate/histograms.xml b/tools/metrics/histograms/metadata/translate/histograms.xml
index 61cb9f4..33d7a3b 100644
--- a/tools/metrics/histograms/metadata/translate/histograms.xml
+++ b/tools/metrics/histograms/metadata/translate/histograms.xml
@@ -34,7 +34,6 @@
 
 <histogram name="Translate.ApplicationStart.AlwaysTranslateLanguage"
     enum="LocaleCodeISO639" expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -48,8 +47,7 @@
 </histogram>
 
 <histogram name="Translate.ApplicationStart.AlwaysTranslateLanguage.Count"
-    units="languages" expires_after="2022-09-11">
-  <owner>curranmax@google.com</owner>
+    units="languages" expires_after="2023-08-31">
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -62,7 +60,6 @@
 
 <histogram name="Translate.ApplicationStart.NeverTranslateLanguage"
     enum="LocaleCodeISO639" expires_after="2022-12-25">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -77,7 +74,6 @@
 
 <histogram name="Translate.ApplicationStart.NeverTranslateLanguage.Count"
     units="languages" expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -90,7 +86,6 @@
 
 <histogram name="Translate.ApplicationStart.NeverTranslateSite.Count"
     units="sites" expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -198,7 +193,7 @@
 </histogram>
 
 <histogram name="Translate.CompactInfobar.Language.Translate"
-    enum="LocaleCodeISO639" expires_after="2022-09-11">
+    enum="LocaleCodeISO639" expires_after="2023-08-31">
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -318,7 +313,6 @@
 
 <histogram name="Translate.LanguageDetection.LanguageVerification"
     enum="TranslateLanguageVerification" expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -439,8 +433,7 @@
 </histogram>
 
 <histogram name="Translate.PageLoad.AutofillAssistantDeferredTriggerDecision"
-    enum="BooleanDeferred" expires_after="2022-09-11">
-  <owner>curranmax@google.com</owner>
+    enum="BooleanDeferred" expires_after="2023-08-31">
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -453,7 +446,6 @@
 
 <histogram name="Translate.PageLoad.FinalSourceLanguage"
     enum="LocaleCodeISO639" expires_after="2022-11-27">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -467,7 +459,6 @@
 
 <histogram name="Translate.PageLoad.FinalState" enum="TranslateState"
     expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -481,7 +472,6 @@
 
 <histogram name="Translate.PageLoad.FinalTargetLanguage"
     enum="LocaleCodeISO639" expires_after="2023-01-22">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -495,7 +485,6 @@
 
 <histogram name="Translate.PageLoad.HrefHint.TriggerDecision"
     enum="TranslateTriggerDecision" expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -507,8 +496,7 @@
 </histogram>
 
 <histogram name="Translate.PageLoad.InitialSourceLanguage"
-    enum="LocaleCodeISO639" expires_after="2022-09-11">
-  <owner>curranmax@google.com</owner>
+    enum="LocaleCodeISO639" expires_after="2023-08-31">
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -522,7 +510,6 @@
 
 <histogram name="Translate.PageLoad.InitialState" enum="TranslateState"
     expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -536,7 +523,6 @@
 
 <histogram name="Translate.PageLoad.InitialTargetLanguage"
     enum="LocaleCodeISO639" expires_after="2023-01-22">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -550,7 +536,6 @@
 
 <histogram name="Translate.PageLoad.InitialTargetLanguage.Origin"
     enum="TranslateTargetLanguageOrigin" expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -565,7 +550,6 @@
 <histogram
     name="Translate.PageLoad.IsInitialSourceLanguageInUsersContentLanguages"
     enum="Boolean" expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -580,7 +564,6 @@
 
 <histogram name="Translate.PageLoad.NumReversions" units="reversions"
     expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -593,7 +576,6 @@
 
 <histogram name="Translate.PageLoad.NumTargetLanguageChanges"
     units="target language changes" expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -606,7 +588,6 @@
 
 <histogram name="Translate.PageLoad.NumTranslations" units="translations"
     expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -618,7 +599,6 @@
 
 <histogram name="Translate.PageLoad.Ranker.Decision"
     enum="TranslateRankerDecision" expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -630,8 +610,7 @@
 </histogram>
 
 <histogram name="Translate.PageLoad.Ranker.Timer.ShouldOfferTranslation"
-    units="ms" expires_after="2022-09-11">
-  <owner>curranmax@google.com</owner>
+    units="ms" expires_after="2023-08-31">
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -645,7 +624,6 @@
 
 <histogram name="Translate.PageLoad.Ranker.Version" units="version"
     expires_after="2023-01-22">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -657,7 +635,6 @@
 
 <histogram name="Translate.PageLoad.TriggerDecision"
     enum="TranslateTriggerDecision" expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -675,7 +652,7 @@
 </histogram>
 
 <histogram name="Translate.PartialBubbleUiEvent"
-    enum="PartialTranslateBubbleUiEvent" expires_after="2022-11-01">
+    enum="PartialTranslateBubbleUiEvent" expires_after="2023-08-31">
   <owner>cuianthony@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>Tracks UI events related to the Partial Translate bubble.</summary>
@@ -683,7 +660,7 @@
 
 <histogram name="Translate.Ranker.Model.Status" enum="RankerModelStatus"
     expires_after="2023-01-22">
-  <owner>rogerm@google.com</owner>
+  <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
     Tracks the outcome of attempts to download a Translate Ranker Model.
@@ -692,7 +669,7 @@
 
 <histogram name="Translate.Ranker.Model.Version" units="date stamp"
     expires_after="M85">
-  <owner>rogerm@google.com</owner>
+  <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
     The date tamp (e.g., 20160916 -&gt; 15 Sept 2016) which denotes the
@@ -701,8 +678,8 @@
 </histogram>
 
 <histogram name="Translate.Ranker.QueryResult" enum="BooleanAccepted"
-    expires_after="2022-09-11">
-  <owner>rogerm@google.com</owner>
+    expires_after="2023-08-31">
+  <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
     Whether the TranslateRanker accepts or denies to show the translation
@@ -771,12 +748,12 @@
 </histogram>
 
 <histogram name="Translate.SimilarLanguageMatch" enum="BooleanMatched"
-    expires_after="2022-09-11">
+    expires_after="2023-08-31">
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
     This metrics is logged whenever a page is loaded. The logged value is
-    &quot;Mathced&quot; when the CLD-detected language differs from the page
+    &quot;Matched&quot; when the CLD-detected language differs from the page
     language code, and the two languages are such similar languages. In that
     case, Chrome ignore the CLD-determined language and instead uses the page
     language code. The page language code is decided by Content-Language and
@@ -826,7 +803,7 @@
 </histogram>
 
 <histogram name="Translate.Translate.AMPCacheURL" enum="BooleanTranslate"
-    expires_after="2022-09-11">
+    expires_after="2023-08-31">
   <owner>sclittle@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
@@ -907,7 +884,6 @@
 
 <histogram name="Translate.Translation.SourceLanguage" enum="LocaleCodeISO639"
     expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -920,7 +896,6 @@
 
 <histogram name="Translate.Translation.Status" enum="TranslationStatus"
     expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -940,7 +915,6 @@
 
 <histogram name="Translate.Translation.TargetLanguage" enum="LocaleCodeISO639"
     expires_after="2023-01-22">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -953,7 +927,6 @@
 
 <histogram name="Translate.Translation.TargetLanguage.Origin"
     enum="TranslateTargetLanguageOrigin" expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -965,7 +938,6 @@
 
 <histogram name="Translate.Translation.TimeToBeReady" units="ms"
     expires_after="2023-01-22">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -978,7 +950,6 @@
 
 <histogram name="Translate.Translation.TimeToLoad" units="ms"
     expires_after="2023-01-22">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -991,7 +962,6 @@
 
 <histogram name="Translate.Translation.TimeToTranslate" units="ms"
     expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -1004,7 +974,6 @@
 
 <histogram name="Translate.Translation.Type" enum="TranslationType"
     expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -1018,7 +987,6 @@
 
 <histogram name="Translate.UiInteraction.Event" enum="TranslateUIInteraction"
     expires_after="2023-01-15">
-  <owner>curranmax@google.com</owner>
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb b/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
index f565b64..fafd00c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
@@ -488,6 +488,7 @@
 <translation id="5159560892333415631">Empty bin</translation>
 <translation id="5163869187418756376">Sharing failed. Please check your connection and try again later.</translation>
 <translation id="516592729076796170">US Programmer Dvorak</translation>
+<translation id="5172749059808361023">Restriction details</translation>
 <translation id="5177526793333269655">Thumbnail view</translation>
 <translation id="5194713942430106590">Click to sort the column in ascending order.</translation>
 <translation id="5211614973734216083">Faroese</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mk.xtb b/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
index 2e7a57a4..cc968da5 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
@@ -488,6 +488,7 @@
 <translation id="5159560892333415631">Испразни ја корпата</translation>
 <translation id="5163869187418756376">Споделувањето не успеа. Проверете ја врската и обидете се повторно подоцна.</translation>
 <translation id="516592729076796170">US Programmer Dvorak</translation>
+<translation id="5172749059808361023">Детали за ограничувањата</translation>
 <translation id="5177526793333269655">Приказ на сликичка</translation>
 <translation id="5194713942430106590">Кликнете за подредување на колоната по растечки редослед.</translation>
 <translation id="5211614973734216083">фарски</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
index 11c1408..0200d2b3 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
@@ -488,6 +488,7 @@
 <translation id="5159560892333415631">ട്രാഷിലെ ഇനങ്ങൾ ഇല്ലാതാക്കുക</translation>
 <translation id="5163869187418756376">പങ്കിടൽ പരാജയപ്പെട്ടു. നിങ്ങളുടെ കണക്ഷൻ പരിശോധിച്ച് പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="516592729076796170">യുഎസ് പ്രോഗ്രാമർ ഡൊറാക്ക്</translation>
+<translation id="5172749059808361023">നിയന്ത്രണ വിശദാംശങ്ങള്‍</translation>
 <translation id="5177526793333269655">ലഘുചിത്ര കാഴ്‌ച</translation>
 <translation id="5194713942430106590">കോളം ആരോഹണക്രമത്തിൽ അടുക്കാൻ ക്ലിക്ക് ചെയ്യുക</translation>
 <translation id="5211614973734216083">ഫാറോസി</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
index e4ddbd45..6862bd7 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
@@ -488,6 +488,7 @@
 <translation id="5159560892333415631">Dọn sạch thùng rác</translation>
 <translation id="5163869187418756376">Chia sẻ không thành công. Hãy kiểm tra kết nối và thử lại sau.</translation>
 <translation id="516592729076796170">US Programmer Dvorak</translation>
+<translation id="5172749059808361023">Thông tin chi tiết về chế độ hạn chế</translation>
 <translation id="5177526793333269655">Chế độ xem hình thu nhỏ</translation>
 <translation id="5194713942430106590">Nhấp để sắp xếp cột theo thứ tự tăng dần.</translation>
 <translation id="5211614973734216083">Tiếng Faroe</translation>
diff --git a/ui/chromeos/ui_chromeos_strings.grd b/ui/chromeos/ui_chromeos_strings.grd
index 42fc880..720fc77d 100644
--- a/ui/chromeos/ui_chromeos_strings.grd
+++ b/ui/chromeos/ui_chromeos_strings.grd
@@ -1545,7 +1545,7 @@
         Adding Profile...
       </message>
       <message name="IDS_NETWORK_LIST_SIM_CARD_LOCKED" desc="Text in the network list element when a Cellular network's SIM card is locked.">
-        SIM card is locked
+        Your SIM is locked
       </message>
       <message name="IDS_WIFI_NETWORK_STATUS_SECURED" desc="a11y label used when a Wi-Fi network is secured.">
         Secured
@@ -1737,13 +1737,13 @@
         Missing SIM card
       </message>
       <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_CARD_LOCKED" desc="Settings > Internet > Network details > Lock/unlock SIM card: Message when SIM card is locked.">
-        SIM card is locked
+        Your SIM is locked
       </message>
       <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_ENABLE" desc="Settings > Internet > Network details > Lock/unlock SIM card: Label for toggle to enable SIM card locking.">
-       Lock SIM card
+        Lock SIM
       </message>
       <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_ENABLE_SUBLABEL" desc="Settings > Internet > Network details > Lock/unlock SIM card: Sublabel for toggle to enable SIM card locking.">
-        PIN is required to use mobile data
+        A PIN is required to use mobile data
       </message>
       <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_BUTTON_CHANGE" desc="Settings > Internet > Network details > Lock/unlock SIM card: Label for dialog button to change a PIN.">
         Change
@@ -1770,19 +1770,19 @@
         Connect to this network to change SIM lock setting
       </message>
       <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCKED_TITLE" desc="Settings > Internet > Network details > Lock/unlock SIM card: Title for SIM locked dialog.">
-        SIM card is locked
+        Your SIM is locked
       </message>
       <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_POLICY_ADMIN_SUBTITLE" desc="Settings > Internet > Network details > Unlock SIM card: Title for unlocking SIM locked dialog when restrict SIM PIN lock policy is on.">
-        Your administrator requires you to disable SIM Lock.
+        Your administrator has requested you to turn off the "Lock SIM" setting
       </message>
       <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCKED_PUK_SUBTITLE" desc="Settings > Internet > Network details > Lock/unlock SIM card: Title informing the user to enter a PIN provided by the carrier in order unlock network.">
         An incorrect PIN was entered too many times. To set up a new PIN, enter the 8-digit Personal Unblocking Key (PUK) provided by your carrier.
       </message>
       <message name="IDS_SETTINGS_INTERNET_NETWORK_MANAGED_SIM_LOCKED_PUK_SUBTITLE" desc="Settings > Internet > Network details > Lock/unlock SIM card: Title informing the user to enter a PIN provided by the carrier in order unlock network if the admin prohibits SIM PIN locking.">
-        An incorrect PIN was entered too many times. Enter the 8-digit Personal Unblocking Key (PUK) provided by the carrier.
+        An incorrect PIN was entered too many times.
       </message>
       <message name="IDS_SETTINGS_INTERNET_NETWORK_MANAGED_SIM_LOCKED_PUK_WARNING_NO_FAILURES" desc="Settings > Internet > Network details > Lock/unlock SIM card: Warning shown to the user indicating that the network cannot be used until a new PIN is set up.">
-        You won't be able to use this network until you enter the PUK
+        To use this network, you need to enter the 8-digit Personal Unblocking Key (PUK) provided by the carrier. 
       </message>
       <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCKED_PUK_WARNING_NO_FAILURES" desc="Settings > Internet > Network details > Lock/unlock SIM card: Warning shown to the user indicating that the network cannot be used until a new PIN is set up.">
         You won't be able to use this network until you set up a new PIN
@@ -1806,7 +1806,7 @@
         If you fail to verify, your network access will be disabled.
       </message>
       <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ENTER_PIN" desc="Settings > Internet > Network details > Lock/unlock SIM card: Label for entering a PIN.">
-        Enter PIN
+        Your SIM is locked
       </message>
       <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ENTER_OLD_PIN" desc="Settings > Internet > Network details > Lock/unlock SIM card: Label for entering an old (current) PIN.">
         Enter current PIN
diff --git a/ui/chromeos/ui_chromeos_strings_grd/IDS_NETWORK_LIST_SIM_CARD_LOCKED.png.sha1 b/ui/chromeos/ui_chromeos_strings_grd/IDS_NETWORK_LIST_SIM_CARD_LOCKED.png.sha1
index f6f9bf8..899a90d 100644
--- a/ui/chromeos/ui_chromeos_strings_grd/IDS_NETWORK_LIST_SIM_CARD_LOCKED.png.sha1
+++ b/ui/chromeos/ui_chromeos_strings_grd/IDS_NETWORK_LIST_SIM_CARD_LOCKED.png.sha1
@@ -1 +1 @@
-24964431fedf8ea939237a00f8814b2b08bcbe6f
\ No newline at end of file
+679a76a519ff52dfcd953eb54636bf1dccddecd3
\ No newline at end of file
diff --git a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_MANAGED_SIM_LOCKED_PUK_SUBTITLE.png.sha1 b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_MANAGED_SIM_LOCKED_PUK_SUBTITLE.png.sha1
index c338771..40d5270 100644
--- a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_MANAGED_SIM_LOCKED_PUK_SUBTITLE.png.sha1
+++ b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_MANAGED_SIM_LOCKED_PUK_SUBTITLE.png.sha1
@@ -1 +1 @@
-29844f3fe6109ca479f683241abd112561b96048
\ No newline at end of file
+16501cf0ae2e6bd484334cb8226bb72c4a966d43
\ No newline at end of file
diff --git a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_MANAGED_SIM_LOCKED_PUK_WARNING_NO_FAILURES.png.sha1 b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_MANAGED_SIM_LOCKED_PUK_WARNING_NO_FAILURES.png.sha1
index c338771..40d5270 100644
--- a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_MANAGED_SIM_LOCKED_PUK_WARNING_NO_FAILURES.png.sha1
+++ b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_MANAGED_SIM_LOCKED_PUK_WARNING_NO_FAILURES.png.sha1
@@ -1 +1 @@
-29844f3fe6109ca479f683241abd112561b96048
\ No newline at end of file
+16501cf0ae2e6bd484334cb8226bb72c4a966d43
\ No newline at end of file
diff --git a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_CARD_LOCKED.png.sha1 b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_CARD_LOCKED.png.sha1
new file mode 100644
index 0000000..c1e3aeae
--- /dev/null
+++ b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_CARD_LOCKED.png.sha1
@@ -0,0 +1 @@
+da99611ff8c05f966ddafca268c88ae0651bc9f1
\ No newline at end of file
diff --git a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_ENTER_PIN.png.sha1 b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_ENTER_PIN.png.sha1
new file mode 100644
index 0000000..c1e3aeae
--- /dev/null
+++ b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_ENTER_PIN.png.sha1
@@ -0,0 +1 @@
+da99611ff8c05f966ddafca268c88ae0651bc9f1
\ No newline at end of file
diff --git a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCKED_TITLE.png.sha1 b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCKED_TITLE.png.sha1
index 9bbf73d..9152735 100644
--- a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCKED_TITLE.png.sha1
+++ b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCKED_TITLE.png.sha1
@@ -1 +1 @@
-f1799a9f54b2c9f26aff555e4fb7f5f52edd19a4
\ No newline at end of file
+8555ce803e1cf6d024923ff970e6ec7646b24fe0
\ No newline at end of file
diff --git a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_ENABLE.png.sha1 b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_ENABLE.png.sha1
index 98918bce..3d4823c 100644
--- a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_ENABLE.png.sha1
+++ b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_ENABLE.png.sha1
@@ -1 +1 @@
-293cdf4a07c520970f784b58a298330aeac1dff1
\ No newline at end of file
+fb2096a5a6d89da06be4d5878b738e2864e1f454
\ No newline at end of file
diff --git a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_ENABLE_SUBLABEL.png.sha1 b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_ENABLE_SUBLABEL.png.sha1
index 98918bce..3d4823c 100644
--- a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_ENABLE_SUBLABEL.png.sha1
+++ b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_ENABLE_SUBLABEL.png.sha1
@@ -1 +1 @@
-293cdf4a07c520970f784b58a298330aeac1dff1
\ No newline at end of file
+fb2096a5a6d89da06be4d5878b738e2864e1f454
\ No newline at end of file
diff --git a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_POLICY_ADMIN_SUBTITLE.png.sha1 b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_POLICY_ADMIN_SUBTITLE.png.sha1
index ba5557e..13a96f5 100644
--- a/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_POLICY_ADMIN_SUBTITLE.png.sha1
+++ b/ui/chromeos/ui_chromeos_strings_grd/IDS_SETTINGS_INTERNET_NETWORK_SIM_LOCK_POLICY_ADMIN_SUBTITLE.png.sha1
@@ -1 +1 @@
-338ebd1b203383d0a65cc530a35500017455a8e3
\ No newline at end of file
+02969652af34a9a401373e35c2b6ba2f4146a66d
\ No newline at end of file
diff --git a/ui/compositor/layer_animation_element.cc b/ui/compositor/layer_animation_element.cc
index 103a6e936..c27bdfb9 100644
--- a/ui/compositor/layer_animation_element.cc
+++ b/ui/compositor/layer_animation_element.cc
@@ -521,6 +521,9 @@
   }
 
   std::unique_ptr<cc::KeyframeModel> CreateCCKeyframeModel() override {
+    // Ensures that we don't remove and add a model with the same id in a single
+    // frame.
+    UpdateKeyframeModelId();
     std::unique_ptr<gfx::AnimationCurve> animation_curve(
         new FloatAnimationCurveAdapter(tween_type(), start_, target_,
                                        duration()));
@@ -594,6 +597,9 @@
   }
 
   std::unique_ptr<cc::KeyframeModel> CreateCCKeyframeModel() override {
+    // Ensures that we don't remove and add a model with the same id in a single
+    // frame.
+    UpdateKeyframeModelId();
     std::unique_ptr<gfx::AnimationCurve> animation_curve(
         new TransformAnimationCurveAdapter(tween_type(), start_, target_,
                                            duration()));
@@ -766,6 +772,10 @@
       last_progressed_fraction_);
 }
 
+void LayerAnimationElement::UpdateKeyframeModelId() {
+  keyframe_model_id_ = cc::AnimationIdProvider::NextKeyframeModelId();
+}
+
 std::string LayerAnimationElement::DebugName() const {
   return "Default";
 }
diff --git a/ui/compositor/layer_animation_element.h b/ui/compositor/layer_animation_element.h
index afded4a7..3008bbec 100644
--- a/ui/compositor/layer_animation_element.h
+++ b/ui/compositor/layer_animation_element.h
@@ -229,6 +229,7 @@
   std::string ToString() const;
 
  protected:
+  void UpdateKeyframeModelId();
   virtual std::string DebugName() const;
 
   // Called once each time the animation element is run before any call to
@@ -258,7 +259,7 @@
   const base::TimeDelta duration_;
   gfx::Tween::Type tween_type_;
 
-  const int keyframe_model_id_;
+  int keyframe_model_id_;
   int animation_group_id_;
 
   double last_progressed_fraction_;
diff --git a/ui/gl/gl_surface_egl_surface_control.cc b/ui/gl/gl_surface_egl_surface_control.cc
index 1df4ac6e..8c21d1c 100644
--- a/ui/gl/gl_surface_egl_surface_control.cc
+++ b/ui/gl/gl_surface_egl_surface_control.cc
@@ -521,7 +521,11 @@
     // with no fence, since its not being released and so shouldn't be in
     // |released_resources| either.
     if (it == released_resources.end()) {
-      DCHECK(!surface_stat.fence.is_valid());
+      // TODO(vasilyt): We used to DCHECK(!surface_stat.fence.is_valid()) here,
+      // but due to flinger behavior it doesn't hold. This seems to be a
+      // potential fligner bug.  DCHECK is useful for catching resource
+      // life-time issues, so we should consider bringing it back when Android
+      // side will be fixed.
       continue;
     }
 
diff --git a/ui/lottie/animation.cc b/ui/lottie/animation.cc
index 03fcdb28..92a7be78 100644
--- a/ui/lottie/animation.cc
+++ b/ui/lottie/animation.cc
@@ -305,6 +305,15 @@
   }
 }
 
+absl::optional<Animation::CycleBoundaries>
+Animation::GetCurrentCycleBoundaries() const {
+  if (state_ == PlayState::kStopped || !timer_control_) {
+    return absl::nullopt;
+  } else {
+    return timer_control_->current_cycle();
+  }
+}
+
 void Animation::Paint(gfx::Canvas* canvas,
                       const base::TimeTicks& timestamp,
                       const gfx::Size& size) {
diff --git a/ui/lottie/animation.h b/ui/lottie/animation.h
index ed13bd1..0f0fba0 100644
--- a/ui/lottie/animation.h
+++ b/ui/lottie/animation.h
@@ -209,6 +209,11 @@
   //   yet.
   absl::optional<float> GetCurrentProgress() const;
 
+  // Returns the currently playing cycle within the PlaybackConfig's
+  // |scheduled_cycles|. Returns nullopt under the same circumstances as
+  // GetCurrentProgress().
+  absl::optional<CycleBoundaries> GetCurrentCycleBoundaries() const;
+
   // Returns the number of animation cycles that have been completed since
   // Play() was called, or nullopt if the animation is currently Stop()ed.
   absl::optional<int> GetNumCompletedCycles() const;
@@ -288,6 +293,7 @@
     double GetNormalizedStartOffset() const;
     double GetNormalizedEndOffset() const;
     int completed_cycles() const { return completed_cycles_; }
+    CycleBoundaries current_cycle() const { return current_cycle_; }
 
    private:
     friend class AnimationTest;
diff --git a/ui/lottie/animation_unittest.cc b/ui/lottie/animation_unittest.cc
index f25da65..76703e840 100644
--- a/ui/lottie/animation_unittest.cc
+++ b/ui/lottie/animation_unittest.cc
@@ -1665,4 +1665,63 @@
                   (kStartTime + base::Milliseconds(400)) / kAnimationDuration);
 }
 
+TEST_F(AnimationTest, GetCurrentCycleBoundaries) {
+  constexpr auto kStartTime1 = base::Milliseconds(400);
+  constexpr auto kEndTime1 = base::Milliseconds(800);
+  constexpr auto kDuration1 = kEndTime1 - kStartTime1;
+
+  constexpr auto kStartTime2 = base::Milliseconds(100);
+  constexpr auto kEndTime2 = base::Milliseconds(500);
+  constexpr auto kDuration2 = kEndTime2 - kStartTime2;
+
+  TestAnimationObserver observer(animation_.get());
+
+  AdvanceClock(base::Milliseconds(300));
+
+  EXPECT_FALSE(animation_->GetCurrentCycleBoundaries());
+  animation_->Start(Animation::PlaybackConfig(
+      {{kStartTime1, kEndTime1}, {kStartTime2, kEndTime2}},
+      /*initial_offset=*/kStartTime1,
+      /*initial_completed_cycles=*/0, Animation::Style::kLoop));
+
+  // No frames have been painted yet.
+  EXPECT_FALSE(animation_->GetCurrentCycleBoundaries());
+
+  animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
+  ASSERT_TRUE(animation_->GetCurrentCycleBoundaries());
+  EXPECT_THAT(*animation_->GetCurrentCycleBoundaries(),
+              FieldsAre(kStartTime1, kEndTime1));
+
+  // T: 1/2 of first cycle
+  AdvanceClock(kDuration1 / 2);
+  animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
+  ASSERT_TRUE(animation_->GetCurrentProgress());
+  EXPECT_THAT(*animation_->GetCurrentCycleBoundaries(),
+              FieldsAre(kStartTime1, kEndTime1));
+
+  // T: Start of first cycle
+  AdvanceClock(kDuration1 / 2);
+  animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
+  ASSERT_TRUE(animation_->GetCurrentProgress());
+  EXPECT_THAT(*animation_->GetCurrentCycleBoundaries(),
+              FieldsAre(kStartTime2, kEndTime2));
+
+  // T: Middle of second cycle
+  AdvanceClock(kDuration2 / 2);
+  animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
+  ASSERT_TRUE(animation_->GetCurrentProgress());
+  EXPECT_THAT(*animation_->GetCurrentCycleBoundaries(),
+              FieldsAre(kStartTime2, kEndTime2));
+
+  // T: Middle of second cycle (again)
+  AdvanceClock(kDuration2);
+  animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
+  ASSERT_TRUE(animation_->GetCurrentProgress());
+  EXPECT_THAT(*animation_->GetCurrentCycleBoundaries(),
+              FieldsAre(kStartTime2, kEndTime2));
+
+  animation_->Stop();
+  EXPECT_FALSE(animation_->GetCurrentCycleBoundaries());
+}
+
 }  // namespace lottie
diff --git a/ui/ozone/platform/wayland/host/wayland_event_source.cc b/ui/ozone/platform/wayland/host/wayland_event_source.cc
index fdb9271..94cfe09 100644
--- a/ui/ozone/platform/wayland/host/wayland_event_source.cc
+++ b/ui/ozone/platform/wayland/host/wayland_event_source.cc
@@ -57,8 +57,7 @@
 
 gfx::Point GetOriginInScreen(WaylandWindow* target) {
   gfx::Point origin = target->GetBoundsInDIP().origin();
-  WaylandWindow* parent =
-      static_cast<WaylandWindow*>(target->GetParentTarget());
+  auto* parent = static_cast<WaylandWindow*>(target->GetParentTarget());
   while (parent) {
     origin += parent->GetBoundsInDIP().origin().OffsetFromOrigin();
     parent = static_cast<WaylandWindow*>(parent->GetParentTarget());
@@ -67,7 +66,7 @@
 }
 
 gfx::Point GetLocationInScreen(LocatedEvent* event) {
-  WaylandWindow* root_window =
+  auto* root_window =
       static_cast<WaylandWindow*>(GetRootTarget(event->target()));
   return event->root_location() +
          root_window->GetBoundsInDIP().origin().OffsetFromOrigin();
@@ -75,7 +74,7 @@
 
 void SetRootLocation(LocatedEvent* event) {
   gfx::PointF location = event->location_f();
-  WaylandWindow* target = static_cast<WaylandWindow*>(event->target());
+  auto* target = static_cast<WaylandWindow*>(event->target());
 
   while (target->GetParentTarget()) {
     location += target->GetBoundsInDIP().origin().OffsetFromOrigin();
@@ -127,7 +126,7 @@
 // static
 void WaylandEventSource::ConvertEventToTarget(const EventTarget* new_target,
                                               LocatedEvent* event) {
-  WaylandWindow* current_target = static_cast<WaylandWindow*>(event->target());
+  auto* current_target = static_cast<WaylandWindow*>(event->target());
   gfx::Vector2d diff = GetOriginInScreen(current_target) -
                        GetOriginInScreen(static_cast<WaylandWindow*>(
                            const_cast<EventTarget*>(new_target)));
diff --git a/ui/ozone/platform/wayland/host/wayland_pointer.cc b/ui/ozone/platform/wayland/host/wayland_pointer.cc
index d9504ae4..747181f 100644
--- a/ui/ozone/platform/wayland/host/wayland_pointer.cc
+++ b/ui/ozone/platform/wayland/host/wayland_pointer.cc
@@ -46,8 +46,7 @@
                            wl_surface* surface,
                            wl_fixed_t surface_x,
                            wl_fixed_t surface_y) {
-  DCHECK(data);
-  WaylandPointer* pointer = static_cast<WaylandPointer*>(data);
+  auto* pointer = static_cast<WaylandPointer*>(data);
   pointer->connection_->serial_tracker().UpdateSerial(
       wl::SerialType::kMouseEnter, serial);
 
@@ -64,8 +63,7 @@
                            wl_pointer* obj,
                            uint32_t serial,
                            wl_surface* surface) {
-  DCHECK(data);
-  WaylandPointer* pointer = static_cast<WaylandPointer*>(data);
+  auto* pointer = static_cast<WaylandPointer*>(data);
   pointer->connection_->serial_tracker().ResetSerial(
       wl::SerialType::kMouseEnter);
 
@@ -79,7 +77,7 @@
                             uint32_t time,
                             wl_fixed_t surface_x,
                             wl_fixed_t surface_y) {
-  WaylandPointer* pointer = static_cast<WaylandPointer*>(data);
+  auto* pointer = static_cast<WaylandPointer*>(data);
   gfx::PointF location(wl_fixed_to_double(surface_x),
                        wl_fixed_to_double(surface_y));
   const WaylandWindow* target = pointer->delegate_->GetPointerTarget();
@@ -95,7 +93,7 @@
                             uint32_t time,
                             uint32_t button,
                             uint32_t state) {
-  WaylandPointer* pointer = static_cast<WaylandPointer*>(data);
+  auto* pointer = static_cast<WaylandPointer*>(data);
   int changed_button;
   switch (button) {
     case BTN_LEFT:
@@ -135,7 +133,7 @@
                           uint32_t axis,
                           wl_fixed_t value) {
   static const double kAxisValueScale = 10.0;
-  WaylandPointer* pointer = static_cast<WaylandPointer*>(data);
+  auto* pointer = static_cast<WaylandPointer*>(data);
   gfx::Vector2dF offset;
   // Wayland compositors send axis events with values in the surface coordinate
   // space. They send a value of 10 per mouse wheel click by convention, so
@@ -163,7 +161,7 @@
 
 // static
 void WaylandPointer::Frame(void* data, wl_pointer* obj) {
-  WaylandPointer* pointer = static_cast<WaylandPointer*>(data);
+  auto* pointer = static_cast<WaylandPointer*>(data);
   // The frame event ends the sequence of pointer events.  Clear the flag.  The
   // next frame will set it when necessary.
   pointer->axis_source_received_ = false;
@@ -174,7 +172,7 @@
 void WaylandPointer::AxisSource(void* data,
                                 wl_pointer* obj,
                                 uint32_t axis_source) {
-  WaylandPointer* pointer = static_cast<WaylandPointer*>(data);
+  auto* pointer = static_cast<WaylandPointer*>(data);
   pointer->axis_source_received_ = true;
   pointer->delegate_->OnPointerAxisSourceEvent(axis_source);
 }
@@ -184,7 +182,7 @@
                               wl_pointer* obj,
                               uint32_t time,
                               uint32_t axis) {
-  WaylandPointer* pointer = static_cast<WaylandPointer*>(data);
+  auto* pointer = static_cast<WaylandPointer*>(data);
   pointer->delegate_->OnPointerAxisStopEvent(axis);
 }
 
diff --git a/ui/strings/translations/ax_strings_te.xtb b/ui/strings/translations/ax_strings_te.xtb
index 90f9031..bae9d11 100644
--- a/ui/strings/translations/ax_strings_te.xtb
+++ b/ui/strings/translations/ax_strings_te.xtb
@@ -129,7 +129,7 @@
 <translation id="8346634859695247203">విభాగం</translation>
 <translation id="838869780401515933">చెక్ చేయండి</translation>
 <translation id="8415319359811155763">భాగం</translation>
-<translation id="8433900881053900389">సాధన పట్టీ</translation>
+<translation id="8433900881053900389">సాధన బార్‌</translation>
 <translation id="8461852803063341183">రేడియో బటన్</translation>
 <translation id="8474886197722836894">అంకితం</translation>
 <translation id="8531739829932800271">తప్పొప్పుల పట్టిక</translation>
diff --git a/ui/views/corewm/tooltip_controller.cc b/ui/views/corewm/tooltip_controller.cc
index dc3b6f7..dc9825e 100644
--- a/ui/views/corewm/tooltip_controller.cc
+++ b/ui/views/corewm/tooltip_controller.cc
@@ -222,6 +222,10 @@
     case ui::ET_MOUSE_CAPTURE_CHANGED:
     case ui::ET_MOUSE_MOVED:
     case ui::ET_MOUSE_DRAGGED: {
+      // Synthesized mouse moves shouldn't cause us to show a tooltip. See
+      // https://crbug.com/1146981.
+      if (event->IsSynthesized())
+        break;
       last_mouse_loc_ = event->location();
       aura::Window* target = nullptr;
       // Avoid a call to display::Screen::GetWindowAtScreenPoint() since it can
diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn
index cba9074..70a04a3 100644
--- a/ui/webui/resources/BUILD.gn
+++ b/ui/webui/resources/BUILD.gn
@@ -168,7 +168,7 @@
   "cr_elements/cr_checkbox/cr_checkbox.m.d.ts",
   "cr_elements/cr_container_shadow_behavior.m.d.ts",
   "cr_elements/cr_dialog/cr_dialog.m.d.ts",
-  "cr_elements/cr_expand_button/cr_expand_button.m.d.ts",
+  "cr_elements/cr_expand_button/cr_expand_button.d.ts",
   "cr_elements/cr_icon_button/cr_icon_button.m.d.ts",
   "cr_elements/cr_input/cr_input.m.d.ts",
   "cr_elements/cr_lottie/cr_lottie.m.d.ts",
@@ -185,7 +185,6 @@
   "cr_elements/policy/cr_tooltip_icon.m.d.ts",
   "js/cr/ui/focus_row_behavior.m.d.ts",
   "js/i18n_behavior.m.d.ts",
-  "js/list_property_update_behavior.m.d.ts",
   "js/parse_html_subset.m.d.ts",
   "js/promise_resolver.m.d.ts",
   "js/static_types.d.ts",
@@ -215,6 +214,7 @@
     "cr_components/chromeos/smb_shares/smb_browser_proxy.d.ts",
     "js/cr/ui/grid.m.d.ts",
     "js/cr/ui/list.m.d.ts",
+    "js/list_property_update_behavior.d.ts",
   ]
 }
 
diff --git a/ui/webui/resources/cr_components/certificate_manager/certificate_entry.ts b/ui/webui/resources/cr_components/certificate_manager/certificate_entry.ts
index ac619cc8..6c4ada2 100644
--- a/ui/webui/resources/cr_components/certificate_manager/certificate_entry.ts
+++ b/ui/webui/resources/cr_components/certificate_manager/certificate_entry.ts
@@ -5,7 +5,7 @@
 /**
  * @fileoverview An element that represents an SSL certificate entry.
  */
-import '../../cr_elements/cr_expand_button/cr_expand_button.m.js';
+import '../../cr_elements/cr_expand_button/cr_expand_button.js';
 import '../../cr_elements/policy/cr_policy_indicator.m.js';
 import 'chrome://resources/polymer/v3_0/iron-flex-layout/iron-flex-layout-classes.js';
 import './certificate_shared.css.js';
diff --git a/ui/webui/resources/cr_components/certificate_manager/certificate_provisioning_details_dialog.ts b/ui/webui/resources/cr_components/certificate_manager/certificate_provisioning_details_dialog.ts
index e90e49a..8f39ff58 100644
--- a/ui/webui/resources/cr_components/certificate_manager/certificate_provisioning_details_dialog.ts
+++ b/ui/webui/resources/cr_components/certificate_manager/certificate_provisioning_details_dialog.ts
@@ -6,7 +6,7 @@
  * @fileoverview 'certificate-provisioning-details-dialog' allows the user to
  * view the details of an in-progress certiifcate provisioning process.
  */
-import '../../cr_elements/cr_expand_button/cr_expand_button.m.js';
+import '../../cr_elements/cr_expand_button/cr_expand_button.js';
 import '../../cr_elements/cr_dialog/cr_dialog.m.js';
 import 'chrome://resources/polymer/v3_0/iron-flex-layout/iron-flex-layout-classes.js';
 
diff --git a/ui/webui/resources/cr_components/chromeos/network/BUILD.gn b/ui/webui/resources/cr_components/chromeos/network/BUILD.gn
index 79470e42..febe284 100644
--- a/ui/webui/resources/cr_components/chromeos/network/BUILD.gn
+++ b/ui/webui/resources/cr_components/chromeos/network/BUILD.gn
@@ -24,7 +24,6 @@
     ":network_config_toggle",
     ":network_icon",
     ":network_ip_config",
-    ":network_list",
     ":network_list_types",
     ":network_listener_behavior",
     ":network_nameservers",
@@ -210,14 +209,6 @@
   ]
 }
 
-js_library("network_list") {
-  deps = [
-    ":network_list_types",
-    "//ui/webui/resources/cr_elements:cr_scrollable_behavior",
-    "//ui/webui/resources/js:list_property_update_behavior",
-  ]
-}
-
 js_library("network_list_item") {
   deps = [
     ":cr_policy_network_behavior_mojo",
@@ -477,7 +468,7 @@
     "//third_party/polymer/v3_0/components-chromium/iron-list:iron-list",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
     "//ui/webui/resources/cr_elements:cr_scrollable_behavior.m",
-    "//ui/webui/resources/js:list_property_update_behavior.m",
+    "//ui/webui/resources/js:list_property_update_behavior",
   ]
   extra_deps = [ ":network_list_module" ]
 }
@@ -790,6 +781,7 @@
   html_file = "network_list.html"
   html_type = "dom-module"
   auto_imports = cr_components_chromeos_auto_imports
+  migrated_imports = cr_components_migrated_imports
 }
 
 polymer_modulizer("network_list_item") {
diff --git a/ui/webui/resources/cr_components/chromeos/os_cr_components.gni b/ui/webui/resources/cr_components/chromeos/os_cr_components.gni
index 7ed33bf..310e5d0 100644
--- a/ui/webui/resources/cr_components/chromeos/os_cr_components.gni
+++ b/ui/webui/resources/cr_components/chromeos/os_cr_components.gni
@@ -70,3 +70,6 @@
   "ui/webui/resources/html/list_property_update_behavior.html|ListPropertyUpdateBehavior",
   "ui/webui/resources/html/polymer.html|Polymer,flush,html,afterNextRender",
 ]
+
+cr_components_migrated_imports =
+    [ "ui/webui/resources/html/list_property_update_behavior.html" ]
diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_elements/BUILD.gn
index 9cdcc1a5..0d832a0 100644
--- a/ui/webui/resources/cr_elements/BUILD.gn
+++ b/ui/webui/resources/cr_elements/BUILD.gn
@@ -92,8 +92,6 @@
       "cr_container_shadow_behavior.js",
       "cr_dialog/cr_dialog.html",
       "cr_dialog/cr_dialog.js",
-      "cr_expand_button/cr_expand_button.html",
-      "cr_expand_button/cr_expand_button.js",
       "cr_icon_button/cr_icon_button.html",
       "cr_icon_button/cr_icon_button.js",
       "cr_icons_css.html",
@@ -146,7 +144,7 @@
       "cr_checkbox/cr_checkbox.m.js",
       "cr_container_shadow_behavior.m.js",
       "cr_dialog/cr_dialog.m.js",
-      "cr_expand_button/cr_expand_button.m.js",
+      "cr_expand_button/cr_expand_button.js",
       "cr_icon_button/cr_icon_button.m.js",
       "cr_icons_css.m.js",
       "cr_input/cr_input.m.js",
@@ -207,7 +205,6 @@
     if (is_chromeos_ash) {
       deps += [
         "cr_button:closure_compile",
-        "cr_expand_button:closure_compile",
         "cr_radio_group:closure_compile",
       ]
     }
@@ -303,7 +300,7 @@
       "cr_button:cr_button_module",
       "cr_checkbox:cr_checkbox_module",
       "cr_dialog:cr_dialog_module",
-      "cr_expand_button:cr_expand_button_module",
+      "cr_expand_button:web_components",
       "cr_icon_button:cr_icon_button_module",
       "cr_input:polymer3_elements",
       "cr_lottie:cr_lottie_module",
diff --git a/ui/webui/resources/cr_elements/cr_expand_button/BUILD.gn b/ui/webui/resources/cr_elements/cr_expand_button/BUILD.gn
index 4b7ee25d..8514adb 100644
--- a/ui/webui/resources/cr_elements/cr_expand_button/BUILD.gn
+++ b/ui/webui/resources/cr_elements/cr_expand_button/BUILD.gn
@@ -4,35 +4,20 @@
 
 import("//build/config/chromeos/ui_mode.gni")
 import("//third_party/closure_compiler/compile_js.gni")
-import("//tools/polymer/polymer.gni")
+import("//tools/polymer/html_to_js.gni")
 
-if (is_chromeos_ash) {
-  js_type_check("closure_compile") {
-    uses_legacy_modules = true
-    deps = [ ":cr_expand_button" ]
-  }
-
-  js_library("cr_expand_button") {
-    deps = [ "//ui/webui/resources/js/cr/ui:focus_without_ink" ]
-  }
-}
-
-polymer_modulizer("cr_expand_button") {
-  js_file = "cr_expand_button.js"
-  html_file = "cr_expand_button.html"
-  html_type = "dom-module"
+html_to_js("web_components") {
+  js_files = [ "cr_expand_button.js" ]
 }
 
 js_type_check("closure_compile_module") {
   is_polymer3 = true
-  deps = [ ":cr_expand_button.m" ]
+  deps = [ ":cr_expand_button" ]
 }
 
-js_library("cr_expand_button.m") {
-  sources = [ "$root_gen_dir/ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.m.js" ]
+js_library("cr_expand_button") {
   deps = [
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
     "//ui/webui/resources/js/cr/ui:focus_without_ink.m",
   ]
-  extra_deps = [ ":cr_expand_button_module" ]
 }
diff --git a/ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.m.d.ts b/ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.d.ts
similarity index 100%
rename from ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.m.d.ts
rename to ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.d.ts
diff --git a/ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.html b/ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.html
index f39416f2..92ec64a 100644
--- a/ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.html
+++ b/ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.html
@@ -1,13 +1,3 @@
-<link rel="import" href="../../html/polymer.html">
-
-<link rel="import" href="../../html/cr/ui/focus_without_ink.html">
-<link rel="import" href="../cr_actionable_row_style.html">
-<link rel="import" href="../cr_icon_button/cr_icon_button.html">
-<link rel="import" href="../icons.html">
-<link rel="import" href="../shared_vars_css.html">
-
-<dom-module id="cr-expand-button">
-  <template>
     <style include="cr-actionable-row-style">
       :host([disabled]) {
         opacity: 0.65;
@@ -32,6 +22,3 @@
     <div id="label" aria-hidden="true"><slot></slot></div>
     <cr-icon-button id="icon" aria-labelledby="label" disabled="[[disabled]]"
         tabindex="[[tabIndex]]"></cr-icon-button>
-  </template>
-  <script src="cr_expand_button.js"></script>
-</dom-module>
diff --git a/ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.js b/ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.js
index e00b3e9..7607fecd 100644
--- a/ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.js
+++ b/ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.js
@@ -7,9 +7,19 @@
  * 'cr-expand-button' is a chrome-specific wrapper around a button that toggles
  * between an opened (expanded) and closed state.
  */
+import {Polymer, html} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {focusWithoutInk} from '../../js/cr/ui/focus_without_ink.m.js';
+import '../cr_actionable_row_style.m.js';
+import '../cr_icon_button/cr_icon_button.m.js';
+import '../icons.m.js';
+import '../shared_vars_css.m.js';
+
 Polymer({
   is: 'cr-expand-button',
 
+  _template: html`{__html_template__}`,
+
   properties: {
     /**
      * If true, the button is in the expanded state and will show the icon
@@ -138,7 +148,7 @@
 
     this.scrollIntoViewIfNeeded();
     this.expanded = !this.expanded;
-    cr.ui.focusWithoutInk(this.$.icon);
+    focusWithoutInk(this.$.icon);
   },
 
   /** @private */
@@ -150,4 +160,3 @@
     }
   },
 });
-/* #ignore */ console.warn('crbug/1173575, non-JS module files deprecated.');
diff --git a/ui/webui/resources/html/BUILD.gn b/ui/webui/resources/html/BUILD.gn
index 3cba5c2..893acc1a 100644
--- a/ui/webui/resources/html/BUILD.gn
+++ b/ui/webui/resources/html/BUILD.gn
@@ -46,7 +46,6 @@
         "cr/ui/focus_without_ink.html",
         "cr/ui/focus_row_behavior.html",
         "i18n_behavior.html",
-        "list_property_update_behavior.html",
         "web_ui_listener_behavior.html",
       ]
     }
diff --git a/ui/webui/resources/html/list_property_update_behavior.html b/ui/webui/resources/html/list_property_update_behavior.html
deleted file mode 100644
index b7f152ed..0000000
--- a/ui/webui/resources/html/list_property_update_behavior.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<link rel="import" href="polymer.html">
-
-<script src="../js/list_property_update_behavior.js"></script>
diff --git a/ui/webui/resources/js/BUILD.gn b/ui/webui/resources/js/BUILD.gn
index 233d69a1..2fe0c9f 100644
--- a/ui/webui/resources/js/BUILD.gn
+++ b/ui/webui/resources/js/BUILD.gn
@@ -136,7 +136,6 @@
   if (include_polymer) {
     in_files += [
       "i18n_behavior.m.js",
-      "list_property_update_behavior.m.js",
       "web_ui_listener_behavior.m.js",
     ]
   }
@@ -182,7 +181,6 @@
       ":event_tracker",
       ":i18n_behavior",
       ":i18n_template_no_process",
-      ":list_property_update_behavior",
       ":parse_html_subset",
       ":web_ui_listener_behavior",
     ]
@@ -219,9 +217,6 @@
       ":parse_html_subset",
     ]
   }
-
-  js_library("list_property_update_behavior") {
-  }
 }
 
 js_library("load_time_data") {
@@ -270,7 +265,6 @@
     "assert.js",
     "event_tracker.js",
     "i18n_behavior.js",
-    "list_property_update_behavior.js",
     "parse_html_subset.js",
     "promise_resolver.js",
     "util.js",
@@ -309,7 +303,7 @@
     ":event_tracker.m",
     ":i18n_behavior.m",
     ":icon",
-    ":list_property_update_behavior.m",
+    ":list_property_update_behavior",
     ":load_time_data.m",
     ":parse_html_subset.m",
     ":plural_string_proxy",
@@ -359,14 +353,10 @@
   extra_deps = [ ":modulize_local" ]
 }
 
-js_library("list_property_update_behavior.m") {
-  sources = [
-    "$root_gen_dir/ui/webui/resources/js/list_property_update_behavior.m.js",
-  ]
+js_library("list_property_update_behavior") {
   deps = [
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
   ]
-  extra_deps = [ ":modulize_local" ]
 }
 
 js_library("load_time_data.m") {
diff --git a/ui/webui/resources/js/list_property_update_behavior.m.d.ts b/ui/webui/resources/js/list_property_update_behavior.d.ts
similarity index 100%
rename from ui/webui/resources/js/list_property_update_behavior.m.d.ts
rename to ui/webui/resources/js/list_property_update_behavior.d.ts
diff --git a/ui/webui/resources/js/list_property_update_behavior.js b/ui/webui/resources/js/list_property_update_behavior.js
index 787bb99..4d846fca 100644
--- a/ui/webui/resources/js/list_property_update_behavior.js
+++ b/ui/webui/resources/js/list_property_update_behavior.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// #import {calculateSplices} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {calculateSplices} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 /**
  * @fileoverview |ListPropertyUpdateBehavior| is used to update an existing
@@ -12,7 +12,7 @@
  * re-rendered from scratch.
  *
  * The minimal splices needed to transform the original list to the edited list
- * are calculated using |Polymer.ArraySplice.calculateSplices|. All the edits
+ * are calculated using |calculateSplices|. All the edits
  * are then applied to the original list. Once completed, a single notification
  * containing information about all the edits is sent to the polyer object.
  *
@@ -21,7 +21,7 @@
  */
 
 /** @polymerBehavior */
-/* #export */ const ListPropertyUpdateBehavior = {
+export const ListPropertyUpdateBehavior = {
   /**
    * @param {string} propertyPath
    * @param {function(!Object): (!Object|string)} identityGetter
@@ -32,7 +32,7 @@
   updateList(
       propertyPath, identityGetter, updatedList, identityBasedUpdate = false) {
     const list = this.get(propertyPath);
-    const splices = Polymer.ArraySplice.calculateSplices(
+    const splices = calculateSplices(
         updatedList.map(identityGetter), list.map(identityGetter));
 
     splices.forEach(splice => {
@@ -67,7 +67,7 @@
   },
 };
 
-/* #export */ class ListPropertyUpdateBehaviorInterface {
+export class ListPropertyUpdateBehaviorInterface {
   /**
    * @param {string} propertyPath
    * @param {function(!Object): (!Object|string)} identityGetter
@@ -78,5 +78,3 @@
   updateList(
       propertyPath, identityGetter, updatedList, identityBasedUpdate = false) {}
 }
-
-/* #ignore */ console.warn('crbug/1173575, non-JS module files deprecated.');
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/payments/WebLayerPaymentRequestService.java b/weblayer/browser/java/org/chromium/weblayer_private/payments/WebLayerPaymentRequestService.java
index 23f8f61..106483b 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/payments/WebLayerPaymentRequestService.java
+++ b/weblayer/browser/java/org/chromium/weblayer_private/payments/WebLayerPaymentRequestService.java
@@ -9,8 +9,6 @@
 import org.chromium.components.payments.BrowserPaymentRequest;
 import org.chromium.components.payments.JourneyLogger;
 import org.chromium.components.payments.PaymentApp;
-import org.chromium.components.payments.PaymentAppFactoryDelegate;
-import org.chromium.components.payments.PaymentAppService;
 import org.chromium.components.payments.PaymentAppType;
 import org.chromium.components.payments.PaymentRequestService;
 import org.chromium.components.payments.PaymentRequestService.Delegate;
@@ -107,13 +105,6 @@
 
     // Implements BrowserPaymentRequest:
     @Override
-    public void addPaymentAppFactories(
-            PaymentAppService service, PaymentAppFactoryDelegate delegate) {
-        // There's no WebLayer specific factories.
-    }
-
-    // Implements BrowserPaymentRequest:
-    @Override
     @Nullable
     public String showOrSkipAppSelector(boolean isShowWaitingForUpdatedDetails, PaymentItem total,
             boolean shouldSkipAppSelector) {
diff --git a/weblayer/browser/webui/net_export_ui.cc b/weblayer/browser/webui/net_export_ui.cc
index feee7ca1..f2de43b 100644
--- a/weblayer/browser/webui/net_export_ui.cc
+++ b/weblayer/browser/webui/net_export_ui.cc
@@ -96,8 +96,8 @@
   }
 
   // net_log::NetExportFileWriter::StateObserver implementation.
-  void OnNewState(const base::DictionaryValue& state) override {
-    NotifyUIWithState(state.CreateDeepCopy());
+  void OnNewState(const base::Value::Dict& state) override {
+    NotifyUIWithState(state);
   }
 
  private:
@@ -133,8 +133,8 @@
 
   // Fires net-log-info-changed event to update the JavaScript UI in the
   // renderer.
-  void NotifyUIWithState(std::unique_ptr<base::DictionaryValue> state) {
-    FireWebUIListener(net_log::kNetLogInfoChangedEvent, *state);
+  void NotifyUIWithState(const base::Value::Dict& state) {
+    FireWebUIListener(net_log::kNetLogInfoChangedEvent, state);
   }
 
   // Cached pointer to SystemNetworkContextManager's NetExportFileWriter.